SKPhysicsBody 不符合预期

2023-12-25

我有以下代码来创建一个矩形砖块和一个与其关联的物理体。我预计物理主体是一个与砖块相同大小和位置的实心矩形,但我得到的主体有一个位置偏移,也许还有尺寸差异。我错过的坐标系是否存在问题?解决这个问题的正确方法是什么?

- (void)addBrick {
    SKShapeNode *brick = [[SKShapeNode alloc] init];

    CGRect brickBoundary = CGRectMake(0.0, 0.0, 100.0, 100.0);
    brick.position = CGPointMake(100.0, 100.0);
    brick.path = CGPathCreateWithRect(brickBoundary, nil);

    brick.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(100.0,100.0)];
    brick.physicsBody.restitution = 1.0;
    brick.physicsBody.friction = 0.0;
    brick.physicsBody.dynamic = NO;

    [self addChild:brick]; 
}

这是创建矩形并向其添加物理体的简单方法。

SKSpriteNode *n1 = [SKSpriteNode spriteNodeWithColor:[UIColor blueColor] size:objectSize];
n1.position = CGPointMake(self.size.width/2, 200);
n1.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:n1.size];
n1.physicsBody.dynamic = NO;
[self addChild:n1];

这是一个修改版本RW http://www.raywenderlich.com为您的恶意提供调试矩形的教程

// RW Debug modified version
CGPathRef bodyPath = CGPathCreateWithRect( CGRectMake(-n1.size.width/2, -n1.size.height/2, n1.size.width, n1.size.height),nil);
SKShapeNode *shape = [SKShapeNode node];
shape.path = bodyPath;
shape.strokeColor = [SKColor colorWithRed:1.0 green:0 blue:0 alpha:0.5];
shape.lineWidth = 1.0;
[n1 addChild:shape];
CGPathRelease(bodyPath);

您的实现产生了这个(红色是物理框)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SKPhysicsBody 不符合预期 的相关文章

  • 将 NSString 分离成 N​​SArray,但允许用引号对单词进行分组

    我有一个搜索字符串 人们可以使用引号将短语组合在一起 并将其与单个关键字混合 例如 像这样的字符串 Something amazing rooster 我想把它分成一个 NSArray 这样它就有Something amazing 不带引号
  • 比较具有相同值但顺序不同的两个数组

    我有 2 个 nsarray 具有相同的值但顺序不同 NSArray array1 0 1 2 3 NSArray array2 2 3 1 0 我需要一种方法来确定两个数组是否具有不同顺序的相同值 Kind of BOOL isSameV
  • UIButton 和滑动手势

    我有一个UIView有两个UIButton每侧 左侧和右侧 都有 s 和UIImageView在中心 点击任一按钮都会改变UIImageView那行得通 我想要滑动的能力UIView以及它改变UIImageView 现在 您必须在UIIma
  • iOS UIView子类,将透明文本绘制到背景

    我想将文本绘制到 UIView 上的子类上 以便文本从形状中切出 并且视图后面的背景显示出来 就像在 OSX Mavericks 徽标中找到的那样here http www n3rdabl3 co uk wp content uploads
  • MPMediaItemPropertyAssetURL 仅针对 iPhone 5s 返回 null

    我一直在使用以下代码从 MPMediaItemPickerController 返回的 MPMediaItem 对象中提取资产 url 以便我可以将音乐文件从用户 iPhone itunes 音乐库复制到文档文件夹进行处理 但在 iPhon
  • UITableView 最后一个单元格被 UITabBarController 隐藏

    我面临一个奇怪的问题 我有一个UITableView在最初的UIViewController of the UITabBarController 起初一切都很好 但是当我更改选项卡并返回到第一个选项卡时 最后一个单元格UITableView
  • 在横向模式下向 UIScrollView 添加子视图

    我有一个以横向模式启动的视图控制器 其中有一个 UIScrollView 我尝试创建子视图并将它们添加到 UIScrollView 但视图的框架大小都是纵向大小 这是我的代码 void viewDidLoad super viewDidLo
  • 创建自定义 MCBrowserViewController

    有没有办法创建一个UITableView包含在中找到的相同信息MCBrowserViewController 我当前的代码只允许推送与我的应用程序设计不同的标准视图 self browserVC MCBrowserViewControlle
  • 在 SKScene 上运行 SKTransition 是否会破坏原始 SKScene?

    在 SKScene 上运行 SKTransition 是否会破坏原始 SKScene 例如 SKTransition reveal SKTransition revealWithDirection SKTransitionDirection
  • NSString keepCount 是 2147483647 [重复]

    这个问题在这里已经有答案了 可能的重复 NSString 保留计数 https stackoverflow com questions 1390334 nsstring retain count Objective C NSString 属
  • 方向改变时重新定位控件

    我知道自动布局可用于在方向改变时使尺寸和位置保持一致 当方向改变时 是否可以完全改变布局 例如 请查看下面的纵向模式下简单登录屏幕的线框 现在 如果我旋转设备 我想完全重新定位控件 这种事情可以用自动布局来完成吗 如果没有 我该怎么办 谢谢
  • NSCalendar 返回明年第一周上周一的错误日期

    我使用下面的代码使用随机日期来计算上周一 哪个工作文件但我的代码在明年日期中断 下面是相同的代码 NSDate date NSDate dateWithTimeIntervalSince1970 1483620311 228 NSLog c
  • 如何检测 UISwipeGestureRecognizer 的结束?

    来自苹果文档 滑动是一种离散手势 因此每个手势仅发送一次关联的操作消息 void touchesEnded NSSet touches withEvent UIEvent event 当我使用 UISwipeGestureRecognize
  • 如何在iOS中处理1到3个手指的滑动手势

    我使用以下代码来处理代码中的 1 根手指滑动 UISwipeGestureRecognizer swipe UISwipeGestureRecognizer alloc initWithTarget self action selector
  • Objective-C UILabel 作为超链接

    我正在尝试做一个UILabel一个链接UIWebView 我怎样才能做一个UILabel作为超链接 您可以使用 UITapGestureRecognizer 它将实现与您想要的类似的功能 UILabel myLabel UILabel al
  • 生成具有固定数字长度的随机数?

    我正在生成随机数 int randomID arc4random 3000 但我想生成至少 4 位数字的随机数 如 1000 2400 1122 我想知道 Objective C 的代码 请尝试 生成数字 1000 9999 int ran
  • 调整 UIImage 的大小而不将其完全加载到内存中?

    我正在开发一个应用程序 用户可以在其中尝试加载非常非常大的图像 这些图像首先在表格视图中显示为缩略图 我的原始代码会在大图像上崩溃 因此我重写它以首先将图像直接下载到磁盘 是否有一种已知的方法可以调整磁盘上图像的大小 而无需通过以下方式将其
  • “预期的 ';'在 Swift 下的顶级声明符之后”

    我正在尝试将所有颜色设置在一个 Swift 文件中 该文件可以在我的整个应用程序中使用 下面的代码会导致 import Foundation import UIKit class DotColors let tsblueColor UICo
  • 如何为 UIImageView 随机化器实现滑动手势

    我一直在浏览大量的教程和问题 但似乎找不到我要找的东西 我有一种感觉 我只是错过了一个简单的步骤 我仍在学习诀窍 所以请承受和我一起做这个 我正在 xcode 4 3 3 上制作图像随机化器 并且我已经能够使用按钮来随机化图像 但我希望它能
  • ios - 如何声明静态变量? [复制]

    这个问题在这里已经有答案了 C 中声明的静态变量如下 private const string Host http 80dfgf7c22634nbbfb82339d46 cloudapp net private const string S

随机推荐

  • Python - 将字典打印为带标题的水平表

    我有一本字典 import math import random d 1 Spices math floor random gauss 40 5 2 Other stuff math floor random gauss 20 5 3 Te
  • 用于持续流式传输的 java.nio 选择器和 SocketChannel

    我目前正在使用 java nio channel Selectors 和 SocketChannels 作为应用程序 该应用程序将打开一对多连接以继续流式传输到服务器 我的应用程序有三个线程 StreamWriteWorker 对 Sock
  • 必须使用尾随返回类型的示例,因为问题无法用旧方法解决

    是否有任何情况 我们必须使用尾随返回类型 因为问题不能用旧的方式来表达 auto fn gt int 可以很容易地转换成旧的方式 int fn 我想知道 是否有一个例子 这种转变是不可能的 最直接的例子 当我们在返回类型中引用函数参数时 似
  • 如果我知道某个 HTML 元素或类的 id,如何在 Beautiful Soup 中设置值?

    如果我知道 HTML 元素或类的 id 如何在某个元素中使用 Beautiful Soup 设置值 例如我有 td td 我想设置文本恢复 就像 td RESTORE td 使用 a 找到您要修改的标签find 搜索id test Then
  • Flutter中的共享首选项无法保存和读取列表

    我使用一些共享首选项来读取和保存列表 但我得到的只是一个错误 如下所示 Launching lib main dart on iPhone 7 in debug mode Xcode build done 4 1s Tried callin
  • DocumentContract 上的 ContentResolver 查询列出所有文件,忽略选择

    我试图从具有特定 MIME 类型的目录中获取所有文件 我想要所有图像 我使用了一些示例代码 其中使用 MediaStore 作为 URI 但后来发现很难为所选目录过滤它 因为结果集中返回的 URI 的格式与我提供的 URI 的格式不同 所以
  • MinGW 在 NetBeans 上完全被窃听

    以下代码不应产生错误 include
  • 覆盖两个图块的多行文字 y 轴标签

    我该如何使用mtext side 2 text y axis 为下面示例中的两个图块放置 y 轴标签 也就是说 我希望能够放置一个标签 而不是放置两个单独的 y 轴标签 layout matrix 1 2 ncol 1 widths 1 h
  • RStudio - 深色主题 - 白色菜单栏

    我全新安装了带有 Cinnamon 桌面的 Arch Linux 当我在 RStudio 中将主题更改为深色时 顶部面板仍然是白色的 为什么会这样 我该如何改变它 您是否已更新到 RStudio 的最新版本
  • 我可以为`std`命名空间添加推导指南吗?

    假设我想制作一个新的演绎指南 使以下内容成为可能 std string str std basic string view sv str 这是一个好的定制吗 命名空间 std 2 4 https timsong cpp github io
  • Xcode 5 - 启动图像未在 iPhone 应用程序的 iPad 中加载

    我正在 Xcode 5 上开发一个 iPhone 应用程序 它具有 iOS 7 设计 但部署目标是 iOS 6 0 我的问题与应用程序的启动屏幕有关 它在 iPhone 上运行良好 现在 当我尝试在 iPad 上运行应用程序时 它没有加载启
  • Django 发送电子邮件:SMTPServerDisconnected:连接意外关闭

    你好 我想发送电子邮件激活使用 django 注册 redux 这是我的设置 py EMAIL BACKEND django core mail backends smtp EmailBackend ACCOUNT ACTIVATION D
  • scala 宏:延迟类型推断

    序言 这是基于 Travis Brown 的基于宏的解决方案 https stackoverflow com a 13447439 185840复制案例类属性 Given trait Entity E lt Entity E self E
  • PyYAML :控制 yaml.load() 调用的项目的顺序

    我有一个 yaml 设置文件 它在数据库中创建一些记录 setting1 name item item name1 text anothersetting2 name item item sub setting name item item
  • 将动态 JSON 值解析为 Java 对象

    在我的应用程序中 我有很多具有排序和过滤功能的概述 表格 由于不同的列可以保存不同的值类型 字符串 数字 日期 集合等 因此这些列的过滤器也可以带来不同的值 让我向您展示一些示例 已转换为 JSON 通过 REST 请求发送到服务器 对于简
  • XE7更新1和iOS 8.1模拟器不工作

    在 Delphi XE7 中将目标设置为 iOS 8 1 Simulator 时 应用程序崩溃 它部署得很好 也可以运行 但是 firemonkey 启动屏幕仍然打开并且永远不会完成加载 这种情况发生在一个普通的新移动应用程序中 只在表单中
  • SignalR:生成的代理与动态创建的集线器文件

    SignalR 集线器代理生成器的输出与动态生成的集线器代理文件本质上相同吗 如果不是 有什么区别 我的问题的一些背景 由于执行期间的依赖性问题 我正在努力使用命令行工具创建集线器代理 并且我确实认为获取动态生成的文件可能是一种更简单的方法
  • 限制 Visual Studio 的编辑区域仅显示一个函数或方法

    几年前 当我使用 VB 6 时 我可以让编辑器窗口只显示我正在处理的函数 方法 我怀念这一点 有没有一种方法 一个插件 或者一个黑客 可以让我现在做同样的事情 Thanks 看来此功能已被删除 而且没有办法解决这个问题 也许您可 以考虑为
  • ValueError:无法解析相关模型u'mutech.branch'

    我正在尝试在 models py 文件中创建外键 但是在运行 python manage py migrate 命令时 我收到以下错误 之前一切都很好 即使我撤消了所有更改 它仍然给出相同的错误 我也尝试删除我的数据库 但没有任何效果 Ap
  • SKPhysicsBody 不符合预期

    我有以下代码来创建一个矩形砖块和一个与其关联的物理体 我预计物理主体是一个与砖块相同大小和位置的实心矩形 但我得到的主体有一个位置偏移 也许还有尺寸差异 我错过的坐标系是否存在问题 解决这个问题的正确方法是什么 void addBrick