Hey so I have a 3D model which I have loaded into my game. However every frame they dissappear and reappear how can I fix this?
CODE:
ofap.h
pragma once
include "ofMain.h"
include "ofxAssimpModelLoader.h"
include "meteor.h"
class ofApp : public ofBaseApp{
public:
void setup();
void update();
void draw();
void keyPressed(int key);
void keyReleased(int key);
void mouseMoved(int x, int y );
void mouseDragged(int x, int y, int button);
void mousePressed(int x, int y, int button);
void mouseReleased(int x, int y, int button);
void mouseEntered(int x, int y);
void mouseExited(int x, int y);
void windowResized(int w, int h);
void dragEvent(ofDragInfo dragInfo);
void gotMessage(ofMessage msg);
ofEasyCam cam;
//ofxAssimpModelLoader Model1;
std::vector<meteor> Comets;//comets
};
ofapp.cpp
include "ofApp.h"
//--------------------------------------------------------------
void ofApp::setup(){
ofSetFrameRate(30);
ofSetVerticalSync(true);
ofEnableDepthTest();
cam.setDistance(120);
//Model1.loadModel("Models/asteroid.3ds", 20);
//Model1.setRotation(0, 90, 1, 0, 0);
//Model1.setRotation(1, 270, 0, 0, 1);
//Model1.setScale(0.1, 0.1, 0.1);
// Model1.setPosition(100, 100, 0);
for (int j = 0; j<Comets.size(); j++)
{
Comets[j].setup(0, 0, 0, 0, 0 ,0, 0);
}
for (int i = 0; i < 10; i++) {
meteor tempEnemy;
tempEnemy.setup(ofRandom(0, 1024), ofRandom(0, 1024), 0, 1, 0, 0, 0);
Comets.push_back(meteor(tempEnemy));
}
}
//--------------------------------------------------------------
void ofApp::update(){
}
//--------------------------------------------------------------
void ofApp::draw(){
ofBackground(255, 0, 0);
cam.begin();
cam.end();
for (int j = 0; j < Comets.size(); j++)
{
Comets[j].draw();
}
}
//--------------------------------------------------------------
void ofApp::keyPressed(int key){
}
//--------------------------------------------------------------
void ofApp::keyReleased(int key){
}
//--------------------------------------------------------------
void ofApp::mouseMoved(int x, int y ){
}
//--------------------------------------------------------------
void ofApp::mouseDragged(int x, int y, int button){
}
//--------------------------------------------------------------
void ofApp::mousePressed(int x, int y, int button){
}
//--------------------------------------------------------------
void ofApp::mouseReleased(int x, int y, int button){
}
//--------------------------------------------------------------
void ofApp::mouseEntered(int x, int y){
}
//--------------------------------------------------------------
void ofApp::mouseExited(int x, int y){
}
//--------------------------------------------------------------
void ofApp::windowResized(int w, int h){
}
//--------------------------------------------------------------
void ofApp::gotMessage(ofMessage msg){
}
//--------------------------------------------------------------
void ofApp::dragEvent(ofDragInfo dragInfo){
}
meteor.h
pragma once
include "ofxAssimpModelLoader.h"
class meteor
{
public:
meteor();
void setup(int _x, int _y, int _z, int _sx, int _sy, int _sz, int _model);
void draw();
int x;
int y;
int z;
int speedX;
int speedY;
int speedZ;
int model;
ofxAssimpModelLoader Model1;
};
meteor.cpp
include "meteor.h"
meteor::meteor()
{
}
void meteor::setup(int _x, int _y, int _z, int _sx, int _sy, int _sz, int _model) {
x = _x; // assignes x the value of _x which is assigned in setup
y = _y; // assignes y the value of _y which is assigned in setup
z = _z;
speedX = _sx; // assignes speedX the value of _sx which is assigned in setup
speedY = _sy; // assignes speedY the value of _sy which is assigned in setup
model = _model; //Assignes sprite the value of _sprite which is assigned in setup
//Loads in the asteroid model
Model1.loadModel("Models/asteroid.3ds", 0);
Model1.setScale(0.1, 0.1, 0.1);
}
void meteor::draw() {
Model1.setPosition(x, y, z);
Model1.drawFaces();
x = x + speedX;
y = y + speedY;
z = z + speedZ;
}