问题标签 [box2d-iphone]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4029 浏览

iphone - Cocos2D 相机运动?

我将屏幕居中以跟随角色的最佳方式是什么?我应该使用CCCamera还是只是移动背景?

我是 cocos2d 的新手,所以请告诉我确切的代码。

顺便说一句:我也在这个项目中使用 box2d。

谢谢

0 投票
1 回答
824 浏览

iphone - 如何将 CCSprite(纹理)添加到多边形?

我正在将 Box2D 多边形添加到我的世界中,但我不知道如何仅将纹理添加到多边形形状。多边形是一个三角形,在初始化我的精灵时使用 CGRectMake() 作为 rect: 参数给我一个比我的多边形更大的精灵。

这是我在场景中添加多边形(弹簧)的方法

这是类中的方法,我在其中启动弹簧和弹簧精灵。

如何为多边形初始化带有纹理的精灵?并且只让多边形的形状有质感?谢谢!

0 投票
1 回答
1792 浏览

iphone - Box2d SetLinearVelocity 不适用于重力

我的 box2d 世界中有一个身体(玩家)。

每当我尝试设置它的 x 速度(每 2 秒或其他)并且它由于重力而下降时,它会上下抖动。

我还尝试将它的 y 速度设置为等于重力(-30.0f),但它做得更糟。

特维姆。

0 投票
2 回答
1827 浏览

cocos2d-iphone - 尝试使用 DebugDraw 时使用 Cocos2d 和 Box2d 获取 EXC_BAD_ACCESS


这件事让我发疯了!
我正在尝试使用 Cocos2d (0.99.5) 和 Box2D,并且我已经成功创建了一个包含一个图层和两个物体(实际上是几个弹跳球)的场景。现在我想启用 DebugDrawing,这样我就可以确切地看到正在发生的事情。考虑到在禁用 DebugDrawing 的情况下一切正常。

谈到代码,在我的 init 方法中我有这个:

我的绘制方法如下:

问题是当程序到达该行时

抛出一个 EXC_BAD_ACCESS 异常。调试器在此处显示错误:

主窗口显示的错误是:“线程 1:程序接收信号:'EXC_BAD_ACCESS'”。这是我得到的输出:

GNU gdb 6.3.50-20050815(Apple 版本 gdb-1515)(2011 年 1 月 8 日星期六 00:31:48 UTC)版权所有 2004 Free Software Foundation, Inc.

GDB 是自由软件,受 GNU 通用公共许可证保护,欢迎您在特定条件下更改和/或分发它的副本。

键入“显示复制”以查看条件。

GDB 绝对没有任何保证。键入“显示保修”以获取详细信息。

此 GDB 配置为“--host=x86_64-apple-darwin --target=arm-apple-darwin”.tty /dev/ttys000 target remote-mobile /tmp/.XcodeGDBRemote-191-40

切换到 remote-macosx 协议

内存 0x1000 0x3fffffff 缓存

内存 0x40000000 0xffffffff 无

内存 0x00000000 0x0fff 无

[切换到线程 11779]

[切换到线程 11779]

共享库应用加载规则全部

2011-03-03 22:10:36.477 MyApp [2738:707] cocos2d: cocos2d v0.99.5

2011-03-03 22:10:36.529 MyApp [2738:707] cocos2d:使用导演类型:CCDirectorDisplayLink

2011-03-03 22:10:36.936 MyApp [2738:707] cocos2d:操作系统版本:4.3 (0x04030000)

2011-03-03 22:10:36.943 MyApp[2738:707] cocos2d: GL_VENDOR: Imagination Technologies

2011-03-03 22:10:36.949 MyApp[2738:707] cocos2d: GL_RENDERER: PowerVR SGX 535

2011-03-03 22:10:36.956 MyApp [2738:707] cocos2d: GL_VERSION: OpenGL ES-CM 1.1 IMGSGX535-58.1

2011-03-03 22:10:36.966 MyApp[2738:707] cocos2d: GL_MAX_TEXTURE_SIZE: 2048

2011-03-03 22:10:36.973 MyApp[2738:707] cocos2d: GL_MAX_MODELVIEW_STACK_DEPTH: 16

2011-03-03 22:10:36.979 MyApp[2738:707] cocos2d: GL_MAX_SAMPLES: 4

2011-03-03 22:10:37.020 MyApp[2738:707] cocos2d:GL 支持 PVRTC:是

2011-03-03 22:10:37.026 MyApp [2738:707] cocos2d:GL 支持 BGRA8888 纹理:是

2011-03-03 22:10:37.033 MyApp[2738:707] cocos2d:GL 支持 NPOT 纹理:是

2011-03-03 22:10:37.039 MyApp[2738:707] cocos2d: GL 支持discard_framebuffer: 是

2011-03-03 22:10:37.060 MyApp[2738:707] cocos2d:编译时支持 NPOT:否

2011-03-03 22:10:37.066 MyApp [2738:707] cocos2d:在 TextureAtlas 中使用 VBO 支持编译:是

2011-03-03 22:10:37.072 MyApp [2738:707] cocos2d:在 CCNode 中使用仿射矩阵变换编译:是

2011-03-03 22:10:37.078 MyApp [2738:707] cocos2d:编译时使用分析支持:否

2011-03-03 22:10:44.375 MyApp[2738:707] cocos2d:帧间隔:1

2011-03-03 22:10:44.420 MyApp[2738:707] cocos2d:表面尺寸:320x480

2011-03-03 22:10:44.654 MyApp [2738:707] 收到内存警告。等级=1

2011-03-03 22:10:44.696 MyApp [2738:707] cocos2d:解除分配

)>

当前语言:自动;目前c++

(gdb)

我试过谷歌搜索,我发现了很多关于这个错误的事情,但我仍然无法解决它。它发生在模拟器和 iPhone 上。在另一个讨论中(对不起,链接丢失)指出这可能与编译器或优化有关,因此我尝试了从 LLVM 切换到 GCC 到 LLVM-GCC 的不同组合,并将优化设置在不同级别,但没有成功。

有人可以指出我正确的方向吗?如果需要更多信息,请告诉我。

谢谢大家,
丹尼尔·萨拉蒂

0 投票
2 回答
4375 浏览

cocos2d-iphone - Box2d 中快速移动的物体有时会相互穿过

我知道 Box2d 世界中快速移动的物体会引起隧道效应并相互穿过。解决方案是将实体定义为子弹。我这样做了,但身体有时仍然相互交叉,特别是如果遇到点不完全朝向中间并且身体在交叉时部分重叠。有什么解决办法吗?

这就是我制作所有身体的方式:

我在 TouchesEnd 中将这个球移动为:

就是简单地计算触球点到球的距离,根据距离找到对球施加的力量,然后将球向触球方向移动。这个球与任何其他进入它的球相撞。

0 投票
2 回答
450 浏览

ios - cocos2d/box2d 麻烦

我刚刚开始为 iOS SDK 使用 cocos2d 和 box2d,并且遇到了一些问题。我让模板工作,并让测试应用程序(单击屏幕并出现一个带有随机字母的框的应用程序)进行编译。

我的第一个问题是我不知道如何获得空白模板。当我开始一个新的应用程序时,有没有一种快速的方法来做到这一点?

我的第二个问题是我无法弄清楚如何简单地更改对象的颜色。我可以这样定义:

但是有没有一种简单的方法可以使某物具有某种颜色?

最后一个问题:这个示例应用程序是否启用了加速计重力?

谢谢!

0 投票
1 回答
6972 浏览

box2d - 如何在 Box2D 中防止球粘在墙上?

我正在尝试使用 box2d。我似乎有一个人们形容为粘墙的问题

我有一个球和一个桨

我正在使用我能找到的所有基本推荐尺度,10m 世界,1m 球

球具有以下特性:

用来移动球的桨是1.5m,它具有以下特性: 形状:

如您所见,所有对象的摩擦力均为 0。

球经常被卡在墙上滚动或完全卡在 90 度角

我在想我可以检测到与墙壁的碰撞并触发 applyLinearImpulse 将球从墙上移开。

0 投票
3 回答
1939 浏览

objective-c - 通过添加两个 CGPoints 的距离来找到 CGPoint

我有两个 CGPoints A 和 B。A 和 B 之间的距离可以用 ccpDistance(A,B) 找到。

有了这些信息,我需要通过将小距离添加到 AB 的距离中来以编程方式找到 X 的 CGPoint(x,y)。AB可以在水平,垂直,对角线或任何方向上制作连接线。目的是延长假想线并在其末端找到一个点。

是否可以在 iOS 的 Box2D 中使用?如果是,那么如何?

0 投票
1 回答
2711 浏览

cocos2d-iphone - 如何在 box2d 中实现更好的时间步长(固定或半固定)?

我想知道是否有人可以帮助我理解在 box2d 中修复我的时间步长。我试图通过实施更好的时间步来改进我刚刚发布的Bounce Z Ballz游戏(我目前使用内置的可变时间步)。我一直在阅读一些有用的信息,但我无法真正理解将类似于内置 cocos2d/box2d 模板的东西变成类似于Glenn Fiedler 的解决方案的东西。

TL;DR(我想将我的 cocos2d/box2d 游戏时间步从内置的可变时间步更改为更一致的时间步)

谢谢,

史蒂夫

0 投票
1 回答
470 浏览

objective-c - 如何根据它在box2d中的位置摧毁一个身体?

我是objective-c的新手。我目前正在使用 cocos2d 和 box2d 开发游戏。让我详细描述一下我的游戏:

在我的游戏中,我有一个主角站在建筑物的顶部。楼下就是这条路。敌人以各种随机速度从道路上经过,从右侧进入屏幕并从左侧退出。我将敌人创建为 b2_dynamicBodies 并使用 SetLinearVelocity() 为每个敌人设置随机速度。主角射击敌人。当弹丸击中敌人时,弹丸和敌人都会被摧毁。我想要做的是那些没有被射击并且移出屏幕的敌人,我想通过检查他们的坐标来摧毁这些敌人一旦他们移出屏幕。我曾尝试使用 world->DestroyBody(body),但它不起作用。请帮我解决这个问题!

ps 我没有将敌人创建为单独的不同物体,但我有一个方法可以创建一个物体并使其移动,然后我在 init 中调用了该方法,并有一个时间间隔。