我需要根据从游戏中心服务器接收到的位置移动 box2d 主体。
收到位置后,我只需使用以下方法更新 body 位置:-
Carbody->SetTransform(b2Vec2(serverposition.x,serverposition.y),0);
但它以不恰当的方式移动 body (例如, body 在屏幕上显示出一些不正常)。同时我的 Sprite 图像没有移动(附在 body 上)。
最佳答案
我为解决定位问题所做的是,我拍摄了一张普通的 Sprite 图像,并在更新中更改了 box2d body 位置的位置。
例如:-
您的车身根据服务器位置移动。它会无形地移动。 你的 b2body 没有用户数据(图片)
carMainBody->SetTransform(b2Vec2(serverposition,carMainBody->GetPosition().y), 0.0f);
这里是你的普通 Sprite 图像。像这样连接你的 Sprite 图像
car->setPosition(ccp(carMainBody->GetPosition().x*PTM_RATIO,carMainBody->GetPosition().y*PTM_RATIO));
这个方法对我很有效。
关于ios - Box2d Body在cocos2d-x中的运动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26309380/
我非常了解HTML5Canvas,我了解使用循环等的基础知识和动画。我正在使用的演示:(单击以制作形状)http://henry.brown.name/experiments/box2d/example-canvas.html我不太熟悉的是Box2D。我正在使用Box2DWeb端口,听说它比Box2D-js更新,我不确定哪个最好。我知道如何初始化“世界”并且我可以在世界中放置对象。然后,我使用Step为世界设置动画-但是到目前为止,为了在屏幕上显示它,我只能使用debugdraw来让它工作,因为它基本上会为你做所有事情。我不想使用调试绘图,而是使用Canvas来绘制,例如一辆汽车,而不
在Update函数内部,如果2个物体发生碰撞,我想将它们移除(或将它们标记为需要移除,并在时间步长结束时移除它们)。我将如何做到这一点?在更新函数中我尝试varbodyA=this.m_fixtureA.m_body;...bodyA.m_world.DestroyBody(bodyA);但是,它们不会被删除。似乎当我试图删除它们时,this.IsLocked()被设置为true。 最佳答案 如果world.IsLocked()函数返回true,世界将不会移除物体。world.IsLocked()将在世界处于一步时返回true。在步
《王牌射手》起因游戏地址游戏介绍游戏开发后续(如果有后续得话~)最后其他游戏起因之前作者借着CocosCreator得3D性能和官方活动,开发了一款点球大战得3D射门游戏。既然3D都来了,那么2D得射门游戏《王牌射手》也是如期而至了!(掌声鼓励)游戏地址体验地址:王牌射手体验源码地址:王牌射手源码游戏介绍以作者本身得能力,游戏得策划当然是需要抄袭,是借鉴呀,借鉴了微信小游戏**《天天足球》**得玩法。简单得介绍下玩法:就是足球会于场中得球员发生碰撞,如果球员碰到了我方球员,球员会90°以内左右旋转,玩家点击屏幕发射足球,在固定得发球数量内,达到进球门槛即判定为过关呀。那么有的朋友就会问了,你这
我有一个SVG文件,它位于Assets文件夹中。我怎样才能获得访问权限并对其进行解析,以便我可以检索有关路径的数据,并在将来写入新路径?有用于处理xml的内部工具吗? 最佳答案 查看cocos2d-2.0-rc0a-x-2.中的测试项目0/测试运行Android.mk并使用eclipse启动apk(在linux中)。有一个管理xml的例子。测试是:UserDefaultTest。不需要知道任何事。如果XML不存在,则值返回-1。如果需要更多帮助,只需发布具体问题即可。 关于xml-在
我在互联网上发现了类似的问题,但没有一个对我有帮助。Code::Blocks工作区和项目文件包括DO生成.a文件,我已经将它们移动到Codeblocks/MinGW/lib,我已经将Box2D文件夹移动到Codeblocks/MinGW/include和HelloWorld.cpp示例仍然给我theseerrors. 最佳答案 看起来您用来构建.a的项目文件缺少一些文件。错误消息中提到的文件是在v2.1.2之后从Box2D中删除的文件,所以我猜您使用的是2.1.2源代码(或附近)以及来自其他来源的项目文件?无论如何,自己设置这些都非
不能改变背景的颜色我有这个简单的类:这是C++文件:#include"HelloWorldScene.h"USING_NS_CC;HelloWorld::HelloWorld(){;}Scene*HelloWorld::createScene(){//'scene'isanautoreleaseobjectautoscene=Scene::create();//'layer'isanautoreleaseobjectautolayer=HelloWorld::create();//addlayerasachildtoscenescene->addChild(layer);//retur
我正在使用cocos2d-x为windows、mac和linux制作游戏我想在我的游戏中使用键盘,但没有官方的键盘实现cocos2d-x3.0alpha。我阅读了很多关于键盘实现的论坛帖子,并且看到了一些自定义的cocos2d-x分支,但我已经修改了我的cocos2d-x,所以我需要将代码放在CCDirector或其他类中。有人可以给我关于如何让它工作的代码吗?(不是我想要的代码可以在上述所有平台上运行的项目)谢谢! 最佳答案 所以我让它工作了我还制作了一个教程,您可以在这里查看:http://www.cocos2d-x.org/f
我有一个基于Cocos2DXNA和MonoGame的游戏项目。我想在CCSprite类中添加一些自定义逻辑,所以我创建了一个继承自CCSprite的类。我添加了一个虚拟自动属性并尝试使用此类,但出于某种原因,作为我的自定义Sprite类实例创建的Sprite未显示在图层上,而作为CCSprite类实例的Sprite完全没问题。代码如下所示:publicclassSprite:CCSprite{publicstringSomeProp{get;set;}}...line1:varmySprite1=newSprite("texture.png");line2:varmySprite1=n
我有一个质量为10的物体,程序的每个循环我都使用简单方法对其施加100的力;Vector2force=newVector2(0,1)*100;bod.ApplyForce(force,bod.GetWorldCenter());它工作得很好,加速等等,但一旦速度达到10(我假设是100/10),它就不会再快了。我无论如何都不是物理学家,但我确实记得body应该不断加速,就像在重力作用下一样。这个速度限制是Box2D做事方式的结果,还是我真的搞砸了?另外,我该怎么做才能修复它。注意:如果我使用ApplyLinearImpulse而不是ApplyForce,我会得到相同的有限速度更新:我很
.jsc解密1.找到apk里面的libcocos2djs.so.用编辑器utf-b模式打开2.搜索CocosGame紧接着的 220404db-d3df-4b就是密码3.使用工具decrypt.exe即可解密下载地址:https://download.csdn.net/download/liutietuo/86511410cocoscreatorscriptdecryptversion1.0D:\Users\Administrator\Desktop\main_bundle\1ss442.jscdecryptsuccessPressEnterExit python解密方法偶尔会出现编译后的js