jjzjj

c++ - 紧密物理和碰撞循环中的缓存友好内存访问

我正在编写一个物理引擎,并且很难找到设计数据存储的好方法。我想要的功能:有一个代表PhysicsBody的类有一个代表碰撞体积的类(比方说一个盒子)每个物理体都可以附加一个碰撞体可能有没有碰撞体的物理体可选:没有物理体的CollisionVolume。(想想触发音量)现在我基本上有两个循环。一个更新模拟中的物理体。它更新它们的位置/速度/旋转。第二个循环对所有碰撞体执行碰撞检测。它只是一个嵌套的for循环,用于检查每对碰撞体积之间的碰撞。(我知道它可以做得更好,但这是一个单独的主题)我知道理想的方式是将对象存储在连续的数组中。std::vectorm_bodies;std::vecto

iOS ARKit + SceneKit 物理接触检测缩放问题

我有一个简单的3d区域,其中包含4个墙,每个墙都是一个SCNNode,具有简单的SCNBox几何形状,矩形形状,并附有匹配的SCNPhysicsBody。SCNPhysicsBody使用SCNPhysicsShape.ShapeType.boundingBox,并设置为静态类型。这是一个代码片段:letsize=(self.levelNode.boundingBox.max-self.levelNode.boundingBox.min)*self.levelNode.scale//x//zletgeometryA=SCNBox(width:CGFloat(size.x),height:

ios - 如何在 Sprite 工具包中使用新的每像素 SkPhysics Bodies

随着iOS8的发布苹果也发布了新的swift。购买他们还发布了Sprite套件的一些更新。其中之一是每像素物理体。我试图找到如何在xcodebeta中实现这个每像素物理体,并且在搜索SKphysicBody类后我无法找到任何东西。只是想知道这是否会在稍后发布,或者我是否遗漏了什么。此外,如果此功能仅在swift中可用,还是在swift和objectiveC中都可用。 最佳答案 对于每像素物理体迅捷init(texture纹理:SKTexture!,sizesize:CGSize)->SKPhysicsBodyobjective-C+

ios - 碰撞不起作用时的 SpriteKit 旋转

我有这个code模拟碰撞,但我的物体不会旋转。所以碰撞似乎效果很好,但没有旋转。 最佳答案 这很奇怪。我会说这是因为您已将摩擦力设置为0.0,没有任何东西可以使它旋转。同时检查物理体上的“allowsRotation”属性以确保它设置为TRUE。 关于ios-碰撞不起作用时的SpriteKit旋转,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/29108071/

ios - Sprite Kit判断一个点是否在物理体的边界内

我正在使用SpriteKit创建一个涉及气球的游戏。气球图像是一个长矩形(虚线),但我使用多边形(实线)在气球本身周围定义了一个物理体。我希望玩家能够“弹出”气球。我正在使用以下代码块来实现此目的:-(void)touchesBegan:(NSSet*)toucheswithEvent:(UIEvent*)event{UITouch*touch=[touchesanyObject];NSArray*nodes=[selfnodesAtPoint:[touchlocationInNode:self]];for(SKNode*nodeinnodes){[noderemoveFromPare

ios - 仅在矩形物理体的一侧检测碰撞 - Swift3

我目前正在研究2D无尽的运行者,用Swift3编写并使用Spritekit。简短的问题:有没有办法只检查角色矩形物理体右侧的碰撞?更多信息:角色运行的平台由拼图组成,用户可以随着游戏的进行在其上构建。角色相对于背景(从右到左)从左到右前进。我希望角色在与他右侧的棋子碰撞时自动跳跃。然而,玩家放在他右边的任何棋子(与角色相同的Y值)与他下面的棋子属于同一类。因此,只要游戏检测到角色与其下方的棋子发生碰撞,检查角色与右侧棋子之间的碰撞并让他跳跃的代码也会让他跳跃。我没能找到另一个像我这样的问题,因为通常其他人的角色会与其地面类中不同类的对象发生碰撞。谢谢!附言我试图使我的角色成为具有两个物

ios - 如何使用 CGPathRef 创建蛋形物理体?

我必须创建一个CGPathRef来模拟SpriteKit中的物理属性。我正在尝试通过一半圆形加一半椭圆形创建蛋形路径。鸡蛋的比例是0.4(半圆底部)到0.6(半椭圆上部);但是,我不知道为什么什么都没有发生。下面的代码是路径的创建:self.egg=[SKSpriteNodespriteNodeWithImageNamed:IMAGE_NAME_EGG];[self.eggsetScale:0.2];self.egg.position=CGPointMake(self.size.width/2,self.size.height-self.egg.size.height/2);self.

ios - SpriteKit 物理体在与关节连接时不会发生碰撞

我正在评估iOSSpriteKit物理引擎,为了进行测试,我使用Xcode创建了一个包含两个圆形节点的简单场景:两个节点都有圆形的物理体和5公斤的质量。我用SKPhysicsJointSpring连接两个节点。这是整个设置(在viewDidLoad()中):letpath=NSBundle.mainBundle().pathForResource("MyScene",ofType:"sks")!letscene=NSKeyedUnarchiver.unarchiveObjectWithFile(path)as!SKSceneletborder=SKPhysicsBody(edgeLoo

ios - SKPhysicsWorld 在缩放节点中模拟物理

我正在尝试构建一个SpriteKit游戏,其中涉及具有可以放大和缩小的物理体的关卡。物理世界的行为并不像我预期的那样,并且在更改缩放级别时导致奇怪的事情发生。具有物理实体的节点会按预期进行动画处理和行为。围绕关卡进行缩放是通过捏合手势来处理的,该手势正在调整包含所有游戏元素的单个“世界节点”的比例。这是一种处理它的便捷方法,因为缩放场景似乎会做一些可怕的事情,而且它可以很容易地为世界节点顶部的任何游戏界面元素添加一个单独的未缩放节点。缩放是这样的:-(void)handlePinchGesture:(UIPinchGestureRecognizer*)gesture{if(gestur

ios - SpriteKit Pinball Flipper 行为

我正在尝试使用spritekit构建弹球游戏。球受重力影响并做出正确react,但我想不出一种方法来移动脚蹼以影响球的物理特性。现在我正在使用像这样的SKAction围绕anchor旋转鳍状肢//setanchorpointtoleftedgeforrotationtheLeftFlipper.anchorPoint=CGPointMake(0,0.5);//rotate(doneintouchesBegan)SKAction*rotateLeft=[SKActionrotateByAngle:-1.5fduration:0.1];[leftFlipperrunAction:rotat