本文整理汇总了C++中Obstacle::setBRadius方法的典型用法代码示例。如果您正苦于以下问题:C++ Obstacle::setBRadius方法的具体用法?C++ Obstacle::setBRadius怎么用?C++ Obstacle::setBRadius使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Obstacle
的用法示例。
在下文中一共展示了Obstacle::setBRadius方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: initEntites
void HelloWorldScene::initEntites()
{
// Create Vehicles
int numOfVehicles = Prm.getValueAsInt("NumOfVehicles");
for(int i = 0 ; i < numOfVehicles ; ++ i)
{
Vehicle* vehicle = Vehicle::create("Vehicle.png");
vehicle->setGameWorld(this);
vehicle->setBRadius(15.0f);
vehicle->setPosition(Vec2(random(0.0f, 600.0f), random(0.0f, 600.0f)));
vehicle->setTag(getNextValidID());
this->setBehaviorAsNormalVehicle(vehicle);
_gameView->addChild(vehicle);
_vehicles.pushBack(vehicle);
// for DetailView Vehicle
Vehicle* detailViewVehicle = Vehicle::create("Vehicle.png");
_detailView->addChild(detailViewVehicle);
_detailViewVehicles.pushBack(detailViewVehicle);
}
_pursuer = Vehicle::create("pursuer.png");
_pursuer->setGameWorld(this);
_pursuer->setBRadius(15.0f);
_pursuer->setMaxSpeed(100.0f);
_pursuer->setPosition(Vec2(random(0.0f, 600.0f), random(0.0f, 600.0f)));
_pursuer->setTag(getNextValidID());
_pursuer->getSteering()->enableBehavior(BehaviorType::kWander);
_pursuer->getSteering()->enableBehavior(BehaviorType::kPursuit);
_pursuer->getSteering()->enableBehavior(BehaviorType::kObstacleAvoidance);
_gameView->addChild(_pursuer);
_vehicles.pushBack(_pursuer);
Vehicle* detailViewPursuer = Vehicle::create("pursuer.png");
_detailView->addChild(detailViewPursuer);
_detailViewVehicles.pushBack(detailViewPursuer);
// initialize selected detailView vehicle and worldView vehicle.
_selectedVehicleDetail = Vehicle::create("Vehicle.png");
_selectedVehicleDetail->setVisible(false);
_detailView->addChild(_selectedVehicleDetail);
this->setBehaviorAsSelectedVehicle(_vehicles.at(0));
// Create Obstacles;
int numOfObstacles = Prm.getValueAsInt("NumOfObstacles");
for(int i = 0 ; i < numOfObstacles ; ++ i)
{
int numOfAllowableTrys = 2000;
while(numOfAllowableTrys--)
{
double radius = random(Prm.getValueAsFloat("MinObstacleRadius"), Prm.getValueAsFloat("MaxObstacleRadius"));
const int border = 10;
float x = random(radius + border, 600.0f - radius - border);
float y = random(radius + border, 600.0f - radius - border);
Obstacle* ob = Obstacle::create();
ob->setPosition(Vec2(x, y));
ob->setBRadius(radius);
const int minGapBetweenObstacles = 20;
if(!overlapped(ob, _obstacles, minGapBetweenObstacles))
{
DrawNode* node = DrawNode::create();
node->drawCircle(Vec2::ZERO, ob->getBRadius(), 360.0f, 100, false, 1.0f, 1.0f, Color4F::BLUE);
ob->addChild(node);
_obstacles.pushBack(ob);
ob->setTag(getNextValidID());
_gameView->addChild(ob);
// for DetailView Obstacles
Obstacle* detailViewOb = Obstacle::create();
detailViewOb->setPosition(Vec2(x, y));
detailViewOb->setBRadius(radius);
DrawNode* avoidanceNode = DrawNode::create();
avoidanceNode->drawCircle(Vec2::ZERO, detailViewOb->getBRadius(), 360.0f, 100, false, 1.0f, 1.0f, Color4F::BLUE);
detailViewOb->addChild(avoidanceNode);
_detailViewObstacles.pushBack(detailViewOb);
_detailView->addChild(detailViewOb);
break;
}
}
}
// Create Walls
const int numOfVertex = Prm.getValueAsInt("NumOfWallVertice");
std::vector<Vec2> walls
{
cocos2d::Vec2(20,20),
cocos2d::Vec2(580,20),
cocos2d::Vec2(580,580),
cocos2d::Vec2(20,580)
};
//.........这里部分代码省略.........