我正在使用SneakyInput操纵杆移动我的精灵,TMX映射我的游戏。我将自动相机移动添加到我的应用程序中,因此英雄精灵始终可见。当我浏览地图时,操纵杆离开屏幕(它停留在原始位置的位置)。我制作了一个HUD,使操纵杆始终处于同一位置,并且不随地图一起移动。操纵杆显示在屏幕上很好,但是当我拖动它时它不会移动我的英雄。
我已经在GameLayer中将HUDLayer变成了CCLayer,这是我正在制作moveHero
方法的地方。操纵杆可以工作,但是当我在地图上移动时,自动摄像机运动起作用,但操纵杆保持在相同的位置,并且很快就会消失。我知道问题是我[self setCenter....blah blah blah];
而不是仅设置Level1
作为中心。如何仅将相机移动到Level1
,而不移动HUDLayer
?
答案 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个像素的寄宿生。
希望有帮助!