在更新方法中:我正在移动一个这样的平面:
-(void) update:(ccTime)delta
{
...
pos.x += vVelocity.x;
pos.y += vVelocity.y;
plane.position = pos;
}
在iPad上作为通用应用程序进行测试它按预期工作,但是当我在iPhone 4上测试时,飞机的移动速度是原来的两倍!我正在使用-hd图像作为视网膜显示版本。 在使用视网膜显示器时,我是否遗漏了某些东西或者必须将上述代码中的速度降低一半?
答案 0 :(得分:1)
Cocos2d使用点进行测量,因此即使使用视网膜,也可将屏幕位置视为480x320。听起来vVelocity基于像素,所以它应该是它的两倍。错误是计算速度的地方。有关详细信息,请参阅http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:how_to_develop_retinadisplay_games_in_cocos2d。
答案 1 :(得分:1)
我无法重现此行为。您应该将速度(以每秒点数给出)乘以delta。这应该表现得如此(在有和没有视网膜显示的iOS模拟器中测试):
-(void) update:(ccTime)delta
{
// ...
CGPoint pos = plane.position;
pos.x += vVelocity.x*delta;
pos.y += vVelocity.y*delta;
plane.position = pos;
}