[DEV] Add sphere test

This commit is contained in:
Edouard DUPIN 2013-01-04 22:20:00 +01:00
parent d28bbba1b3
commit e8167600c8
6 changed files with 1566 additions and 999 deletions

Binary file not shown.

View File

@ -1,11 +1,12 @@
# Blender MTL File: 'sphere.blend'
# Material Count: 1
newmtl
newmtl _untitled
Ns 0
Ka 0.000000 0.000000 0.000000
Kd 0.8 0.8 0.8
Ks 0.8 0.8 0.8
d 1
illum 2
map_Kd .

File diff suppressed because it is too large Load Diff

BIN
data/sphere.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

View File

@ -34,6 +34,7 @@ static const char * l_eventRotationY = "event-rotation-Y";
static const char * l_eventRotationZ = "event-rotation-Z";
static const char * l_eventRotation0 = "event-rotation-0";
static const char * l_eventLunch = "event-lunch";
static const char * l_eventChangeTimeSpeed4 = "event-speed4";
static const char * l_eventChangeTimeSpeed2 = "event-speed2";
static const char * l_eventChangeTimeSpeed0 = "event-speed0.5";
static const char * l_eventChangeTimeSpeed1 = "event-speed1";
@ -47,7 +48,10 @@ static const char * l_eventDown = "event-down";
TestScene::TestScene(void)
{
m_ground = new game::Element("DATA:grass.obj");
m_gameEngine.AddElement(m_ground);
if (NULL != m_ground) {
m_ground->SetStaticMode(true);
m_gameEngine.AddElement(m_ground);
}
APPL_CRITICAL("Create "__class__" (start)");
widget::SizerVert* mySizerVert2 = NULL;
@ -126,6 +130,11 @@ TestScene::TestScene(void)
myButton->RegisterOnEvent(this, ewolEventButtonPressed, l_eventChangeTimeSpeed2);
mySizerHori->SubWidgetAdd(myButton);
}
myButton = new widget::Button("4x speed");
if (NULL != myButton) {
myButton->RegisterOnEvent(this, ewolEventButtonPressed, l_eventChangeTimeSpeed4);
mySizerHori->SubWidgetAdd(myButton);
}
widget::Spacer* mySpacer = new widget::Spacer();
if (NULL != mySpacer) {
@ -232,6 +241,31 @@ class stupidCube : public game::Element
class stupidSphere : public game::Element
{
public:
stupidSphere(float poidKg=0.0f) : game::Element("DATA:sphere.obj")
{
m_mass = poidKg;
};
// herited methode
virtual bool ArtificialIntelligence(float delta)
{
if (m_mass == 0.0f) {
if (baseRotationVect != vec3(0,0,0) ) {
Rotate(baseRotationVect, 0.5 * delta );
}
if (baseMove != vec3(0,0,0) ) {
Translate(baseMove);
baseMove = vec3(0,0,0);
}
}
return false;
}
};
@ -249,9 +283,10 @@ void TestScene::OnReceiveMessage(ewol::EObject * CallerObject, const char * even
static bool firstTime = true;
if (firstTime==false) {
stupidCube * tmpp = new stupidCube();
vec3 newPos = vec3(etk::tool::frand(-20,20),etk::tool::frand(-20,20),etk::tool::frand(1,8));
vec3 newPos = vec3(etk::tool::frand(-40,40),etk::tool::frand(-40,40),etk::tool::frand(1,8));
APPL_DEBUG("add a box at the pos : " << newPos);
tmpp->Translate(newPos);
tmpp->Scale(etk::tool::frand(0.5,2) );
float angle = etk::tool::frand(-M_PI,M_PI);
tmpp->Rotate(vec3(1,0,0), angle);
angle = etk::tool::frand(-M_PI,M_PI);
@ -266,7 +301,18 @@ void TestScene::OnReceiveMessage(ewol::EObject * CallerObject, const char * even
}
} else if (eventId == l_eventAddSphere) {
if (NULL!=m_testWidget) {
stupidSphere * tmpp = new stupidSphere();
vec3 newPos = vec3(etk::tool::frand(-40,40),etk::tool::frand(-40,40),etk::tool::frand(1,8));
APPL_DEBUG("add a box at the pos : " << newPos);
tmpp->Translate(newPos);
tmpp->Scale(etk::tool::frand(0.5,2) );
float angle = etk::tool::frand(-M_PI,M_PI);
tmpp->Rotate(vec3(1,0,0), angle);
angle = etk::tool::frand(-M_PI,M_PI);
tmpp->Rotate(vec3(0,1,0), angle);
angle = etk::tool::frand(-M_PI,M_PI);
tmpp->Rotate(vec3(0,0,1), angle);
m_gameEngine.AddElement(tmpp);
}
} else if (eventId == l_eventUp) {
baseMove = vec3(0.1,0,0);
@ -282,6 +328,8 @@ void TestScene::OnReceiveMessage(ewol::EObject * CallerObject, const char * even
baseRotationVect = vec3(0,0,0);
} else if (eventId == l_eventLunch) {
stupidCube * tmpp = new stupidCube(250);
vec3 newPos = vec3(5,5,100);
tmpp->Translate(newPos);
tmpp->SetSpeed(vec3(10,10,50));
m_gameEngine.AddElement(tmpp);
} else if (eventId == l_eventChangeTimeSpeed1) {
@ -296,6 +344,10 @@ void TestScene::OnReceiveMessage(ewol::EObject * CallerObject, const char * even
if (NULL!=m_testWidget) {
m_testWidget->SetRatioTime(2);
}
} else if (eventId == l_eventChangeTimeSpeed4) {
if (NULL!=m_testWidget) {
m_testWidget->SetRatioTime(4);
}
}
return;

View File

@ -17,3 +17,5 @@ LOCAL_COPY_FOLDERS := ../data/icon.*: \
../data/cube.*: \
../data/grass.*: \
../data/stone*: \
../data/sphere.png: \
../data/sphere.obj: