Maintenant je comprend les singes au début de 2001 A Space Odyssey
This commit is contained in:
parent
e011e2f1fc
commit
86536fbb99
@ -935,8 +935,10 @@ void Engine::DrawHud(float elapsedTime, BlockType bloc) {
|
||||
int timer = GetCountdown(elapsedTime);
|
||||
for (int i = 1; i < WORLD_SIZE_X; i++)
|
||||
{
|
||||
if (timer <= COUNTDOWN - m_timerReductionChunk * i)
|
||||
if (timer <= COUNTDOWN - m_timerReductionChunk * i) {
|
||||
m_world.RemoveChunk(m_nbReductionChunk * i);
|
||||
m_renderer.RemoveChunk(m_nbReductionChunk * i);
|
||||
}
|
||||
}
|
||||
if (m_keyK) {
|
||||
SystemNotification(m_messageNotification);
|
||||
@ -1081,7 +1083,7 @@ void Engine::Render(float elapsedTime) {
|
||||
|
||||
|
||||
|
||||
m_remotePlayer.Render(m_textureAtlas, m_shader01, elapsedTime);
|
||||
|
||||
//m_remotePlayer.ApplyTransformation(all);
|
||||
|
||||
if (m_mouseWU) bloc++;
|
||||
@ -1138,15 +1140,15 @@ void Engine::Render(float elapsedTime) {
|
||||
}
|
||||
}
|
||||
|
||||
//m_renderer.RenderWorld(&m_world, m_renderCount, m_player.GetPosition(), m_player.GetDirection(), all, m_shader01, m_textureAtlas);
|
||||
if (m_isSkybox) m_renderer.RenderWorld(&m_world, m_renderCount, m_player.GetPosition(), m_player.GetDirection(), all, m_shader01, m_textureAtlas);
|
||||
m_world.Update(m_bullets, m_player.GetPosition(), m_blockinfo);
|
||||
m_renderer.UpdateMesh(&m_world, m_player.GetPosition(), m_blockinfo);
|
||||
|
||||
|
||||
m_remotePlayer.Render(m_textureAtlas, m_shader01, elapsedTime);
|
||||
if (m_isSkybox) m_skybox.Render(skybox);
|
||||
|
||||
DrawHud(elapsedTime, bloc);
|
||||
DisplayPovGun();
|
||||
if (m_isSkybox) DrawHud(elapsedTime, bloc);
|
||||
if (m_isSkybox) DisplayPovGun();
|
||||
ProcessNotificationQueue();
|
||||
if (m_damage)
|
||||
{
|
||||
|
@ -15,7 +15,7 @@ private:
|
||||
Chunk* m_chunk; // NE PAS DÉTRUIRE ICI.
|
||||
|
||||
void AddBlockToMesh(VertexBuffer::VertexData* vd, int& count, BlockType bt, int x, int y, int z, float u, float v, float s, World* world);
|
||||
|
||||
void RemoveChunk(int nbReduit);
|
||||
public:
|
||||
Mesh(Chunk* chunk);
|
||||
~Mesh();
|
||||
|
@ -87,15 +87,20 @@ void RemotePlayer::Feed(const netprot::Output out) {
|
||||
|
||||
void RemotePlayer::Render(TextureAtlas& atlas, Shader& shader, float elapsedTime)
|
||||
{
|
||||
shader.Use();
|
||||
//m_texture_front.Bind();
|
||||
|
||||
m_texture_front.Bind();
|
||||
|
||||
float u, v, w, h;
|
||||
atlas.Bind();
|
||||
atlas.TextureIndexToCoord(0, u, v, w, h);
|
||||
glBegin(GL_QUADS);
|
||||
glTexCoord2f(0, 0); glVertex2f(0, 500);
|
||||
glTexCoord2f(1, 0); glVertex2f(500, 500);
|
||||
glTexCoord2f(1, 1); glVertex2f(500, 0);
|
||||
glTexCoord2f(0, 1); glVertex2f(0, 0);
|
||||
glTexCoord2f(u, v); glVertex3f(0, 50., 0);
|
||||
glTexCoord2f(u+w, v); glVertex3f(50., 50., 0);
|
||||
glTexCoord2f(u+w, v+h); glVertex3f(50., 0, 0);
|
||||
glTexCoord2f(u, v+h); glVertex3f(0, 0, 0);
|
||||
glEnd();
|
||||
|
||||
shader.Disable();
|
||||
}
|
||||
|
||||
bool RemotePlayer::LoadTexture(Texture& texture, const std::string& filename, bool useMipmaps, bool stopOnError)
|
||||
|
@ -7,6 +7,32 @@ Renderer::Renderer() {
|
||||
Renderer::~Renderer() {
|
||||
}
|
||||
|
||||
void Renderer::RemoveChunk(int nbReduit)
|
||||
{
|
||||
for (int x = 0; x < WORLD_SIZE_X; ++x)
|
||||
for (int y = 0; y < WORLD_SIZE_Y; ++y)
|
||||
{
|
||||
Mesh* chk = nullptr;
|
||||
if (x < nbReduit)
|
||||
chk = m_meshes.Remove(x, y);
|
||||
if (y < nbReduit)
|
||||
chk = m_meshes.Remove(x, y);
|
||||
if (y > WORLD_SIZE_Y - nbReduit)
|
||||
chk = m_meshes.Remove(x, y);
|
||||
if (x > WORLD_SIZE_X - nbReduit)
|
||||
chk = m_meshes.Remove(x, y);
|
||||
|
||||
// TODO: MakeDirty() les voisins pour qu'ils se redessinent.
|
||||
|
||||
if (!chk)
|
||||
continue;
|
||||
|
||||
delete chk;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void Renderer::RenderWorld(World* origin, int& rendercount, const Vector3f& player_pos, const Vector3f& player_dir, Transformation& world, Shader& shader, TextureAtlas& atlas) const {
|
||||
rendercount = 0;
|
||||
Vector3f angle;
|
||||
|
@ -21,6 +21,8 @@ public:
|
||||
Renderer();
|
||||
~Renderer();
|
||||
|
||||
void RemoveChunk(int nbReduit);
|
||||
|
||||
void UpdateMesh(World* origin, const Vector3f& player, BlockInfo* blockinfo[BTYPE_LAST]);
|
||||
|
||||
void RenderWorld(World* origin, int& rendercount, const Vector3f& player_pos, const Vector3f& player_dir, Transformation& world, Shader& shader, TextureAtlas& atlas) const;
|
||||
|
Loading…
Reference in New Issue
Block a user