- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的场景上有player
对象,并试图对其施加一些力。您可以看到我正在对update:
文件上的MyScene.h
方法施加作用力。但是,我的player
根本没有动。发生了什么?
下面是Player SKSpriteNode。
#import "Player.h"
#import "common.h"
@implementation Player
- (instancetype)init {
self = [super initWithImageNamed:@"player.png"];
self.name = @"player";
self.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(22, 50)];
self.physicsBody.mass = 10;
self.physicsBody.dynamic = YES;
self.physicsBody.allowsRotation = NO;
self.physicsBody.affectedByGravity = YES;
self.physicsBody.collisionBitMask = ~poopCategory & groundCategory;
self.physicsBody.categoryBitMask = playerCategory;
self.physicsBody.contactTestBitMask = poopCategory;
self.zPosition = 100;
return self;
}
@end
#import "Background.h"
#import "common.h"
@implementation Background
+ (Background *) generateBackground {
Background *background = [[Background alloc] initWithImageNamed:@"RPBackground.png"];
background.physicsBody = [SKPhysicsBody bodyWithEdgeFromPoint:CGPointMake(-100, 100) toPoint:CGPointMake(400, 100)];
background.physicsBody.categoryBitMask = groundCategory;
background.physicsBody.collisionBitMask = poopCategory | playerCategory;
background.physicsBody.contactTestBitMask = groundCategory;
background.anchorPoint = CGPointMake(0, 0);
background.position = CGPointMake(0, 0);
background.zPosition = 0;
background.name = @"ground";
return background;
}
@end
#import "MyScene.h"
@implementation MyScene
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
/* Setup your scene here */
Background *b = [Background generateBackground];
[self addChild:b];
self.physicsWorld.gravity = CGVectorMake(0, -9.8);
Player *player = [[Player alloc]init];
player.size = CGSizeMake(30, 60);
player.position = CGPointMake([UIScreen mainScreen].applicationFrame.size.width/2, groundLevel+300);
[self addChild:player];
self.player = player;
}
return self;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
/* Called when a touch begins */
}
-(void)update:(CFTimeInterval)currentTime {
/* Called before each frame is rendered */
[self.player.physicsBody applyForce:CGVectorMake(30, 0)]; // <=------------
}
@end
最佳答案
您的问题是SpriteKit会自动施加摩擦,并且对于为Node设置的质量,力很小。您需要设置较低的质量,较低的摩擦力(例如0.0),较低的重力或施加更大的力。该代码没有什么特别的错误,因为默认的摩擦和重力与质量和力的大小共同导致一个固定节点。
关于ios - SpriteKit applyforce不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24856232/
在我的项目中,我有我的主角 body 。只要按下屏幕,我就希望它在 y 轴上向下移动。我用 试过了 public boolean touchUp(int screenX, int screenY, i
我在 IOS/cocos2D/Box2D 游戏中使用 b2Body->ApplyForce() 时遇到问题。我有一个球对象,我正在施加力来模拟高尔夫球杆对它的击打。用户设置射门的角度和力量,然后点击射
我想让我的角色强行向右移动。但它不适用于下面的这段代码。我不知道我在这里错过了什么,但是玩家仍然站在底部没有任何 Action 。有什么线索吗? // MyScene.h -(void)update:
使用 box2d 在 javascript 中学习游戏编码的一部分,我尝试使用箭头键事件在 4 个方向上移动矩形体(想象为汽车)。 为此,我创建了一个无重力世界,其中静态物体(即 2 个平行边)作为道
我有一个在屏幕上弹跳的球,当调用函数 touchesEnded 时球开始弹跳: override func touchesEnded(_ touches: Set, with event: U
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我正在使用 Box2D 做一个简单的射击游戏,用户需要选择一个角度和力来射球并击中某物。 (类似于愤怒的小鸟)。我的球的初始位置是静止的,玩家可以选择射门的角度和力量。为此,我调用了 ApplyFor
尽管在 box2d 前花了几个小时,但我仍然不明白 applyforce 和 applyimpulse 是如何工作的。我尝试使用一些视觉效果来更好地理解正在发生的事情(通过在 body 位置和应用点之
我使用下面列出的代码作为 SpriteKit 的实验。我所做的是对它施加与重力效应相同的力,但使用反平行矢量(物体质量设置为 1.0)。该函数通过更新函数在每一帧上执行。我希望对象根本不会移动,因为
当对动态物体施加力时,即使脉冲设置为 false,该力似乎也不会持续。 我有一个带有 physicsBody 的 sphereNode:dynamic,mass=1 和 damping=0。世界重力设
我有一个 sprite 节点,它响应于施加在其连接的 physicsBody 上的重力而出现和下落。 很好。 现在,我想使用 applyForce 在它下落时向某个方向稍微插入它。 不幸的是,无论我将
所以我有一个具有 physicsBody 的对象,重力会影响它。它也是动态的。 目前,当用户触摸屏幕时,我运行代码: 应用力(0, 400) 物体向上移动大约 200,然后由于重力而回落。这只会在某些
我遇到了最奇怪的行为,物理引擎决定如果有太多其他物体(圆形 SKPhysicsBody)插入它(使用 applyForce()),墙壁(矩形 SKPhysicsBody)就会破裂 据我所知,Sprit
我和一个 friend 正在用 SpriteKit 制作一些东西的原型(prototype)。这不是我 friend 第一次使用它,但这是我第一次。 我们简单的控制了一个正方形。你可以在一个“地面”节
我是一名优秀的程序员,十分优秀!