如何控制播放器的速度?我使用didSimulatePhysics()
方法进行移动:
if(([self childNodeWithName:@"hero"].position.x >= 180)
&&
(self.touchedHero == YES)
&& _canMove ==YES){
[[self childNodeWithName:@"hero"]setPosition:CGPointMake(180, [self childNodeWithName:@"hero"].position.y)];
[self.world setPosition:CGPointMake(self.world.position.x-5, self.world.position.y)];
但是这种方法取决于设备性能,当在iOs设备上运行我的应用程序时速度非常不稳定,有时速度非常快,有时速度慢,我怎样才能控制这个速度?
答案 0 :(得分:0)
您需要考虑(或不考虑)帧率独立性,或者改变游戏或物理计算结构的方式。更重要的是,这可能是开始消除代码中的主要低效率的好时机......这是一个问题的“首发”列表:
This good post on learn-cocos2d.com详细介绍了FPS问题,并考虑了iOS。
This good post on gafferongames.com详细介绍了处理时间步更新的各种方法。一个有趣的读物,但你会想看看你的数据结构和算法首先针对任何显而易见的事情,然后才会占用你的时间步。