LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: Linux_Lyb

求助,物体运动程序设计问题

[复制链接]
发表于 2004-8-9 20:27:59 | 显示全部楼层
如果平滑的意义是指拐点处切线存在的话
[PHP]
y += ay;
x += ax;
if(x <= w1 || x >= w2)
  ax = -ax;
[/PHP]
这种方法肯定是不平滑的,呵呵
发表于 2004-8-9 20:32:48 | 显示全部楼层
最初由 锋锋 发表
sorry!

严格来说一个周期内会在两瞬间产生加速度(左右方向改变那一刻!)。

除此,都是匀速运动。

这个公式没看懂是什么意思:enemys.x = (int)cos((double)enemys.y * 0.0174532925 ) * 100 + 400;

真接用sin()再放大不好吗?


用sin的话不是一样吗,最多改改自变量范围而已
那个公式就是y=arc cos(x)吗,公式里面x取合适的值就行了
都是一样的曲线
发表于 2004-8-9 20:41:42 | 显示全部楼层
突然产生向左向右的结果

应该是周期没把握好了。
 楼主| 发表于 2004-8-9 21:07:55 | 显示全部楼层
谢谢各位,我再试试
数学基础差,写游戏真难
发表于 2004-8-9 22:11:41 | 显示全部楼层
说实话,这些应该是产品人员做的,把公式设计好,技术只是负责实现。当然,如果是自己写着玩,那就都要考虑了
 楼主| 发表于 2004-8-9 22:19:14 | 显示全部楼层
严重同意你的话啊,哈哈~~ 我还没想出那个公式啊,我好笨阿!!
发表于 2004-8-9 22:25:51 | 显示全部楼层
《C++builder高级编程技术(第二版》---国防工业出版社

有个现成的“雷霆战机”的代码。

楼主可以把移植到linux上(用kylix3 for C++)难度应该不会很大。
 楼主| 发表于 2004-8-9 22:46:52 | 显示全部楼层
搞定啦,呵呵
要移植好啊,你输入那些代码给我,哈哈~~~ 峰峰,我是在广州读书的哦,有机会向你学习学习!!
 楼主| 发表于 2004-8-9 22:49:10 | 显示全部楼层
其实是一个简单但是容易犯也不容易引起注意的低级错误,
错误代码:
   enemys.x = (int)cos((enemys.y + 200)*0.0174532925) *100+230;
正确代码:
   enemys.x = (int)(cos((enemys.y + 200)*0.0174532925) *100)+230;
不好意思,打扰大家了。
发表于 2004-8-9 22:52:49 | 显示全部楼层
那本书是没源码光盘的。
偶最懒敲代码了,只喜欢在别人代码的基础上,美其名曰地“重构!”。哈哈!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表