| | |
Multiple DirectX .x files from Dark GDK
Please support our Game Development advertiser: Programming Forums - DaniWeb Sister Site
Thread Solved |
•
•
Join Date: Mar 2009
Posts: 13
Reputation:
Solved Threads: 0
I'm creating my first FPS game,
in MS Visual C++ 2008 Express Edition with Dark GDK.
I've created a level and so on, and now I'm updating my enemies.
My ninja enemies have different .x files for different states, example: one for idle and one for attack.
I can't manage the switching between the different states!
Here is my code:
Can anybody help me?
Are there a better way of switching than deleting the current object and load a new object with the same object number?
Please help
in MS Visual C++ 2008 Express Edition with Dark GDK.
I've created a level and so on, and now I'm updating my enemies.
My ninja enemies have different .x files for different states, example: one for idle and one for attack.
I can't manage the switching between the different states!
Here is my code:
void updateNinja ( void )
{
int iLoop = 0;
float distCameraNinja;
for ( iLoop = 0; iLoop < ninjaCount; iLoop++)
{
if ( ninja[ iLoop ].life > 0 )
{
switch ( ninja[ iLoop ].mode )
{
case 1 : // idle loop idle & check dist
{
if ( ninja[ iLoop ].type == 1 )
dbLoopObject ( ninja[ iLoop ].obj , 0 , 0 );
else
{
dbDeleteObject ( ninja[ iLoop ].obj );
dbLoadObject ( "media\\H-Ninja-Idle.x" , ninja[ iLoop ].obj );
dbLoopObject ( ninja[ iLoop ].obj );
ninja[ iLoop ].type = 1;
}
distCameraNinja = getDistance ( ninja[ iLoop ].curPosX , 0 , ninja[ iLoop ].curPosZ , dbCameraPositionX ( 0 ) , 0 , dbCameraPositionZ ( 0 ) );
if ( distCameraNinja < 100 )
ninja[ iLoop ].mode = 2;
} break;
case 2 : // run loop run & play sound & check dist
{
if ( ninja[ iLoop ].type == 2 )
dbLoopObject ( ninja[ iLoop ].obj );
else
{
dbDeleteObject ( ninja[ iLoop ].obj );
dbLoadObject ( "media\\Ninja\\H-Ninja-Move.x" , ninja[ iLoop ].obj );
dbPositionObject ( ninja[ iLoop ].obj , ninja[ iLoop ].curPosX , 0 , ninja[ iLoop ].curPosZ );
dbScaleObject ( ninja[ iLoop ].obj , 3000 , 3000 , 3000 );
dbSetObjectSpeed ( ninja[ iLoop ].obj , 20 );
dbLoopObject ( ninja[ iLoop ].obj );
ninja[ iLoop ].type = 2;
}
distCameraNinja = getDistance ( ninja[ iLoop ].curPosX , 0 , ninja[ iLoop ].curPosZ , dbCameraPositionX ( 0 ) , 0 , dbCameraPositionZ ( 0 ) );
if ( distCameraNinja> 500 )
ninja[ iLoop ].mode = 1;
else if ( distCameraNinja > 100 )
ninja[ iLoop ].mode = 2;
else if ( distCameraNinja < 100 )
ninja[ iLoop ].mode = 3;
} break;
case 3 : // attack loop attack & play sound & check dist
{
if ( ninja[ iLoop ].type == 3 )
dbLoopObject ( ninja[ iLoop ].obj );
else
{
dbDeleteObject ( ninja[ iLoop ].obj );
dbLoadObject ( "media\\Ninja\\H-Ninja-Attack1.x" , ninja[ iLoop ].obj );
dbPositionObject ( ninja[ iLoop ].obj , ninja[ iLoop ].curPosX , 0 , ninja[ iLoop ].curPosZ );
dbScaleObject ( ninja[ iLoop ].obj , 3000 , 3000 , 3000 );
dbSetObjectSpeed ( ninja[ iLoop ].obj , 20 );
dbLoopObject ( ninja[ iLoop ].obj );
ninja[ iLoop ].type = 3;
}
distCameraNinja = getDistance ( ninja[ iLoop ].curPosX , 0 , ninja[ iLoop ].curPosZ , dbCameraPositionX ( 0 ) , 0 , dbCameraPositionZ ( 0 ) );
if ( distCameraNinja> 500 )
ninja[ iLoop ].mode = 1;
else if ( distCameraNinja > 100 )
ninja[ iLoop ].mode = 2;
else if ( distCameraNinja < 100 )
ninja[ iLoop ].mode = 3;
} break;
}
char czText[256];
wsprintf ( czText , "%d distCameraNinja " , (int) distCameraNinja );
dbText ( 0 , ( iLoop + monsterCount ) * 15 , czText );
}
}
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
float getDistance ( float x1 , float y1 , float z1 , float x2 , float y2 , float z2 )
{
float dist;
float dx;
float dy;
float dz;
dx = x2 - x1;
dy = y2 - y1;
dz = z2 - z1;
dist = sqrt ( ( dx * dx ) + ( dy * dy ) + ( dz * dz ) );
return dist;
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////Can anybody help me?
Are there a better way of switching than deleting the current object and load a new object with the same object number?
Please help
![]() |
Similar Threads
- Help with C++ and Dark GDK (Game Development)
- dark GDK (C++)
- Play multiple wav files with embed element (JavaScript / DHTML / AJAX)
- Concactinating Multiple Text Files Into One (Java)
- Need help in converting multiple text files into excel worksheets in a workbook (Shell Scripting)
- Using VBScript to read multiple HTML files (Visual Basic 4 / 5 / 6)
- Managing Multiple Photos or Other Files (Windows tips 'n' tweaks)
Other Threads in the Game Development Forum
- Previous Thread: Web based game Java???
- Next Thread: i really need help!!
| Thread Tools | Search this Thread |
3d advertising ai algorithm ban c++ cambridge camera censorship china competition console development engine fov fpx game gamer games gaming gauntanamo government idaho in-gameadvertisement intellectualproperty l-systems laracroft lindenmayer live manhunt math mathematics matrix mercenaries microsoft mmorpg modded msn naked news nintendo obama opengl palin physics pirate playstation politics projection ps3 rpg search selection software sony stephenhawking stocks studio technology terrorism tombraider uk videogame web wii world-of-warcraft xbox xbox-live xbox360





