From: Peter Schaefer Date: Mon, 4 May 2015 20:17:02 +0000 (+0200) Subject: restart Game X-Git-Url: https://git.leopard-lacewing.eu/?a=commitdiff_plain;h=15441376c8b73334f676539a4b1c4256dee4b1bc;p=cgue_weave.git restart Game fixed Level Texture --- diff --git a/Weave/Events.cpp b/Weave/Events.cpp index 14baa4a..6c31b0e 100644 --- a/Weave/Events.cpp +++ b/Weave/Events.cpp @@ -43,7 +43,7 @@ void Events::processEvents() case SDL_KEYDOWN: if (sdl_event.key.keysym.sym == SDLK_ESCAPE) { - quit = true; //TODO nicht gleich alles beenden bei Escape + //quit = true; //TODO nicht gleich alles beenden bei Escape halt = true; } if (!isKHeld(sdl_event.key.keysym.sym)) diff --git a/Weave/Game.cpp b/Weave/Game.cpp index b204211..c5afb7f 100644 --- a/Weave/Game.cpp +++ b/Weave/Game.cpp @@ -55,7 +55,7 @@ Game::Game() : playing(true) // current_world->addObject(new SceneObject(shader1, translate(vec3(-3.f, 1.f, 0.f)), vec4(1.0f, 1.0f, 1.0f, 3.0f), new BBox(), "")); //Player - SceneObject* tmp_playerObject = new Marvin(shader1, translate(vec3(1.f, 3.f, 1.f))*rotate((float)M_PI_4,vec3(0.f,1.f,0.f))*scale(vec3(.2f))); + SceneObject* tmp_playerObject = new Marvin(shader1, translate(vec3(1.f, 3.f, 1.f))*rotate((float)M_PI_4,vec3(0.f,1.f,0.f))); tmp_playerObject->yStatic= false; @@ -74,7 +74,6 @@ Game::Game() : playing(true) Game::~Game() { delete current_world; - } @@ -82,7 +81,7 @@ void Game::play() { Fps fps(0.3f); int sleep_time=0; - while (!Events::quit){ + while (!Events::halt){ fps.step(); sleep_time += (int)(1000./ FRAMERATE_FIX - fps.getTicks()); diff --git a/Weave/Game.h b/Weave/Game.h index e62f129..1e584f1 100644 --- a/Weave/Game.h +++ b/Weave/Game.h @@ -29,10 +29,5 @@ private: void update(float); void draw() const; - - Shader* shader_skybox; - Texture* texture_skybox; - Model* model_skybox; - }; diff --git a/Weave/Graphix/GLM.cpp b/Weave/Graphix/GLM.cpp index 6ca7de2..b405afd 100644 --- a/Weave/Graphix/GLM.cpp +++ b/Weave/Graphix/GLM.cpp @@ -26,4 +26,9 @@ vec3 getScale(const mat4& matrix) scalingV[i] = sqrt(scalingM[i][i]); return scalingV; +} + +vec3 orthoVec(const vec3& _direction, const vec3& _vec) +{ + return normalize(_vec + _direction * dot(_direction, _vec)); } \ No newline at end of file diff --git a/Weave/Graphix/GLM.h b/Weave/Graphix/GLM.h index b02fb3b..b70bbd2 100644 --- a/Weave/Graphix/GLM.h +++ b/Weave/Graphix/GLM.h @@ -44,3 +44,5 @@ float VektorAbs(const vec3& vek); mat4 removeScale(const mat4& matrix); vec3 getScale(const mat4& matrix); +vec3 orthoVec(const vec3& direction, const vec3& vec); + diff --git a/Weave/Graphix/Model/Model.cpp b/Weave/Graphix/Model/Model.cpp index fa5b7f1..6b270a1 100644 --- a/Weave/Graphix/Model/Model.cpp +++ b/Weave/Graphix/Model/Model.cpp @@ -364,10 +364,6 @@ Model* Model::getBBoxModel() float Model::getPDistHit(const vec3& _P, const vec3& _direction) const { - vec3 n2 = cross(_direction, vec3(1.f, 0.f, 0.f)); - if (n2.length()<=0.01f) - n2 = cross(_direction, vec3(0.f, 1.f, 0.f)); - vec3 n3 = cross(_direction, n2); vec3 posA, sizeA; getBBsp(sizeA, posA); diff --git a/Weave/Graphix/Texture.cpp b/Weave/Graphix/Texture.cpp index 6c19a45..e140861 100644 --- a/Weave/Graphix/Texture.cpp +++ b/Weave/Graphix/Texture.cpp @@ -96,7 +96,7 @@ Texture::Texture(const string& _path, const vec4& _material) : path(_path), hand Texture::~Texture() { - //glDeleteTextures(1, &handle); + glDeleteTextures(1, &handle); } void Texture::bind(int unit) diff --git a/Weave/Scene/EventBox.cpp b/Weave/Scene/EventBox.cpp index 7fd6f96..2abe6a8 100644 --- a/Weave/Scene/EventBox.cpp +++ b/Weave/Scene/EventBox.cpp @@ -34,7 +34,22 @@ void EventBox::collides(SceneObject* _other) { if ((texture != nullptr && texture->operator std::string() == "model_player_2D.png") || _other->getTexture() != nullptr && (_other->getTexture()->operator std::string() == "model_player_2D.png")) { - if (!ignore && !_other->ignore) - Message::info("EB Kollision!" + eb_type); + //if (!ignore && !_other->ignore) + + switch (eb_type) + { + default: + Message::info("EB Kollision: " + std::to_string(eb_type) + " !"); + break; + case EB_LOSTZONE: + Message::info("Spiel Verloren!"); + Events::halt = true; + break; + case EB_WINZONE: + Message::info("Spiel Gewonnen!"); + Events::halt = true; + break; + } + } } \ No newline at end of file diff --git a/Weave/Scene/Scene.cpp b/Weave/Scene/Scene.cpp index aa0034c..d12e815 100644 --- a/Weave/Scene/Scene.cpp +++ b/Weave/Scene/Scene.cpp @@ -21,7 +21,7 @@ using std::set; #define TIME_TILL_DIRECTION_ROTATE 1 #define SPEED_MOVE_NORMAL 1.5f -#define MOVE_FASTER 2.f +#define MOVE_FASTER 2.5f Scene::Scene(unsigned int x, unsigned int y, unsigned int width, unsigned int height, float fovy, float zNear, float zFar, vec3 pos, SceneObject* _lookat) : diff --git a/Weave/main.cpp b/Weave/main.cpp index 4f84b32..c75cc2a 100644 --- a/Weave/main.cpp +++ b/Weave/main.cpp @@ -2,7 +2,7 @@ #include #include -#include "Graphix\GLM.h" +//#include "Graphix\GLM.h" //#include //glew32.dll @@ -13,11 +13,11 @@ //#include "Graphix\SceneObject.h" //#include "Graphix\Shader.h" -//#include "Message.h" +#include "Message.h" #include "Graphix\Graphix.h" //#include "Graphix\Scene.h" -//#include "Events.h" +#include "Events.h" //#include "Average.h" @@ -44,9 +44,29 @@ int main(int argc, char *argv[]) Graphix::init(); - Game spiel1; + bool play(true); + + while (!Events::quit) + { + if (play) + { + play = false; + Game spiel1; + + spiel1.play(); + + Events::halt = false; + Message::info("Press ESC to quit or R for a new Game."); + + } + Events::processEvents(); + if (Events::halt) + break; + if (Events::isKHeld(SDLK_r)) + play = true; + + } - spiel1.play(); Graphix::cleanup(); diff --git a/textures/model_levelTest_2D.png b/textures/model_levelTest_2D.png index 2aa9b42..05ecc13 100644 Binary files a/textures/model_levelTest_2D.png and b/textures/model_levelTest_2D.png differ diff --git a/textures/model_levelTest_2D.psb b/textures/model_levelTest_2D.psb index 832e5df..94144fc 100644 Binary files a/textures/model_levelTest_2D.psb and b/textures/model_levelTest_2D.psb differ