3

我正在使用 SneakyInput 操纵杆来移动我的精灵,并为我的游戏使用 TMX 地图。我在我的应用程序中添加了自动相机移动,所以英雄精灵总是可见的。当我浏览我的地图时,操纵杆离开屏幕(它停留在原来的位置)。我制作了一个 HUD,使操纵杆始终处于同一位置,并且不会随地图移动。操纵杆很好地显示在屏幕上,但是当我拖动它时,它不会移动我的英雄。

我在 GameLayer 中使 HUDLayer 成为 CCLayer,这就是我制作该moveHero方法的地方。操纵杆工作,但是当我在地图上移动它时,自动相机移动工作,但操纵杆保持在相同的位置,很快就看不见了。我知道问题是我这样做[self setCenter....blah blah blah];而不是只设置Level1为中心。我如何只移动相机Level1,而不是HUDLayer

4

1 回答 1

1

是我找到的有关如何使用此类的链接。这似乎相当直截了当。我认为您想将方法更改- (void)moveHero为:

- (void)moveHero; {
  [self applyJoystick:leftJoystick toNode:hero forTimeDelta:1.0/60.0f]];
}

因为在初始化HUD.

好的,如果你想HUD基于这 2 个点(操纵杆和其他项目)使图层居中,你只需将它们放置在 2D 网格中,然后从那里找出中心点。我假设您在横向模式下使用 iPhone 屏幕。那么尺寸是480x320。这个屏幕的中心是 (240, 160),所以,我会用这个中心作为我的操纵杆和其他HUD项目。所以我可能会将我的操纵杆设置为 (10, 10),而我的其他项目(假设该项目的尺寸为 (x, y))设置为 ((470 - x), 10),这将使项目都他们周围有 10 像素边界。

希望有帮助!

于 2011-09-09T05:02:23.080 回答