位置: 编程技术 - 正文
推荐整理分享Cocos2d-x3.3 Physics物理引擎模块解决了刚体穿透问题,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
之前在写一个个人小项目的时候有闻到过大海老师这个physics物理引擎的刚体穿透问题,然后大海老师就给我推荐了他自己写的这篇文博,很好很强大。
下面是大海老师的博客:
看代码:
void PhysicsFixedUpdate::onEnter()
{
PhysicsDemo::onEnter();
_scene->getPhysicsWorld()->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);
_scene->getPhysicsWorld()->setGravity(Point::ZERO);
// wall
auto wall = Node::create();
wall->setPhysicsBody(PhysicsBody::createEdgeBox(VisibleRect::getVisibleRect().size, PhysicsMaterial(0.1f, 1,0.0f)));
wall->setPosition(VisibleRect::center());
this->addChild(wall);
addBall();
scheduleOnce(schedule_selector(PhysicsFixedUpdate::updateStart), 2);
}
void PhysicsFixedUpdate::addBall()
{
auto ball = Sprite::create("Images/ball.png");
ball->setPosition(, );
ball->setPhysicsBody(PhysicsBody::createCircle(ball->getContentSize().width/2, PhysicsMaterial(0.1f, 1,0.0f)));
ball->getPhysicsBody()->setTag(DRAG_BODYS_TAG);
ball->getPhysicsBody()->setVelocity(Point(, ));
this->addChild(ball);
}
void PhysicsFixedUpdate::updateStart(float delta)
{
addBall();
//重点在这里
_scene->getPhysicsWorld()->setAutoStep(false);
scheduleUpdate();
}
void PhysicsFixedUpdate::update(float delta)
{
// use fixed time and calculate 3 times per frame makes physics simulate more precisely.
//这里表示先走3步瞧瞧 如果fps是1/ 三个setp就是1/
for (int i = 0; i < 3; i)
{
_scene->getPhysicsWorld()->step(1/.0f);
}
}
cocos2d中分步实现飞机大战----场景跳转 首先,作为一个完整的游戏项目,要有满足游戏要求的界面,并实现之间的跳转,不能只有一个游戏主界面。下面以主场景界面为例:.h文件#includecocos2d
cocos2d的安装与简介 1.安装cocos2d-x3.2进入终端输入cd~/Desktop再输入cdcocos2d-x-3.2进入cocos3.2源码目录2。执行sudo./setup.py3.在提示输入目录里面输入android_sdk_rootndk_rootant_root安装完
如何在COCOS2D中绘制3d椭圆柱? 将以下代码添加到CCActionGrid3D.hclassCC_DLLCCEllipse3D:publicCCGrid3DAction{public:/**initializesanactionwithduration,gridsize,wavesandamplitude*/boolinitWithDuration(floatduration,constCCSize
标签: Cocos2d-x3.3 Physics物理引擎模块解决了刚体穿透问题
本文链接地址:https://www.jiuchutong.com/biancheng/369109.html 转载请保留说明!友情链接: 武汉网站建设