用于偷偷摸摸输入操纵杆的HUD层(cocos2d iPhone)

时间:2011-09-05 21:22:38

标签: iphone cocos2d-iphone joystick hud

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

我已经在GameLayer中将HUDLayer变成了CCLayer,这是我正在制作moveHero方法的地方。操纵杆可以工作,但是当我在地图上移动时,自动摄像机运动起作用,但操纵杆保持在相同的位置,并且很快就会消失。我知道问题是我[self setCenter....blah blah blah];而不是仅设置Level1作为中心。如何仅将相机移动到Level1,而不移动HUDLayer

1 个答案:

答案 0 :(得分:1)

Here是我在如何使用此类时找到的链接。看起来相当直接。我想您要将方法- (void)moveHero更改为:

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

因为您初始化HUD时似乎已经保留了对左操纵杆的引用。

好的,如果你想根据这两个点(操纵杆和另一个项目)将HUD图层居中,你只需要将它们放在2D网格中,并从中找出中心点。我假设您正在横向模式下使用iPhone屏幕。然后尺寸是480x320。这个屏幕的中心是(240,160),因此,我会将此中心用于我的操纵杆和其他HUD项目。所以我可能会将我的操纵杆设置为(10,10),并将我的其他项目(假设此项目的尺寸为(x,y))设置为((470-x),10),这样两个项目都可以他们周围有10个像素的寄宿生。

希望有帮助!