所以我对花栗鼠有些问题, 请注意我是新手,我只是学习了很多关于花栗鼠的想法,如果你有任何好的书籍,资源或网站,我可以用来学习花栗鼠,这将是很棒的(请只有当前的指南,我已经走了很多带有过时命令的旧指南并且已经非常模糊了。)
但是在我的主要问题上,我使用的是Chipmunk,并使用了我在在线网络资源上找到的“花栗鼠教程”代码。我试图将图像(UIImageView * ball;)附加到ballBody->data
部分,并尝试更新图像但似乎无法弄明白,代码可以工作,但图像只移动到ballBodys的初始位置
以下是我正在使用的代码示例,请告诉我是否应该提供更多信息!
这是我调用更新花栗鼠帧的计时器,当我调用“cpSpaceHashEach(space-> activeShapes,& updateShape,nil)”时;代码的一部分我得到的错误是在struct cpspace中调用了“活动形状”中没有对象,而且TCPSpaceHash有一个隐式声明
// Called at each "frame" of the simulation
- (void)tick:(NSTimer *)timer {
// Tell Chipmuck to take another "step" in the simulation
cpSpaceStep(space, 1.0f/60.0f);
// Call our function for each shape
cpSpaceHashEach(space->activeShapes, &updateShape, nil);
}
答案 0 :(得分:1)
我认为您正在查看5.x的教程并使用Chipmunk 6.x。
“cpSpace.activeShapes”被记录为5.x中的私有成员,现在已经消失。 cpSpaceHashEach()没有记录。不建议使用您提供的代码段迭代形状,因为它会导致很多未定义的行为,但无论如何每个人都做了。
在6.x中你应该这样做,因为它不使用任何私有,未记录或未定义的功能:
cpSpaceEachShape(space, updateShape, NULL);
那就是说,我仍然不建议以这种方式迭代形状。你应该自己保留一份列表,这样你就不需要跳过静态形状等了。
你应该看一下Chipmunk下载页面上的Simple Objective-Chipmunk Tutorial或Snap示例项目:http://chipmunk-physics.net/downloads.php