minor improvements for gl error checcking/printing and shot defaults.
This commit is contained in:
parent
c06e138b3e
commit
b6f99e6498
5 changed files with 60 additions and 30 deletions
|
@ -44,12 +44,12 @@ bool Game::cycle(float dt)
|
|||
acc += dt;
|
||||
total += dt;
|
||||
|
||||
float spawnInterval = 0.1;
|
||||
float spawnInterval = 0.5;
|
||||
while (acc > spawnInterval) {
|
||||
acc -= spawnInterval;
|
||||
|
||||
float angle = 360.0 * util::randf_0_1();
|
||||
float speed = 0.01;
|
||||
float speed = 1.;
|
||||
|
||||
m_state->players.back()->addCommand(new game::SetSpeedCommand(speed));
|
||||
m_state->players.back()->addCommand(new game::ShootCommand(angle));
|
||||
|
|
|
@ -126,3 +126,41 @@ namespace endofthejedi {
|
|||
return glGetUniformLocation(m_program, name.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
void printGlError(GLenum err)
|
||||
{
|
||||
if (err != GL_NO_ERROR) {
|
||||
std::cout << "opengl error is: " << stringFromGlError(err) << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
void discardLastGlError(bool print)
|
||||
{
|
||||
GLenum err = glGetError();
|
||||
if (print) {
|
||||
printGlError(err);
|
||||
}
|
||||
}
|
||||
|
||||
// return false if there's an error
|
||||
bool checkAndPrintGlError()
|
||||
{
|
||||
GLenum err = glGetError();
|
||||
|
||||
printGlError(err);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
const char *stringFromGlError(GLenum err)
|
||||
{
|
||||
switch(err) {
|
||||
case GL_INVALID_ENUM: return "GL_INVALID_ENUM"; break;
|
||||
case GL_INVALID_VALUE: return "GL_INVALID_VALUE"; break;
|
||||
case GL_INVALID_OPERATION: return "GL_INVALID_OPERATION"; break;
|
||||
case GL_OUT_OF_MEMORY: return "GL_OUT_OF_MEMORY"; break;
|
||||
case GL_INVALID_FRAMEBUFFER_OPERATION: return "GL_INVALID_FRAMEBUFFER_OPERATION"; break;
|
||||
default: return "<unknown>"; break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -93,3 +93,13 @@ TBufferObject(void, map)(GLenum access) {
|
|||
TBufferObject(void, unmap)() {
|
||||
// todo
|
||||
}
|
||||
|
||||
void discardLastGlError(bool print=false);
|
||||
|
||||
// return false if there's an error
|
||||
bool checkAndPrintGlError();
|
||||
|
||||
void printGlError(GLenum err);
|
||||
|
||||
const char *stringFromGlError(GLenum err);
|
||||
|
||||
|
|
|
@ -2,29 +2,6 @@
|
|||
|
||||
#include <iostream>
|
||||
|
||||
void discardLastGlError()
|
||||
{
|
||||
glGetError();
|
||||
}
|
||||
|
||||
void checkAndPrintGlError()
|
||||
{
|
||||
GLenum err = glGetError();
|
||||
const char *errString;
|
||||
switch(err) {
|
||||
case GL_INVALID_ENUM: errString = "GL_INVALID_ENUM"; break;
|
||||
case GL_INVALID_VALUE: errString = "GL_INVALID_VALUE"; break;
|
||||
case GL_INVALID_OPERATION: errString = "GL_INVALID_OPERATION"; break;
|
||||
case GL_OUT_OF_MEMORY: errString = "GL_OUT_OF_MEMORY"; break;
|
||||
case GL_INVALID_FRAMEBUFFER_OPERATION: errString = "GL_INVALID_FRAMEBUFFER_OPERATION"; break;
|
||||
default: errString = "<unknown>"; break;
|
||||
}
|
||||
|
||||
if (err != GL_NO_ERROR) {
|
||||
std::cout<<"glGetAttribLocation() returned error: " << errString << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
namespace endofthejedi {
|
||||
PolygonModel::PolygonModel(const std::string &filename)
|
||||
: m_filename(filename)
|
||||
|
|
|
@ -8,14 +8,16 @@
|
|||
namespace game {
|
||||
void ShootCommand::apply(Player *player, State *state) const
|
||||
{
|
||||
//std::cout<<"apply command " << name() << std::endl;
|
||||
|
||||
// TODO: idea
|
||||
// shoot multiple rockets at once or from different positions after
|
||||
// level up / upgrade ...
|
||||
|
||||
// angles are supplied in degrees and are CCW
|
||||
Missile *missile = new Missile(player, player->ship->position, -util::deg2rad(m_angle), player->speed);
|
||||
Missile *missile = new Missile(
|
||||
player,
|
||||
player->ship->position,
|
||||
-util::deg2rad(m_angle),
|
||||
0.005*player->speed);
|
||||
|
||||
Trace *trace = new Trace(missile);
|
||||
missile->trace = trace;
|
||||
|
@ -30,9 +32,7 @@ namespace game {
|
|||
{
|
||||
(void) state;
|
||||
|
||||
// TODO
|
||||
return player->alive && player->energy >= player->speed;
|
||||
//return player->alive;
|
||||
}
|
||||
|
||||
void ChangeNameCommand::apply(Player *player, State *state) const
|
||||
|
@ -51,6 +51,11 @@ namespace game {
|
|||
void SetSpeedCommand::apply(Player *player, State *state) const
|
||||
{
|
||||
(void) state;
|
||||
|
||||
if (m_speed < 0.0) {
|
||||
return;
|
||||
}
|
||||
|
||||
player->speed = m_speed;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue