Add joke player "model"

Turns on backface culling too.
This commit is contained in:
Pedro Gimeno 2020-02-27 23:15:06 +01:00
parent f39229fc30
commit 03732e7566

View File

@ -25,47 +25,223 @@
* ===================================================================================== * =====================================================================================
*/ */
#include <gk/gl/Vertex.hpp> #include <gk/gl/Vertex.hpp>
#include <gk/gl/GLCheck.hpp>
#include "PlayerBox.hpp" #include "PlayerBox.hpp"
constexpr int NUM_QUADS = 6; constexpr int NUM_QUADS = 34;
static const float modelCoords[NUM_QUADS * 4 * 3] = { static const float modelCoords[NUM_QUADS * 4 * 3] = {
// LEFT LEG
// West // West
-0.3125f, -0.3125f, 0.f, -0.15f, -0.15f - 0.18f, 0.f,
-0.3125f, -0.3125f, 1.75f, -0.15f, -0.15f - 0.18f, 0.575f,
-0.3125f, 0.3125f, 1.75f, -0.15f, 0.15f - 0.18f, 0.575f,
-0.3125f, 0.3125f, 0.f, -0.15f, 0.15f - 0.18f, 0.f,
// East // East
0.3125f, -0.3125f, 1.75f, 0.15f, -0.15f - 0.18f, 0.575f,
0.3125f, -0.3125f, 0.f, 0.15f, -0.15f - 0.18f, 0.f,
0.3125f, 0.3125f, 0.f, 0.15f, 0.15f - 0.18f, 0.f,
0.3125f, 0.3125f, 1.75f, 0.15f, 0.15f - 0.18f, 0.575f,
// South // South
-0.3125f, -0.3125f, 0.f, -0.15f, -0.15f - 0.18f, 0.f,
0.3125f, -0.3125f, 0.f, 0.15f, -0.15f - 0.18f, 0.f,
0.3125f, -0.3125f, 1.75f, 0.15f, -0.15f - 0.18f, 0.575f,
-0.3125f, -0.3125f, 1.75f, -0.15f, -0.15f - 0.18f, 0.575f,
// North // North
-0.3125f, 0.3125f, 1.75f, -0.15f, 0.15f - 0.18f, 0.575f,
0.3125f, 0.3125f, 1.75f, 0.15f, 0.15f - 0.18f, 0.575f,
0.3125f, 0.3125f, 0.f, 0.15f, 0.15f - 0.18f, 0.f,
-0.3125f, 0.3125f, 0.f, -0.15f, 0.15f - 0.18f, 0.f,
// Bottom // Bottom
0.3125f, -0.3125f, 0.f, 0.15f, -0.15f - 0.18f, 0.f,
-0.3125f, -0.3125f, 0.f, -0.15f, -0.15f - 0.18f, 0.f,
-0.3125f, 0.3125f, 0.f, -0.15f, 0.15f - 0.18f, 0.f,
0.3125f, 0.3125f, 0.f, 0.15f, 0.15f - 0.18f, 0.f,
// Top // RIGHT LEG
-0.3125f, -0.3125f, 1.75f, // West
0.3125f, -0.3125f, 1.75f, -0.15f, -0.15f + 0.18f, 0.f,
0.3125f, 0.3125f, 1.75f, -0.15f, -0.15f + 0.18f, 0.575f,
-0.3125f, 0.3125f, 1.75f, -0.15f, 0.15f + 0.18f, 0.575f,
-0.15f, 0.15f + 0.18f, 0.f,
// East
0.15f, -0.15f + 0.18f, 0.575f,
0.15f, -0.15f + 0.18f, 0.f,
0.15f, 0.15f + 0.18f, 0.f,
0.15f, 0.15f + 0.18f, 0.575f,
// South
-0.15f, -0.15f + 0.18f, 0.f,
0.15f, -0.15f + 0.18f, 0.f,
0.15f, -0.15f + 0.18f, 0.575f,
-0.15f, -0.15f + 0.18f, 0.575f,
// North
-0.15f, 0.15f + 0.18f, 0.575f,
0.15f, 0.15f + 0.18f, 0.575f,
0.15f, 0.15f + 0.18f, 0.f,
-0.15f, 0.15f + 0.18f, 0.f,
// Bottom
0.15f, -0.15f + 0.18f, 0.f,
-0.15f, -0.15f + 0.18f, 0.f,
-0.15f, 0.15f + 0.18f, 0.f,
0.15f, 0.15f + 0.18f, 0.f,
// BODY
// West
-0.15f, -0.33f, 0.575f,
-0.15f, -0.33f, 1.35f,
-0.15f, 0.33f, 1.35f,
-0.15f, 0.33f, 0.575f,
// East
0.15f, -0.33f, 1.35f,
0.15f, -0.33f, 0.575f,
0.15f, 0.33f, 0.575f,
0.15f, 0.33f, 1.35f,
// South
-0.15f, -0.33f, 0.575f,
0.15f, -0.33f, 0.575f,
0.15f, -0.33f, 1.35f,
-0.15f, -0.33f, 1.35f,
// North
-0.15f, 0.33f, 1.35f,
0.15f, 0.33f, 1.35f,
0.15f, 0.33f, 0.575f,
-0.15f, 0.33f, 0.575f,
// Bottom
0.15f, -0.33f, 0.575f,
-0.15f, -0.33f, 0.575f,
-0.15f, 0.33f, 0.575f,
0.15f, 0.33f, 0.575f,
// Top
-0.15f, -0.33f, 1.35f,
0.15f, -0.33f, 1.35f,
0.15f, 0.33f, 1.35f,
-0.15f, 0.33f, 1.35f,
// LEFT ARM
// West
-0.15f, -0.15f - 0.48f, 0.675f,
-0.15f, -0.15f - 0.48f, 1.35f,
-0.15f, 0.15f - 0.48f, 1.35f,
-0.15f, 0.15f - 0.48f, 0.675f,
// East
0.15f, -0.15f - 0.48f, 1.35f,
0.15f, -0.15f - 0.48f, 0.675f,
0.15f, 0.15f - 0.48f, 0.675f,
0.15f, 0.15f - 0.48f, 1.35f,
// South
-0.15f, -0.15f - 0.48f, 0.675f,
0.15f, -0.15f - 0.48f, 0.675f,
0.15f, -0.15f - 0.48f, 1.35f,
-0.15f, -0.15f - 0.48f, 1.35f,
// North
-0.15f, 0.15f - 0.48f, 1.35f,
0.15f, 0.15f - 0.48f, 1.35f,
0.15f, 0.15f - 0.48f, 0.675f,
-0.15f, 0.15f - 0.48f, 0.675f,
// Bottom
0.15f, -0.15f - 0.48f, 0.675f,
-0.15f, -0.15f - 0.48f, 0.675f,
-0.15f, 0.15f - 0.48f, 0.675f,
0.15f, 0.15f - 0.48f, 0.675f,
// Top
-0.15f, -0.15f - 0.48f, 1.35f,
0.15f, -0.15f - 0.48f, 1.35f,
0.15f, 0.15f - 0.48f, 1.35f,
-0.15f, 0.15f - 0.48f, 1.35f,
// RIGHT ARM
// West
-0.15f, -0.15f + 0.48f, 0.675f,
-0.15f, -0.15f + 0.48f, 1.35f,
-0.15f, 0.15f + 0.48f, 1.35f,
-0.15f, 0.15f + 0.48f, 0.675f,
// East
0.15f, -0.15f + 0.48f, 1.35f,
0.15f, -0.15f + 0.48f, 0.675f,
0.15f, 0.15f + 0.48f, 0.675f,
0.15f, 0.15f + 0.48f, 1.35f,
// South
-0.15f, -0.15f + 0.48f, 0.675f,
0.15f, -0.15f + 0.48f, 0.675f,
0.15f, -0.15f + 0.48f, 1.35f,
-0.15f, -0.15f + 0.48f, 1.35f,
// North
-0.15f, 0.15f + 0.48f, 1.35f,
0.15f, 0.15f + 0.48f, 1.35f,
0.15f, 0.15f + 0.48f, 0.675f,
-0.15f, 0.15f + 0.48f, 0.675f,
// Bottom
0.15f, -0.15f + 0.48f, 0.675f,
-0.15f, -0.15f + 0.48f, 0.675f,
-0.15f, 0.15f + 0.48f, 0.675f,
0.15f, 0.15f + 0.48f, 0.675f,
// Top
-0.15f, -0.15f + 0.48f, 1.35f,
0.15f, -0.15f + 0.48f, 1.35f,
0.15f, 0.15f + 0.48f, 1.35f,
-0.15f, 0.15f + 0.48f, 1.35f,
// HEAD
// West
-0.2f, -0.2f, 1.35f,
-0.2f, -0.2f, 1.75f,
-0.2f, 0.2f, 1.75f,
-0.2f, 0.2f, 1.35f,
// East
0.2f, -0.2f, 1.75f,
0.2f, -0.2f, 1.35f,
0.2f, 0.2f, 1.35f,
0.2f, 0.2f, 1.75f,
// South
-0.2f, -0.2f, 1.35f,
0.2f, -0.2f, 1.35f,
0.2f, -0.2f, 1.75f,
-0.2f, -0.2f, 1.75f,
// North
-0.2f, 0.2f, 1.75f,
0.2f, 0.2f, 1.75f,
0.2f, 0.2f, 1.35f,
-0.2f, 0.2f, 1.35f,
// Bottom
0.2f, -0.2f, 1.35f,
-0.2f, -0.2f, 1.35f,
-0.2f, 0.2f, 1.35f,
0.2f, 0.2f, 1.35f,
// Top
-0.2f, -0.2f, 1.75f,
0.2f, -0.2f, 1.75f,
0.2f, 0.2f, 1.75f,
-0.2f, 0.2f, 1.75f,
}; };
PlayerBox::PlayerBox(const gk::Camera &camera) : m_camera(camera) { PlayerBox::PlayerBox(const gk::Camera &camera) : m_camera(camera) {
@ -98,6 +274,7 @@ void PlayerBox::draw(gk::RenderTarget &target, gk::RenderStates states) const {
states.transform *= getTransform(); states.transform *= getTransform();
glCheck(glEnable(GL_CULL_FACE));
target.draw(m_vbo, GL_QUADS, 0, NUM_QUADS * 4, states); target.draw(m_vbo, GL_QUADS, 0, NUM_QUADS * 4, states);
} }