亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? demo9_1a_16b.cpp

?? 一本外國人寫的關于3D游戲編程的書的源碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:

// create skelaton bob
if (!Create_BOB(&skelaton,0,0,56,72,32,
           BOB_ATTR_VISIBLE | BOB_ATTR_MULTI_ANIM,DDSCAPS_SYSTEMMEMORY,0,16))
   return(0);

// load the frames in 8 directions, 4 frames each
// each set of frames has a walk and a fire, frame sets
// are loaded in counter clockwise order looking down
// from a birds eys view or the x-z plane
for (int direction = 0; direction < 8; direction++)
    { 
    // build up file name
    sprintf(filename,"SKELSP%d_24.BMP",direction);

    // load in new bitmap file
    Load_Bitmap_File(&bitmap16bit,filename);
 
    Load_Frame_BOB16(&skelaton,&bitmap16bit,0+direction*4,0,0,BITMAP_EXTRACT_MODE_CELL);  
    Load_Frame_BOB16(&skelaton,&bitmap16bit,1+direction*4,1,0,BITMAP_EXTRACT_MODE_CELL);  
    Load_Frame_BOB16(&skelaton,&bitmap16bit,2+direction*4,2,0,BITMAP_EXTRACT_MODE_CELL);  
    Load_Frame_BOB16(&skelaton,&bitmap16bit,3+direction*4,0,1,BITMAP_EXTRACT_MODE_CELL);  

    // unload the bitmap file
    Unload_Bitmap_File(&bitmap16bit);

    // set the animation sequences for skelaton
    Load_Animation_BOB(&skelaton,direction,4,skelaton_anims[direction]);

    } // end for direction

// set up stating state of skelaton
Set_Animation_BOB(&skelaton, 0);
Set_Anim_Speed_BOB(&skelaton, 4);
Set_Vel_BOB(&skelaton, 0,0);
Set_Pos_BOB(&skelaton, 0, 128);

// hide the mouse
if (!WINDOWED_APP)
    ShowCursor(FALSE);

// return success
return(1);

} // end Game_Init

///////////////////////////////////////////////////////////

int Game_Shutdown(void *parms,  int num_parms)
{
// this function is where you shutdown your game and
// release all resources that you allocated

// kill the reactor
Destroy_Bitmap(&reactor);

// kill skelaton
Destroy_BOB(&skelaton);

// release keyboard
DInput_Release_Keyboard();

// shutdown DirectInput
DInput_Shutdown();

// shutdonw directdraw
DDraw_Shutdown();

// return success
return(1);
} // end Game_Shutdown

///////////////////////////////////////////////////////////


int Game_Main(void *parms, int num_parms)
{
// this is the workhorse of your game it will be called
// continuously in real-time this is like main() in C
// all the calls for you game go here!


int          index;             // looping var
int          dx,dy;             // general deltas used in collision detection
 
static int   player_moving = 0; // tracks player motion

// check of user is trying to exit
if (KEY_DOWN(VK_ESCAPE) || KEY_DOWN(VK_SPACE))
    PostMessage(main_window_handle, WM_DESTROY,0,0);

// start the timing clock
Start_Clock();

// clear the drawing surface
DDraw_Fill_Surface(lpddsback, 0);

// lock the back buffer
DDraw_Lock_Back_Surface();

// draw the background reactor image
Draw_Bitmap16(&reactor, back_buffer, back_lpitch, 0);

// unlock the back buffer
DDraw_Unlock_Back_Surface();

// get player input

// get the keyboard data
lpdikey->GetDeviceState(256, (LPVOID)keyboard_state);

// reset motion flag
player_moving = 0;

// test direction of motion, this is a good example of testing the keyboard
// although the code could be optimized this is more educational

if (keyboard_state[DIK_RIGHT] && keyboard_state[DIK_UP]) 
   {
   // move skelaton
   skelaton.x+=2;
   skelaton.y-=2;
   dx=2; dy=-2;

   // set motion flag
   player_moving = 1;

   // check animation needs to change
   if (skelaton.curr_animation != SKELATON_NEAST)
      Set_Animation_BOB(&skelaton,SKELATON_NEAST);

   } // end if
else
if (keyboard_state[DIK_LEFT] && keyboard_state[DIK_UP]) 
   {
   // move skelaton
   skelaton.x-=2;
   skelaton.y-=2;
   dx=-2; dy=-2;

   // set motion flag
   player_moving = 1;

   // check animation needs to change
   if (skelaton.curr_animation != SKELATON_NWEST)
      Set_Animation_BOB(&skelaton,SKELATON_NWEST);

   } // end if
else
if (keyboard_state[DIK_LEFT] && keyboard_state[DIK_DOWN]) 
   {
   // move skelaton
   skelaton.x-=2;
   skelaton.y+=2;
   dx=-2; dy=2;

   // set motion flag
   player_moving = 1;

   // check animation needs to change
   if (skelaton.curr_animation != SKELATON_SWEST)
      Set_Animation_BOB(&skelaton,SKELATON_SWEST);

   } // end if
else
if (keyboard_state[DIK_RIGHT] && keyboard_state[DIK_DOWN]) 
   {
   // move skelaton
   skelaton.x+=2;
   skelaton.y+=2;
   dx=2; dy=2;

   // set motion flag
   player_moving = 1;

   // check animation needs to change
   if (skelaton.curr_animation != SKELATON_SEAST)
      Set_Animation_BOB(&skelaton,SKELATON_SEAST);

   } // end if
else
if (keyboard_state[DIK_RIGHT]) 
   {
   // move skelaton
   skelaton.x+=2;
   dx=2; dy=0;

   // set motion flag
   player_moving = 1;

   // check animation needs to change
   if (skelaton.curr_animation != SKELATON_EAST)
      Set_Animation_BOB(&skelaton,SKELATON_EAST);

   } // end if
else
if (keyboard_state[DIK_LEFT])  
   {
   // move skelaton
   skelaton.x-=2;
   dx=-2; dy=0; 
   
   // set motion flag
   player_moving = 1;

   // check animation needs to change
   if (skelaton.curr_animation != SKELATON_WEST)
      Set_Animation_BOB(&skelaton,SKELATON_WEST);

   } // end if
else
if (keyboard_state[DIK_UP])    
   {
   // move skelaton
   skelaton.y-=2;
   dx=0; dy=-2;
   
   // set motion flag
   player_moving = 1;

   // check animation needs to change
   if (skelaton.curr_animation != SKELATON_NORTH)
      Set_Animation_BOB(&skelaton,SKELATON_NORTH);

   } // end if
else
if (keyboard_state[DIK_DOWN])  
   {
   // move skelaton
   skelaton.y+=2;
   dx=0; dy=+2;

   // set motion flag
   player_moving = 1;

   // check animation needs to change
   if (skelaton.curr_animation != SKELATON_SOUTH)
      Set_Animation_BOB(&skelaton,SKELATON_SOUTH);

   } // end if

// only animate if player is moving
if (player_moving)
   {
   // animate skelaton
   Animate_BOB(&skelaton);


   // see if skelaton hit a wall
   
   // lock surface, so we can scan it
   DDraw_Lock_Back_Surface();
   
// call the color scanner with WALL_COLOR the color of the walls
// try to center the scan on the feet of the player
// note since we are uin 16-bit mode, we need to scan the 16 bit value then compare
// it against the 16-bit color code for the green pixel which has values RB(41,231,41)
// but depending if this is a 5.5.5 or 5.6.5 the 16-bit value will be different, however
// during ddraw_init RGB16Bit() was vectored (function pointer) to either 5.5.5 or 5.6.5 
// depending on the actual surface mode, so it should all work out :)
   if (Color_Scan16(skelaton.x+16, skelaton.y+16,
                    skelaton.x+skelaton.width-16, skelaton.y+skelaton.height-16,                                    
                    RGB16Bit(WALL_COLOR_R, WALL_COLOR_G, WALL_COLOR_B),
                    RGB16Bit(WALL_COLOR_R, WALL_COLOR_G, WALL_COLOR_B), back_buffer,back_lpitch))
      {
      // back the skelaton up along its last trajectory
      skelaton.x-=dx;
      skelaton.y-=dy;
      } // end if
   
   // done, so unlock
   DDraw_Unlock_Back_Surface();

   // check if skelaton is off screen
   if (skelaton.x < 0 || skelaton.x > (screen_width - skelaton.width))
      skelaton.x-=dx;

   if (skelaton.y < 0 || skelaton.y > (screen_height - skelaton.height))
      skelaton.y-=dy;

   } // end if

// draw the skelaton
Draw_BOB16(&skelaton, lpddsback);

// draw some text
Draw_Text_GDI("I STILL HAVE A BONE TO PICK!",0,screen_height - 32,RGB(32,32,32),lpddsback);
Draw_Text_GDI("(16-Bit Version) USE ARROW KEYS TO MOVE, <ESC> TO EXIT.",0,0,RGB(32,32,32),lpddsback);

// flip the surfaces
DDraw_Flip();

// sync to 30 fps
Wait_Clock(30);

// return success
return(1);

} // end Game_Main

//////////////////////////////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品丝袜黑色高跟| 久久尤物电影视频在线观看| 韩日av一区二区| 丁香桃色午夜亚洲一区二区三区| 日韩免费一区二区三区在线播放| 成人app网站| 国产乱一区二区| 日日骚欧美日韩| 亚洲成人av在线电影| 亚洲欧美日韩在线不卡| 国产精品毛片大码女人| 国产日韩欧美精品在线| 久久在线观看免费| 久久嫩草精品久久久精品| 久久女同精品一区二区| 久久综合久久久久88| 久久婷婷国产综合国色天香| 成人av网站免费| 国产激情一区二区三区桃花岛亚洲| 极品少妇xxxx偷拍精品少妇| 五月激情丁香一区二区三区| 国产精品久久久久久久第一福利 | 久久久精品国产免费观看同学| 欧美片在线播放| 国产精品一区二区久激情瑜伽| 午夜伊人狠狠久久| 水野朝阳av一区二区三区| 天天操天天干天天综合网| 婷婷成人激情在线网| 日韩av不卡在线观看| 免费在线看一区| 国产精品香蕉一区二区三区| 国产精品一区二区视频| 99久久精品国产导航| 欧美最新大片在线看| 欧美精品国产精品| 日韩久久久久久| 欧美激情一区二区三区不卡| 国产精品家庭影院| 洋洋av久久久久久久一区| 中文字幕一区三区| 亚洲午夜精品久久久久久久久| 日韩影院精彩在线| 国产精品1区2区| 一本色道**综合亚洲精品蜜桃冫| 精品视频在线免费| 久久久99免费| 一区二区三区四区av| 男人操女人的视频在线观看欧美| 国产精品正在播放| 欧美亚洲丝袜传媒另类| 精品久久久久久无| 日韩毛片一二三区| 蜜桃精品视频在线观看| 不卡的av在线播放| 91.com视频| 日韩一区在线免费观看| 日韩专区在线视频| 成a人片亚洲日本久久| 在线亚洲人成电影网站色www| 欧美va亚洲va香蕉在线| 亚洲美女视频一区| 国产一区二区精品久久99| 日本精品一区二区三区四区的功能| 日韩美一区二区三区| 亚洲欧美电影院| 国产一区二区中文字幕| 欧美三级午夜理伦三级中视频| 国产日产欧美一区二区视频| 日韩国产成人精品| 在线观看视频一区二区欧美日韩| 久久久精品天堂| 日本午夜精品视频在线观看| 色吊一区二区三区| 国产精品久久久久久久裸模| 久久精品国产精品亚洲红杏| 91黄视频在线观看| 国产精品成人午夜| 国产福利一区二区三区| 欧美狂野另类xxxxoooo| 国产精品久久精品日日| 国产精品一区二区x88av| 日韩一区二区中文字幕| 天天av天天翘天天综合网 | 成人av资源在线观看| 日韩你懂的电影在线观看| 亚洲亚洲人成综合网络| 欧美在线免费播放| 亚洲欧美在线高清| 色综合咪咪久久| 亚洲三级免费观看| 99re这里都是精品| 亚洲私人影院在线观看| 99久久国产免费看| 亚洲欧美日韩国产综合| 99国产精品国产精品久久| 亚洲欧洲日韩女同| 色综合久久久久久久| 一区二区三区精品在线| 91欧美激情一区二区三区成人| 中文字幕一区二| 97se亚洲国产综合自在线观| 国产精品成人免费精品自在线观看 | 一本到不卡精品视频在线观看| 亚洲国产成人一区二区三区| 波多野结衣中文一区| 国产精品麻豆视频| 色综合久久综合网欧美综合网| 亚洲日本在线观看| 欧美日本一区二区| 美女网站视频久久| 2023国产精品| 99热在这里有精品免费| 亚洲美女视频在线| 欧美放荡的少妇| 国产综合久久久久久鬼色 | 色综合天天视频在线观看| 国产精品高潮久久久久无| 91香蕉国产在线观看软件| 亚洲成精国产精品女| 欧美一区二区三区不卡| 成人免费看的视频| 中文字幕乱码一区二区免费| 国产精品亚洲а∨天堂免在线| 国产精品蜜臀av| 欧美日韩精品三区| 视频一区在线播放| 欧美一卡二卡在线| 国产成人av资源| 一区二区日韩av| 日韩午夜小视频| 成人影视亚洲图片在线| 亚洲国产aⅴ成人精品无吗| 欧美亚洲尤物久久| 蜜臀久久99精品久久久久久9| 久久久亚洲国产美女国产盗摄 | 一个色在线综合| 欧美日韩高清一区| 国产一区二区三区在线观看精品| 中文字幕人成不卡一区| 日韩一区二区免费视频| 99精品偷自拍| 亚洲一区中文在线| 中文字幕av在线一区二区三区| 欧美挠脚心视频网站| 粗大黑人巨茎大战欧美成人| 美女视频黄免费的久久| 中文字幕一区二区三区蜜月 | 日av在线不卡| 国产欧美一区二区三区网站| 91视频观看免费| 久久国产麻豆精品| 一区二区三区丝袜| 国产日韩成人精品| 欧美区在线观看| 97精品视频在线观看自产线路二| 国内久久婷婷综合| 午夜精品一区二区三区电影天堂 | 日韩专区欧美专区| 亚洲裸体在线观看| 中文字幕人成不卡一区| 欧美韩日一区二区三区| 久久久久亚洲蜜桃| 欧美草草影院在线视频| 4438x亚洲最大成人网| 欧美视频精品在线观看| 在线观看亚洲精品| 91福利视频网站| 一本久久a久久精品亚洲| 99久久精品国产毛片| 99久久婷婷国产综合精品电影| 国产激情一区二区三区桃花岛亚洲| 美女mm1313爽爽久久久蜜臀| 免费一区二区视频| 日韩精品视频网| 肉色丝袜一区二区| 日韩和欧美的一区| 久久99久久久久| 开心九九激情九九欧美日韩精美视频电影 | 裸体健美xxxx欧美裸体表演| 日本人妖一区二区| 日本不卡高清视频| 激情综合色播激情啊| 精品一区二区三区久久久| 久久激五月天综合精品| 国产经典欧美精品| 91在线观看污| 欧美亚州韩日在线看免费版国语版| 色播五月激情综合网| 9191久久久久久久久久久| 日韩免费性生活视频播放| 26uuu久久天堂性欧美| 中文字幕国产一区| 一级中文字幕一区二区| 天堂久久久久va久久久久| 美女看a上一区| 99精品一区二区| 91精品国产欧美一区二区| 精品福利av导航| 亚洲色图视频网站|