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

快速游戏碰撞检测和物理-精灵和背景

龙德海
2023-03-14

我正在学习 Swift 为 iOS 创建一款游戏,但我正在努力弄清楚精灵将如何碰撞并与背景交互。

基本游戏将是一个球,你引导迷宫,但迷宫可以比屏幕大几倍。迷宫可以是一个大位图,或者由瓷砖组成,但我还没有根据如何使球与迷宫相互作用来决定。

我可以制作迷宫精灵节点中的所有方块,然后让SpriteKit完成,但我认为这不是一个好选择。

然后是SpriteKit边缘体,如图所示——https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Physics/Physics.html我可以在球可能碰撞的迷宫部分使用这些吗?

另一个问题是迷宫的表面可能是圆形的,所以碰撞和物理也需要处理这个问题。

我能找到的所有例子似乎都是精灵与其他精灵发生冲突。但是精灵和背景呢?

有人对如何解决这个问题有什么聪明的想法吗?或者你能给我举一个可能有帮助的例子吗?

标记

共有1个答案

张鸿宝
2023-03-14

做这件事没有对错之分。

在瓷砖与1固体背景的方式中,您需要问自己一些问题:

我想消耗多少内存
我想用多少装载时间
我想要多详细的背景
我想制作多大的背景(变化量)
背景是否大于最大纹理大小?

在你决定你想要什么之后,你会发现决定你将使用的方法更容易。

你的物理是一个不同的问题,记住,物理和节点在这里是两个不同的东西,所以你的物理体不必反映节点设计,允许你做像看不见的墙这样的事情。你有几种方法:


如果你正在做图块,你可以在每个图块上附加一个主体。
最后,你可以生成大量的主体并将它们合并到你的背景节点中。

同样,根据你希望你的地图如何工作,会告诉你哪个选项是最好的。就我个人而言,我会从最后一个选项开始(将一堆身体合并在一起),因为这将允许你合并所有混凝土墙的边缘身体,然后如果你需要制作门或临时墙之类的东西,我会将它们添加到单独的节点中。

圆形零件的问题。

SKPhysicsBody允许使用CGPath,因此只需为您需要的任何形状创建路径即可。

 类似资料:
  • 在开始学习相关知识点之前,我们有必要先学习精灵和碰撞检测的含义。 精灵(英文译为 Sprite),其实在一个游戏程序中,精灵本质指的是一张张小尺寸的图片,比如游戏中的各种道具、人物、场景装饰等,它们都可以看做成一张张小的“精灵”图。除此之外,人物的移动也可以看做是一系列小精灵图构成的序列(按帧组成的序列),如下图所示: 图1:动作逐帧分解图 如果将逐帧分解后的动作,按照一定的频率播放,那么就形成了

  • 在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

  • 我的游戏有两个职业,它们都产生精灵,唯一的区别是它们的精灵向不同的方向移动。 然而,我如何检测另一个类的精灵是否与这个类碰撞,两个类都产生了很多精灵。我的想法是也使用池为每个精灵创建一个矩形。

  • 我希望代码能够检测岩石和玩家之间的碰撞。但不知何故,程序会一直检测到碰撞。我尝试调试它,并尝试寻找此问题的解决方案,但没有成功。这只是我或这是非常常见的。 也许是矩形大小?当我尝试尽我所能时,问题仍在继续。自己尝试代码。帮帮我! 请回答! 代码:

  • 好的,所以我对精灵工具包相当陌生,我在Swift中工作。我有2个精灵节点,和。有一个物理体,这就是我设置它的方式: 目前没有物理实体: 我需要知道如何在这些对象之间进行碰撞检测(即,如果救世主和小鸡接触,则执行此操作),最好不要使成为物理体。 当我把鸡做成一个物理物体时,它突然变得不稳定,并移动其他物体。 如果没有物理学就无法进行碰撞检测,我怎样才能使成为不受任何影响的物理体,并且直接穿过其他物理

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