auto material = PHYSICSBODY_MATERIAL_DEFAULT;material.density = 値; // 密度次に、PhysicsMaterialの設定を行います。この構造体には、密度、反発係数、摩擦係数といった値が用意されています。これらに値を代入していきます。
material.restitution = 値; // 反発係数
material.friction = 値; // 摩擦係数
auto 変数 = PhysicsBody::createBox(《Size》,《PhysicsMaterial》);最後に、PhysicsMaterialを指定してPhysicsBodyを作成します。createBoxやcreateCircleでインスタンスを作成する際、第2引数にPhysicsMaterialを指定することで、これに用意された設定値を使って剛体が作成されるようになります。
auto 変数 = PhysicsBody::createCircle(《float》,《PhysicsMaterial》);
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
#pragma execution_character_set("utf-8")
#include "HelloWorldScene.h"
USING_NS_CC;
Scene* HelloWorld::createScene()
{
auto scene = Scene::createWithPhysics();
PhysicsWorld* world = scene->getPhysicsWorld();
world->setGravity(Vec2(0, -500));
world->setSpeed(1.0f);
world->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);
auto layer = HelloWorld::create();
scene->addChild(layer);
return scene;
}
bool HelloWorld::init()
{
if (!Layer::init())
{
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
Director::getInstance()->setDisplayStats(false);
auto material = PHYSICSBODY_MATERIAL_DEFAULT;
material.density = 1.0f;
material.restitution = 0.1f;
material.friction = 0.5f;
sprite1 = Sprite::create("base.png");
sprite1->setPosition(origin.x + visibleSize.width / 2, origin.y + 100);
this->addChild(sprite1, 1);
auto baseBody = PhysicsBody::createBox(sprite1->getContentSize(), material);
baseBody->setDynamic(false);
baseBody->setRotationEnable(false);
sprite1->setPhysicsBody(baseBody);
sprite1->setScaleX(2.0);
sprite1->setRotation(10.0f);
sprite2 = Sprite::create("character.png");
sprite2->setPosition(origin.x + visibleSize.width / 2, origin.y + 300);
this->addChild(sprite2, 1);
auto charBody = PhysicsBody::createCircle(sprite2->boundingBox().size.width / 2, material);
charBody->setMass(10.0f);
charBody->setDynamic(true);
charBody->setRotationEnable(true);
sprite2->setPhysicsBody(charBody);
return true;
}
| << 前へ | 次へ >> |