我正在制作最终项目的游戏,我需要知道用户触摸的位置,以便我可以移动玩家。
这是.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将是最高职位
任何帮助将不胜感激 感谢
答案 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];