当前位置: 首页 > 知识库问答 >
问题:

无尽跑者游戏中的精灵套件物理?

公孙宇
2023-03-14

我将如何在无休止的跑步游戏中使用精灵套件物理?

一个无尽的跑步者通过保持玩家静止,但以设定的速度移动背景和所有其他物体来假装运动。

但是,我想模拟物理。

如果我让我的播放器随着物理引擎移动,通过播放器从原始位置的位移来移动背景,然后将播放器移动回它的原始位置,会怎么样?

这样会不会光滑好看?如果是这样的话,那么我应该使用什么样的sprite kit方法来避免向用户显示视觉错误呢?

正确的解决方案是什么?

谢谢。

共有1个答案

麻超
2023-03-14

正确的方法是将场景居中在节点上。学习如何这样做的最佳方法是继续访问此处的文档(转到标题为“在节点上居中场景”的部分),但是如果您在实现过程中遇到任何问题,请告诉我们!

如果你想知道它是如何工作的,背景保持静止(除非你想要视差滚动),而角色移动。然而,每一帧摄像机都“跟随”一个玩家,这意味着无论你用物理移动你的玩家到哪里,屏幕都会跟随并保持角色在中心。

编辑

下面是我在一个游戏中使用的代码,它以精灵(一个由按钮控制的平面)为中心:

-(void)didSimulatePhysics {

... #Code here to simulate plane movement and such

SKNode *camera = [self childNodeWithName:@"//camera"];
SKNode *player = [self childNodeWithName:@"//sprite"];

if (player.position.y >= 0) camera.position = CGPointMake(player.position.x, player.position.y);
else camera.position = CGPointMake(player.position.x, 0);

[self centerOnNode:camera];

if (velocity>1){
    self.directionMeter.zRotation = -M_PI/2 + mdirectionOfTravel;
}
}

-(void)centerOnNode:(SKNode *)node {
CGPoint cameraPositionInScene = [node.scene convertPoint:node.position fromNode:node.parent];

node.parent.position = CGPointMake(node.parent.position.x - cameraPositionInScene.x, node.parent.position.y - cameraPositionInScene.y);
}

基本上,当玩家位于某个位置上方时,我会将摄像机与玩家一起向上移动。当玩家在x轴上移动任何位置时,相机总是跟着他们移动。我有接触检测功能,可以找到玩家撞到地面的位置(因此会失败),背景颜色(天空)根据飞机的高度变化(飞机越高,蓝色越深)。

 类似资料:
  • 当我通过卡布局切换到另一个JPanel时,我遇到了一个卡住的精灵的问题。 现在..从屏幕切换的角度来看,一切都正常..但我的播放器精灵在切换后会卡在屏幕上,但在初始加载时,我可以用箭头键移动精灵。我不确定在新的视图上忽略播放器是否是罪魁祸首..但是我有一种感觉..想不出我做错了什么.. 玩家是这样的: 导入导入 java.awt.Rectangle;import java.awt.event.Ke

  • 我正在学习 Swift 为 iOS 创建一款游戏,但我正在努力弄清楚精灵将如何碰撞并与背景交互。 基本游戏将是一个球,你引导迷宫,但迷宫可以比屏幕大几倍。迷宫可以是一个大位图,或者由瓷砖组成,但我还没有根据如何使球与迷宫相互作用来决定。 我可以制作迷宫精灵节点中的所有方块,然后让SpriteKit完成,但我认为这不是一个好选择。 然后是SpriteKit边缘体,如图所示——https://deve

  • 我在雪碧套装里做一个复古街机游戏。我是这个框架的新手,所以我每分钟都发现新的东西,但很难解决这个问题,我在过去的几个小时里一直试图解决这个问题。 首先是游戏的屏幕转储和用红色勾勒出的物理实体。 http://i.imgur.com/KcbMVn4.png?1 当你按下拳击手套按钮时,大家伙通过这种方法进行拳击 } 我的碰撞代理如下所示 我这里的问题是,让didBeginContact记录命中的唯一

  • 在get_hit=pyGame.sprite的第82行,我检查sprite碰撞的移动时,它会给出错误提示:“:File”c:\Users\pc\VS_PYTHON_PY\pyGame.PY“。”。spritecollide(Player,敌方,True)文件“C:\python py\lib\site packages\pygame\sprite.py”,第1682行,位于spritecrolli

  • 本文向大家介绍pygame学习笔记(5):游戏精灵,包括了pygame学习笔记(5):游戏精灵的使用技巧和注意事项,需要的朋友参考一下 据说在任天堂FC时代,精灵的作用相当巨大,可是那时候只知道怎么玩超级玛丽、魂斗罗,却对精灵一点也不知。pygame.sprite.Sprite就是Pygame里面用来实现精灵的一个类,使用时,并不需要对它实例化,只需要继承他,然后按需写出自己的类就好了,因此非常简

  • 我正在使用Sprite Kit中的碰撞检测。它在起作用,防止我的精灵穿越路径。然而,我在didBeginContact中没有收到通知:而且我似乎无法控制物理引擎在发生碰撞时的响应。 我让各种汽车(SKSpriteNodes)使用SKAction followPath沿着以下路径行驶:as offset:oriento path:duration: 以前,如果两辆车相交,它们都会像往常一样继续行驶,