• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

对格斗游戏的一点想法

发布: 2007-4-28 23:35 | 作者: moonranger | 来源: 编程疯子的窝 | 查看: 72次 | 进入软件测试论坛讨论

领测软件测试网

终于决定在这里再开一个blog主页了。这里给我的感觉真的很好,简洁,实用,不花哨,特别适合程序员(虽然我还不是)。好了,在这里我可以尽情的谈我所爱的编程技术了。不过我只是菜鸟一个,那些真正的高手们不要笑话我的浅薄,如果可能,你们的建议将会给我带来莫大的帮助。好了,废话少说,赶紧开说!

最近一直在玩真·三国无双advance,是GBA平台上的,虽然画面比PS2有很大很大的差距,但是那种连击的爽快感一样能够体会到。对,连击,这个就是这篇文章的主角。我认为连击之所以能够形成,是因为敌人在受到攻击后会有一段时间的硬直,在这段硬直时间里,敌人不能进行任何动作。所以当我们发动后续的进攻时,敌人会继续中招,继续受到伤害。所以怎么实现硬直效果是我今天想研究的东西。

我一直在用allegro库开发程序,所以我也想用这个库来说明问题。

class character
{
       public:
              character();
              ~character();
              ......

              void update();
              void draw(BITMAP*);
              void attack(const character&);
             void baAttacked(const attack_type&);  //attack_type是一个类,用来表示攻击类型
             ......
       private:
               int _x,_y;   //角色的坐标
               BITMAP *frames[N]; //游戏角色的图片
               int stopFrames    //这个就是硬直时间对应的变量
               ......

};

这个就是我想出来的类框架,其中update()接口用来控制角色的坐标,图片帧和硬直等,draw()接口用来向一个位图对象绘制游戏角色,attck()就是攻击其他人的接口,beAttack()就是受到攻击的接口。

最关键的是stopFrames成员,这个用来控制硬直的时间,当角色受到攻击的时候,根据攻击类型的不同,产生不同的硬直时间,即改变这个成员的值。然后在update()中,当程序检查到stopFrames不为0的时候,就将这个值减少一定的量,并且此时不进行任何其他的动作(除了角色显示相关的以外)。这样就实现了硬直的效果。

当然这个只是一个简单的设想,并没有填充一些细节的东西,不过也算是一个创意的暂时保存吧!希望有高手能够指出不足或者告诉我更好的实现方法。等到我的知识准备足够之后,我一定要尝试将这个想法实现!

今天已经考完了期中考试,五一长假也正式开始了,兴奋中……魔兽世界已经开始公测了,不试试可不对不住我这个深爱正统奇幻和游戏的家伙了。

昨天在电脑报上看到消息说真·三国无双要移植到电脑上,感觉挺复杂的,我一向以为用电脑玩游戏是畸形的行为。这么好的游戏往电脑上搬,算不算自降身价?

管他算不算,我先魔兽世界去了~~~



延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 游戏开发


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网