【发布时间】:2011-05-30 07:11:28
【问题描述】:
目前我是一名 Flash 游戏开发人员,我开始使用 cocos 2d 引擎为 iphone 编写游戏,我已经实现了单独的 Axis theorem 用于碰撞检测,效果很好。所有多边形在openGl中如下绘制。 经过多次搜索后,现在我尝试将重力应用到这个 16x16 的盒子上,我找到了这个教程 http://www.seinia.com/tutorials/Bounce/ 并在目标 C 中实现了相同的效果。
我遇到的问题是,在正方形静止后,它会不断向上/向下弹跳。我尝试了很多来解决这个问题,但我无法控制那个微小的运动。我在闪光灯中从来没有遇到过这样的问题,但这里的浮动值对方形位置的影响很大。
请让我知道处理此类问题的编写方法是什么,任何参考 URL 都会有所帮助。感谢您的帮助。谢谢!
0,16 16,16
------------
| |
| |
| |
| |
------------
0,0 16,0
目标 C 代码
if (square.points[0].y <= 0.1f) {
velocity.vy *= -bounce;
[square restInPeace:[Vector2D createVectorWithComponentX:velocity.vx Y:8.0f]];
// landed
if (fabs(velocity.vy) < 0.9f) {
velocity.vy = 0.0f;
[square restInPeace:[Vector2D createVectorWithComponentX:velocity.vx Y:8.0f]];
isLanded = YES;
}
}
翻译对象
-(void) translateVelocity:(Vector2D*)velocity
{
// The center as well as all of the vertices need to be
// accommodated.
center.x += velocity.vx;
center.y += velocity.vy;
for(int i=0; i < count; i++)
{
points[i].x += velocity.vx;
points[i].y += velocity.vy;
////NSLog(@"velocity %f %f",points[i].x , points[i].y);
}
}
【问题讨论】:
-
使用 cocos2d 自带的 Box2D phys 引擎可能会更容易...
-
你是对的,但我自己实现一切的原因是因为我现在正在寻找 Job,所以我认为从头开始写作将有助于刷新基础知识、矢量数学、碰撞。
-
@JustJeff :对不起,我错过了,现在我已经添加了。
标签: objective-c c ios4 cocos2d-iphone