在spritekit场景中获取触摸位置时遇到问题

时间:2014-04-30 09:28:23

标签: ios sprite-kit

我正在制作最终项目的游戏,我需要知道用户触摸的位置,以便我可以移动玩家。

这是.h文件

#import <SpriteKit/SpriteKit.h>

@interface BYFGameScene : SKScene
@end

.m

的标题
#import "BYFGameScene.h"

@interface BYFGameScene()

@property BOOL contentCreated;
@property (nonatomic)SKSpriteNode *player;

@end

@implementation BYFGameScene



-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    CGPoint *location = [[touches anyObject] location];

    NSLog(@"the location is %@",location);

}

我认为触摸开始将是获取位置的适当方法,在以前的应用程序中这是我如何获得位置但它不断抛出异常,我不知道为什么。

我也试过

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    CGFloat location = [[touches anyObject] locationInView:self];

    NSLog(@"the location is %f",location);

}

但它给出了一个错误,说UIView和BYFGameScene(当前场景)不兼容类型

我也将如何操纵球员位置? \这是我认为可行的,但事实并非如此。

-(void)moveUp
{
    if(self.player.position==CGpoint 700)
    {

    }
    else
    {
        self.player.position = self.player.position +100;
    }
}

700将是最高职位

任何帮助将不胜感激 感谢

1 个答案:

答案 0 :(得分:0)

我认为这就是你要找的东西:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch *touch = [touches anyObject];
    //touch point, see locationInNode
    CGPoint location = [touch locationInNode:self];

 //   SKNode *node = [self nodeAtPoint:location];