在不使用游戏引擎的情况下开发简单的游戏?

时间:2010-09-08 13:18:55

标签: iphone cocos2d-iphone box2d-iphone chipmunk

我正在努力开发一个简单的足球比赛,包括点球大战,其中我必须将从玩家动画到球门柱......之前我曾经使用简单的动画使用计时器添加到球图像的轴,使其从1点移动到另一个...但我没有所需的结果,因为动画不是那么顺利...所以我想使用< strong>游戏引擎 ...因为我是新程序员我不知道游戏引擎,也无法找到任何关于 box2d或者花栗鼠或麻雀等引擎的文档 ..我也在考虑使用 UIView动画而不是之前的动画,因为我认为可以实现更好的动画而不会试图在游戏引擎上工作....我不会在这里,所以如果有人可以对我的这个问题有所了解,那真的很棒???

2 个答案:

答案 0 :(得分:2)

使用UIView动画,例如:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3]; // or whatever time
object.center=CGPointMake(object.center.x+2, object.center.y+4);
// or whatever
[UIView commitAnimations];

您还应该使用具有相同间隔的NSTimer,以便您可以顺利地调用动画。

NSTimer *timer=[NSTimer scheduledTimerWithTimeInterval:0.3 target: self 
selector:@selector(animation) userInfo: nil repeats: YES];

然后,实现方法:

- (void)animation {
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3]; // or whatever time
    object.center=CGPointMake(object.center.x+5, object.center.y+7);
    // or whatever
    [UIView commitAnimations];    
}

这应该适用于任何简单的游戏。

答案 1 :(得分:0)

当您使用cocos2d标记问题时,我猜您正在使用它,或者计划使用它。动画CCSprites很简单,如您所见在这场比赛中https://github.com/haqu/tweejump

onEnter实施中,只需致电     [self scheduleUpdate]

这会定期调用您可以进行绘图的update:

- (void)update:(ccTime)dt {
    ball_pos.x += ball_velocity.x * dt;
    ball_pos.y += ball_velocity.y * dt;
    ball_velocity.x += ball_acc.x * dt;
    ball_velocity.y += ball_acc.y * dt;

    //game logic goes here (collision, goal, ...)

    ball.position = ball_position;
}

这将处理球的平稳运动。 ball_posball_velocityball_accvvCertex2F

你可能甚至不需要处理加速度,只有当有人击中它时才会对球产生冲动(即撞击速度)。

你可能还需要一些阻尼来减慢球的速度。你通过降低每一步的速度来做到这一点