0

我正在编写“开始 iPhone 游戏开发”第 4 章中的“Asteroids”应用程序。本章的 atlas sprite 部分让 sprite 在屏幕上来回运行(当涉及到边缘时,它会改变方向)。在模拟器上,我的精灵按预期移动,但在设备(iPhone 4)上它只在屏幕的右下象限来回运行。这是否与使用像素而不是点来指代屏幕位置有关?这个应用程序使用了很多 CG... 方法。

某些CG绘图方法是否以像素而不是点为单位引用屏幕位置?这或许可以解释正在发生的事情。但我使用 CG 方法完成的其他项目在设备上的行为与在模拟器上的行为相同。我一直假设屏幕测量总是以点为单位。

任何其他想法来解释为什么设备上的四分之一屏幕与模拟器上的整个屏幕相同?

4

1 回答 1

1

我有同样的问题。我一直在玩这个,发现了一些可能有帮助的东西。在 sprite.m 文件中,更改以下内容:

t = CGAffineTransformTranslate(t,y+160,240-x);

对此:

t = CGAffineTransformTranslate(t,y+320,480-x)

t = CGAffineTransformTranslate(t,y+0,0-x);

它似乎工作正常,但所有 Sprite 都很小,因此您需要调整比例。

于 2011-11-12T18:42:20.567 回答