Приложение, созданное с использованием Cinder (Box2D) и Qt, не запускается

Я пытаюсь запустить программу, которая в конечном итоге станет (глупой) игрой (отсюда и название Noscope2D). Прямо сейчас, когда я запускаю программу или просто нажимаю .exe, она не запускается.

Там нет ошибки, просто кажется, что отказывается открывать. Хотя правильно компилирует.

#include "cinder/app/AppNative.h"#include "cinder/gl/gl.h"#include "cinder/ImageIo.h"#include "cinder/gl/Texture.h"//#include "cinder/audio/Output.h"#include <cmath>
#include <ctime>
#include <cstdlib>
#include <Box2D/Box2D.h>
#include <QtGui/qmovie.h>using namespace ci;
using namespace ci::app;
using namespace std;

const float BOX_SIZE = 10;

QMovie *hit1=new QMovie("BadExplosion.gif");

class Noscope2DApp : public AppNative {
public:
void setup();
void mouseDown( MouseEvent event );
void keyDown ( KeyEvent event );
void keyUp ( KeyEvent event );
void update();
void draw();

bool KEY_W, KEY_A, KEY_S, KEY_D;

int BGChoose, wheredraw;

gl::Texture background, hitmarker;

void addBox( const Vec2f &pos );

b2World *mWorld;
vector<b2Body*> mBoxes;
b2BodyDef shot, player, enemy;};

void Noscope2DApp::setup(void)
{
srand(time(NULL));
BGChoose=rand()%9+1;
wheredraw=rand()%100+1;switch(BGChoose)
{
case 1:
background=gl::Texture(loadImage(loadAsset("BG1.png")));
break;
case 2:
background=gl::Texture(loadImage(loadAsset("BG2.png")));
break;
case 3:
background=gl::Texture(loadImage(loadAsset("BG3.png")));
break;
case 4:
background=gl::Texture(loadImage(loadAsset("BG4.png")));
break;
case 5:
background=gl::Texture(loadImage(loadAsset("BG5.png")));
break;
case 6:
background=gl::Texture(loadImage(loadAsset("BG6.png")));
break;
case 7:
background=gl::Texture(loadImage(loadAsset("BG7.png")));
break;
case 8:
background=gl::Texture(loadImage(loadAsset("BG8.png")));
break;
case 9:
background=gl::Texture(loadImage(loadAsset("BG9.png")));
break;
}KEY_W=KEY_A=KEY_S=KEY_D=false;

b2Vec2 gravity( 0.0f, 10.0f );
mWorld = new b2World( gravity );

b2BodyDef groundBodyDef;
groundBodyDef.position.Set( 0.0f, getWindowHeight() );
b2Body* groundBody = mWorld->CreateBody(&groundBodyDef);

// Define the ground box shape.
b2PolygonShape groundBox;

// The extents are the half-widths of the box.
groundBox.SetAsBox( getWindowWidth(), 10.0f );

// Add the ground fixture to the ground body.
groundBody->CreateFixture(&groundBox, 0.0f);

}

void Noscope2DApp::addBox( const Vec2f &pos )
{
b2BodyDef bodyDef;
bodyDef.type = b2_dynamicBody;
bodyDef.position.Set( pos.x, pos.y );

b2Body *body = mWorld->CreateBody( &bodyDef );

b2PolygonShape dynamicBox;
dynamicBox.SetAsBox( BOX_SIZE, BOX_SIZE );

b2FixtureDef fixtureDef;
fixtureDef.shape = &dynamicBox;
fixtureDef.density = 1.0f;
fixtureDef.friction = 0.3f;
fixtureDef.restitution = 0.5f; // bounce

body->CreateFixture( &fixtureDef );
mBoxes.push_back( body );
}

void Noscope2DApp::mouseDown( MouseEvent event )
{

}

void Noscope2DApp::keyDown( KeyEvent event )
{
switch(event.getCode())
{
case KeyEvent::KEY_w:
KEY_W=true;
break;
case KeyEvent::KEY_a:
KEY_A=true;
break;
case KeyEvent::KEY_s:
KEY_S=true;
break;
case KeyEvent::KEY_d:
KEY_D=true;
break;
}

}

void Noscope2DApp::keyUp( KeyEvent event )
{
switch(event.getCode())
{
case KeyEvent::KEY_w:
KEY_W=false;
break;
case KeyEvent::KEY_a:
KEY_A=false;
break;
case KeyEvent::KEY_s:
KEY_S=false;
break;
case KeyEvent::KEY_d:
KEY_D=false;
break;
}
}

void Noscope2DApp::update()
{
for( int i = 0; i < 10; ++i )
mWorld->Step( 1 / 30.0f, 10, 10 );
}

void Noscope2DApp::draw()
{
// clear out the window with black
gl::clear( Color( 0, 0, 0 ) );
gl::draw(background, Area(0, 0, getWindowWidth(), getWindowHeight()));
}

CINDER_APP_NATIVE( Noscope2DApp, RendererGl )

Я понятия не имею, где ошибка, поэтому я включил весь код. Извините, если это TMI, я не могу понять это вообще!

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]