mirror of
https://github.com/zoriya/Bomberman.git
synced 2026-06-03 10:26:29 +00:00
add zoom on players
This commit is contained in:
@@ -57,6 +57,7 @@ namespace BBM
|
||||
.addComponent<BumperTimerComponent>()
|
||||
//.addComponent<ShaderComponentModel>("assets/shaders/glsl330/predator.fs")
|
||||
.addComponent<TagComponent<BlowablePass>>()
|
||||
.addComponent<TagComponent<Player>>()
|
||||
.addComponent<AnimationsComponent>("assets/player/player.iqm", 3)
|
||||
.addComponent<CollisionComponent>(BBM::Vector3f{0.25, 0, 0.25}, BBM::Vector3f{.75, 2, .75})
|
||||
.addComponent<MovableComponent>()
|
||||
|
||||
@@ -89,33 +89,37 @@ namespace BBM
|
||||
Vector3f newCameraPos = Vector3f(-1, -1, -1);
|
||||
std::vector<Vector3f> playerPos;
|
||||
float maxDist = 0;
|
||||
float lowerXDist = 0;
|
||||
float lowerZDist = 0;
|
||||
|
||||
for (auto &[entity, pos, _] : this->_wal.getScene()->view<PositionComponent, TagComponent<Player>>()) {
|
||||
std::cout << "Player pos" << pos.position << std::endl;
|
||||
for (auto &[entity, pos, _] : this->_wal.getScene()->view<PositionComponent, TagComponent<Player>>())
|
||||
playerPos.emplace_back(pos.position);
|
||||
}
|
||||
for (int i = 0; i < playerPos.size(); i++) {
|
||||
if (i == 0) {
|
||||
newCameraPos = playerPos[i];
|
||||
std::cout << "First Camera Pos" << newCameraPos << std::endl;
|
||||
} else {
|
||||
std::cout << "Other Player pos" << playerPos[i] << std::endl;
|
||||
if (i == 0)
|
||||
newCameraPos = playerPos[i].abs();
|
||||
else
|
||||
newCameraPos = (newCameraPos + playerPos[i]) / 2;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < playerPos.size(); i++)
|
||||
for (int j = 0; j < playerPos.size(); j++) {
|
||||
if (maxDist < playerPos[i].distance(playerPos[j]))
|
||||
maxDist = playerPos[i].distance(playerPos[j]);
|
||||
if (lowerXDist < std::abs((playerPos[i].x - playerPos[j].x)))
|
||||
lowerXDist = std::abs((playerPos[i].x - playerPos[j].x));
|
||||
if (lowerZDist < std::abs((playerPos[i].z - playerPos[j].z)))
|
||||
lowerZDist = std::abs((playerPos[i].z - playerPos[j].z));
|
||||
}
|
||||
maxDist += (lowerXDist + lowerZDist) / 2;
|
||||
if (maxDist < 14)
|
||||
maxDist = 14;
|
||||
if (maxDist > 25)
|
||||
maxDist = 25;
|
||||
cam.target += (newCameraPos.abs() - pos.position.abs()) / 5;
|
||||
newCameraPos.y = maxDist;
|
||||
newCameraPos.z -= 1;
|
||||
mov.addForce((newCameraPos - pos.position.abs()) / 10);
|
||||
cam.target = newCameraPos;
|
||||
_camera.setPosition(pos.position);
|
||||
pos.position += (newCameraPos.abs() - pos.position.abs()) / 5;
|
||||
_camera.setTarget(cam.target);
|
||||
_camera.setPosition(pos.position);
|
||||
}
|
||||
|
||||
void RenderSystem::setDebug(bool debug)
|
||||
|
||||
Reference in New Issue
Block a user