怎么把动画动作只放在一个函数内呢?

franciszhou 2005-11-14 09:18:29
在学做一个小游戏,模仿的是宝石迷阵bejeweled。

有动画显示的问题,不能很好解决,来请教大家。 宝石的产生、移动、消去分别有个很小的动画效果,我是用定时器来做的,也就是在定时器里计数,根据这个计数来改变它的坐标或大小。这尽管也能做,但使得代码很乱,所有的判断都堆在定时器结束后判断,比如移动后判断是否能消去。

我希望能把完整的动作都包在一个函数内实现,以实现类似于下面这样的代码,就清晰得多。

pGem->move(...);
if(....)
{
pGem->move(...);
}
else
{
pGem->zoom(...);
pGem->setProperty(&(pGem->m_property),value);
}
.....

其中setProperty希望能实现对pGem内部属性的访问,需要用模板。

qq上有朋友提示说游戏里面的动作就是这样的,比如拔枪的动作等等,谁能指点指点?

谢谢。
...全文
127 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shilong 2005-11-29
  • 打赏
  • 举报
回复
最好是每个动作有个状态,
只要处理好,代码是不会混乱的
当然,你一定想这样的话,
有个解决的办法,move函数这样写

move()
{
while(...)
{
动画;
}
}

当然这样会产生阻塞
你可以用多线程处理...

你可以看下这篇文章
http://www.ylog.net/blog_show.asp?cat_id=32&log_id=545
寻开心 2005-11-14
  • 打赏
  • 举报
回复
简单的处理就是,把有动画的对象封装起来
对象当中提供一个每帧处理一次的函数
在这里来判断当前的状态,并且决定对象的行为就是了

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧