我正在尝试在Scenekit中制作一个简单的迷宫游戏。我有一个球体节点和墙节点。球体由SCNActions移动。我在球体上使用的动作是moveByX动作。我的问题是,每当球体撞到墙壁时,它就会将墙壁移回墙壁。我的球体是运动学的,我的墙壁是动态的。我在场景中没有任何力量,只有我的moveByX动作。我怎样才能让它的球体从墙上反弹?
我正在使用Swift。
答案 0 :(得分:1)
将墙壁更改为.static,将球体更改为.dynamic
答案 1 :(得分:0)
你可以做的一种方法是为xSpeed和ySpeed设置变量,每当你与墙碰撞时,相应的变量都是负数。这是一种非常基本的方法,并没有考虑对角墙。
例如:
# views.py
def my_view(request, object_id, slug=None):
# first get the object
my_object = get_object_or_404(MyModel, id=object_id)
# Now we will check if the slug in url is same
# as my_object's slug or not
if slug != my_object.slug:
# either slug is wrong or None
return redirect(my_object.get_absolute_url())
# this is processed if slugs match
# so do whatever you want
return render(request, 'my-template.html', {'my_object': my_object})
检测碰撞可能有点棘手,您可能需要查看有关SpriteKit碰撞的一些教程。
答案 2 :(得分:0)
适用于Swift3
let border = SKPhysicsBody(edgeLoopFrom: self.frame)
border.friction = 0
border.restitution = 1
self.physicsBody = border