19.07.2012, 22:38
|
#299
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: axelynx
а куда про баги писать?
class my_Cam{
public:
Camera *cam;
Scene *s;
my_Cam(Scene *sc){
s=sc;
Camera *cam = s->AddCamera();
}
void Update(){
cam->Move(0.1,0,0);
}
};
вот если такой класс делаю, то приложение падает на любой команде сдвигающей камеру. притом теже команды с камерой как в стандартном примере работают. На 107 версии работало, вроде.

#include <axelynx/axelynx.h>
using namespace axelynx;
class my_Cam{
public:
Camera *cam;
Scene *s;
my_Cam(Scene *sc){
s=sc;
Camera *cam = s->AddCamera();
}
void Update(){
cam->Move(0.1,0,0);
}
};
int main()
{
Engine *eng = Engine::Init();
Window *wnd = eng->AddWindow(800,600);
//TODO: Place your resource loading and scene creating code here
Scene *s = eng->AddScene();
//Camera *cam = s->AddCamera();
my_Cam *cam= new my_Cam(s);
Surface *cube = StandartSurfaces::Cube();
Entity *body = s->Add(cube);
StandartShaders::Render::OnlyNormals()->SetUniform(Shader::SU_LIGHTPOS,vec3(0,5,7));
body->SetShader(StandartShaders::Render::OnlyNormals());
body->SetPosition(0,0,-6);
Entity *turret = s->Add(cube);
turret->SetParent(body);
turret->SetShader(StandartShaders::Render::OnlyNormals());
turret->SetPosition(0,0.0,-1.25);
turret->SetScale(0.25);
turret = turret->Copy();
turret->SetPosition(0,0,1.25);
turret = turret->Copy();
turret->SetPosition(0,-1.25,0);
turret = turret->Copy();
turret->SetPosition(0,1.25,0);
turret = turret->Copy();
turret->SetPosition(-1.25,0,0);
turret = turret->Copy();
turret->SetPosition(1.25,0,0);
float dx=0,dy=0;
while(wnd->isRunning())
{
if(KeyDown('A'))
dx -= 1.0;
if(KeyDown('D'))
dx += 1.0;
if(KeyDown('W'))
dy -= 1.0;
if(KeyDown('S'))
dy += 1.0;
//TODO: Place your rendering code here
float dt = Timer::Delta() * 0.01;
dx *= 0.95;
dy *= 0.95;
body->Turn(dt*dy,dt*dx,0);
cam->Update();
s->Render();
wnd->Flip();
}
//TODO: Place your deinitalize code here
eng->Free();
}
|
(Offline)
|
|