Saludos gente de Club Delphi. Soy nuevo en el foro y estoy acá para pedirles ayuda con un programa en dev C++. Estoy tratando de hacer un programa que dibuje un circulo que se mueva utilizando el game engine irrlicht. Tengo el código ya y quisiera conocer opiniones sobre cómo modificarlo y qué le cambiarían. Aquí posteo el código:
Código:
#include <irrlicht.h>
#include <iostream>
#include <math.h>
using namespace irr;
#pragma comment(lib, "Irrlicht.lib")
int main()
{
// let user select driver type
video::E_DRIVER_TYPE driverType;
driverType = video::EDT_OPENGL;
// create device
IrrlichtDevice *device = createDevice(driverType,
core::dimension2d<s32>(800, 600));
if (device == 0)
return 1; // could not create selected driver.
device->setWindowCaption(L"Irrlicht Engine - 2D Graphics Demo");
video::IVideoDriver* driver = device->getVideoDriver();
while(device->run() && driver)
{
if (device->isWindowActive())
{
u32 time = device->getTimer()->getTime();
driver->beginScene(true, true, video::SColor(0,120,102,136));
core::position2d<s32> m = device->getCursorControl()->getPosition();
/* for (int i=0;i<15;i++)
for (int j=0;j<15;j++)
{
driver->draw2DLine(core::position2d<s32>(400,300),m, video::SColor(100,255,255,255) );
m.X*=i;
m.Y*=j;
}*/
core::position2d<s32> s=core::position2d<s32>(400,300);
int a,b,a1,b1;
time_t t;
for(double i=0;i<6.28318531;i+=.005)
{
time_t t;
driver->draw2DLine(core::position2d<s32>(a+(cos(i)*(1.5*a)+400),b+(sin(i)*(1.5*b)+300)),core::position2d<s32>(a+(cos(i)*(2+a)+400),b+(sin(i)*(2+b)+300)), video::SColor(i*42.5,i*40,255-i*42.5,255-i*63) );
a=m.X-400;
b=m.Y-300;
a1=m.X;
b1=m.Y;
}
driver->endScene();
}
}
device->drop();
return 0;
}
Quisiera también saber qué otra función o código podría emplear yo en vez del seno y el coseno para el alto y el ancho ya que no se me ocurre ninguna.
Espero puedan ayudarme. Muchas gracias!.