本文整理汇总了C++中Platform::XtoY方法的典型用法代码示例。如果您正苦于以下问题:C++ Platform::XtoY方法的具体用法?C++ Platform::XtoY怎么用?C++ Platform::XtoY使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Platform
的用法示例。
在下文中一共展示了Platform::XtoY方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FollowGround
bool Bipedal::FollowGround(Object & object, World & world, Sint8 velocity){
if(velocity == 0 || currentplatformid == 0){
return true;
}
object.x += velocity;
Platform * currentplatform = world.map.platformids[currentplatformid];
Platform * oldplatform = currentplatform;
object.y = currentplatform->XtoY(object.x);
if(object.x > currentplatform->x2){
velocity = object.x - currentplatform->x2;
object.x = currentplatform->x2;
currentplatform = currentplatform->adjacentr;
}else
if(object.x < currentplatform->x1){
velocity = -(Sint8)(currentplatform->x1 - object.x);
object.x = currentplatform->x1;
currentplatform = currentplatform->adjacentl;
}else{
return true;
}
if(currentplatform){
currentplatformid = currentplatform->id;
return FollowGround(object, world, velocity);
}else{
Platform * collided = world.map.TestAABB(object.x, object.y - height, object.x, object.y, Platform::RECTANGLE | Platform::STAIRSUP | Platform::STAIRSDOWN, oldplatform);
if(collided){
return true;
}
return false;
}
return true;
}
示例2: FindCurrentPlatform
bool Bipedal::FindCurrentPlatform(Object & object, World & world){
if(currentplatformid){
return true;
}
int xv2 = 0;
int yv2 = 1;
Platform * platform = world.map.TestIncr(object.x, object.y - height, object.x, object.y, &xv2, &yv2, Platform::RECTANGLE | Platform::STAIRSUP | Platform::STAIRSDOWN);
if(platform){
currentplatformid = platform->id;
object.y = platform->XtoY(object.x);
return true;
}
return false;
}