本文整理汇总了C++中Obstacle::setPosition方法的典型用法代码示例。如果您正苦于以下问题:C++ Obstacle::setPosition方法的具体用法?C++ Obstacle::setPosition怎么用?C++ Obstacle::setPosition使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Obstacle
的用法示例。
在下文中一共展示了Obstacle::setPosition方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: spawnObstacle
void GameStateUpdater::spawnObstacle(unsigned int obstacleGid, Coordinates coords, unsigned int spawnerId)
{
Obstacle *obstacle = Obstacle::getInstanceByGid(obstacleGid);
obstacle->setId(coords.y*_state->getWidth() + coords.x);
obstacle->setPosition(coords.x*TILE_WIDTH, coords.y*TILE_HEIGHT);
obstacle->setSize(TILE_WIDTH, TILE_HEIGHT);
_state->getObstacleLayer()->addObject(obstacle);
_state->getObstacleLayer()->updateGrid();
this->logObstacleSpawn(obstacleGid, obstacle, spawnerId);
}
示例2: createObstacle
void MainScene::createObstacle( float dt )
{
Obstacle* obstacle = dynamic_cast<Obstacle*>(CSLoader::createNode("Obstacle.csb"));
this->obstacles.pushBack( obstacle );
this->back->addChild( obstacle );
float obstacleY = ( OBSTACLE_MAX_Y - OBSTACLE_MIN_Y ) * CCRANDOM_0_1() + OBSTACLE_MIN_Y;
obstacle->setPosition( Vec2( OBSTACLE_INIT_X, obstacleY ) );
if( this->obstacles.size() > OBSTACLE_LIMIT )
{
this->obstacles.front()->removeFromParent();
this->obstacles.erase(this->obstacles.begin());
}
}
示例3: Object_movement
Obstacle Object_movement(Obstacle obst, vec3 obj_pos, float force, vec3 direction)
{
float moved_X = obst.getPostion().x + direction.x * force * 0.01f;
float moved_Z = obst.getPostion().z + direction.z * force * 0.01f;
obst.setPosition(vec3(moved_X, ypos, moved_Z));
float force2 = force;
force2 -= 0.01f;
force2 = clamp(force2, 0.0f, 10.0f);
obst.setForce(force2);
if (force > 0.0f)
{
cout << force << endl;
cout << "direction " << direction.x << ", " << direction.z << endl;
cout << "position " << obj_pos.x << ", " << obj_pos.z << endl;
}
return obst;
}
示例4: createMap
void World::createMap(ObstacleContainer* obstacleContainer, TargetContainer* targetContainer)
{
obstacleContainer->add();
Obstacle* wall1 = obstacleContainer->getLast();
wall1->setLHW(1060.0f, 11.0f, 30.0f);
wall1->setPosition(500.0f, 5.0f, -1015.0f);
wall1->setColor(1.0f, 1.0f, 1.0f);
obstacleContainer->add();
Obstacle* wall2 = obstacleContainer->getLast();
wall2->setLHW(1060.0f, 11.0f, 30.0f);
wall2->setPosition(500.0f, 5.0f, 15.0f);
wall2->setColor(1.0f, 1.0f, 1.0f);
obstacleContainer->add();
Obstacle* wall3 = obstacleContainer->getLast();
wall3->setLHW(30.0f, 11.0f, 1000.0f);
wall3->setPosition(-15.0f, 5.0f, -500.0f);
wall3->setColor(1.0f, 1.0f, 1.0f);
obstacleContainer->add();
Obstacle* wall4 = obstacleContainer->getLast();
wall4->setLHW(30.0f, 11.0f, 1000.0f);
wall4->setPosition(1015.0f, 5.0f, -500.0f);
wall4->setColor(1.0f, 1.0f, 1.0f);
if(level == LEVEL_CHOICE_MAZE)
{
obstacleContainer->add();
Obstacle* o = obstacleContainer->getLast();
o->setLHW(203.0f, 101.0f, 304.0f);
o->setPosition(200.0f, 50.0f, -750.0f);
o->setColor(1.0f, 0.0f, 0.0f);
obstacleContainer->add();
o = obstacleContainer->getLast();
o->setLHW(350.0f, 101.0f, 150.0f);
o->setPosition(700.0f, 50.0f, -750.0f);
o->setColor(1.0f, 0.0f, 0.0f);
obstacleContainer->add();
o = obstacleContainer->getLast();
o->setLHW(425.0f, 101.0f, 200.0f);
o->setPosition(302.0f, 50.0f, -401.0f);
o->setColor(1.0f, 0.0f, 0.0f);
obstacleContainer->add();
o = obstacleContainer->getLast();
o->setLHW(310.0f, 101.0f, 250.0f);
o->setPosition(774.0f, 50.0f, -450.0f);
o->setColor(1.0f, 0.0f, 0.0f);
obstacleContainer->add();
o = obstacleContainer->getLast();
o->setLHW(400.0f, 101.0f, 100.0f);
o->setPosition(501.0f, 50.0f, -174.0f);
o->setColor(1.0f, 0.0f, 0.0f);
}
else if(level == LEVEL_CHOICE_BLOCK_FORT)
{
float diameter = 200.0f;
obstacleContainer->add();
Obstacle* o = obstacleContainer->getLast();
o->setLHW(diameter, diameter-1.0f, diameter);
o->setPosition(250.0f, 95.0f, -250.0f);
o->setColor(1.0f, 0.0f, 0.0f);
obstacleContainer->add();
o = obstacleContainer->getLast();
o->setLHW(diameter, diameter-1.0f, diameter);
o->setPosition(751.0f, 95.0f, -250.0f);
o->setColor(1.0f, 0.0f, 0.0f);
obstacleContainer->add();
o = obstacleContainer->getLast();
o->setLHW(diameter, diameter-1.0f, diameter);
o->setPosition(250.0f, 95.0f, -750.0f);
o->setColor(1.0f, 0.0f, 0.0f);
obstacleContainer->add();
//.........这里部分代码省略.........
示例5: 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)
};
//.........这里部分代码省略.........