本文整理汇总了C++中Portal::placeOnWall方法的典型用法代码示例。如果您正苦于以下问题:C++ Portal::placeOnWall方法的具体用法?C++ Portal::placeOnWall怎么用?C++ Portal::placeOnWall使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Portal
的用法示例。
在下文中一共展示了Portal::placeOnWall方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: shootPortal
void World::shootPortal(int button) {
//Shooting
Vector3f cameraDir = Math::toDirection(scene->camera.rotation);
//Find the closest intersection
Entity closestWall;
float intersection = INT_MAX;
for (unsigned int i = 0; i < scene->walls.size(); i++) {
Entity wall = scene->walls[i];
Ray bullet = Ray(scene->camera.position, cameraDir);
float tNear, tFar;
if (bullet.collides(wall, &tNear, &tFar)) {
if (wall.texture.handle == TextureLoader::getTexture("wall.png").handle) {
if (tNear < intersection) {
closestWall = wall;
intersection = tNear;
}
}
}
}
BoxCollider wall(closestWall.position, closestWall.scale);
Vector3f ipos = scene->camera.position + (cameraDir * intersection);
Portal portal;
portal.placeOnWall(wall, ipos);
if (button == 1) {
portal.texture = TextureLoader::getTexture("blueportal.png");
scene->bluePortal = portal;
} else {
portal.texture = TextureLoader::getTexture("orangeportal.png");
scene->orangePortal = portal;
}
}