gpt4 book ai didi

ios - 如何设置场景物理体的边界以正确反弹?

转载 作者:行者123 更新时间:2023-11-29 12:09:04 25 4
gpt4 key购买 nike

我实现了一个简单的物理来弹跳一个 sprite 节点,除了节点在顶部和底部从屏幕上弹跳外,一切正常。侧面没问题,但它脱离了屏幕顶部和底部 View 屏幕。

这是 View :

enter image description here

如您所见,我的球在底部离开了屏幕,完美地触及了其他三个边。

这是因为,我对以下内容进行了更改:

   self.physicsBody=[SKPhysicsBody bodyWithEdgeLoopFromRect:CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, self.frame.size.height-100)];  

如果我使用 scene frame,那么球在顶部和底部都会离开屏幕,但它会反弹。

     self.physicsBody=[SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];  

我的问题是为什么 self.frame 不足以设置 scene physicsBody 的边界?

当我这样设置边界时,唯一对我有用的条件是:

   self.physicsBody=[SKPhysicsBody bodyWithEdgeLoopFromRect:CGRectMake(self.frame.origin.x, self.frame.origin.y+100, self.frame.size.width, self.frame.size.height-200)];  

最佳答案

这是因为场景的大小和 View 的大小不一样。

在 GameViewController.m 文件中添加这一行:

scene.size = skView.bounds.size

它在这里:

/* 设置缩放模式为缩放以适应窗口 */
scene.scaleMode = .AspectFill
scene.size = skView.bounds.size

当然,您需要正常定位 View (删除您添加的 +100 等)。

关于ios - 如何设置场景物理体的边界以正确反弹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34048916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com