这是我的第一篇文章,我正在尝试使用Apple的SpriteKit框架.
我相信我对如何使用框架移动精灵有误解.我有一个简单的例子,其中我想移动一个hero以简单UP,DOWN,LEFT,RIGHT基于所述的抽头位置的方向,相对于该"英雄"位置.一旦英雄命中一个block"英雄"应该停止.
出于测试目的,我只是试图点击屏幕顶部的"墙壁"上的"英雄".然后在碰撞发生后,点击"英雄"下方.我期待着"英雄"向底排的街区移动; 然而,似乎"英雄"继续向上移动并穿过顶墙.我相信我正在制造一个根本性的缺陷,我将不胜感激.
谢谢
这是我写的示例场景:
static inline CGPoint CGPointSubtract(const CGPoint a, const CGPoint b)
{
return CGPointMake(a.x - b.x, a.y - b.y);
}
typedef enum DIRECTION_e
{
UP,
DOWN,
LEFT,
RIGHT
} DIRECTION_t;
typedef NS_OPTIONS(uint32_t, CNPhysicsCategory)
{
PhysicsCategoryBlock = 1 << 0,
PhysicsCategoryHero = 1 << 1
};
@interface LevelScene ()
@property (nonatomic) SKSpriteNode * hero;
@property (nonatomic) BOOL inMotion;
@end
@implementation LevelScene
-(id) initWithSize:(CGSize)size …Run Code Online (Sandbox Code Playgroud)