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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? demo9_3a_16b.cpp

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

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

// couldn't start missile
return(0);

} // end Start_Missile

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

int Move_Missile(void)
{
// this function moves the missle 

// test if missile is alive
if (missile_state==1)
   {
   // move the missile upward
   if ((missile_y-=10) < 0)
      {
      missile_state = 0;
      return(1);
      } // end if

   // lock secondary buffer
   DDraw_Lock_Back_Surface();

   // add missile collision here


   // unlock surface
   DDraw_Unlock_Back_Surface();

   // return success
   return(1);

   } // end if

// return failure
return(0);

} // end Move_Missle

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

int Draw_Missile(void)
{
// this function draws the missile 

// test if missile is alive
if (missile_state==1)
   {
   // lock secondary buffer
   DDraw_Lock_Back_Surface();

   // draw the missile in green
   Draw_Clip_Line16(missile_x, missile_y, 
                    missile_x, missile_y+6,
                    RGB16Bit(255,255,255),back_buffer, back_lpitch);

   // unlock surface
   DDraw_Unlock_Back_Surface();

   // return success
   return(1);

   } // end if

// return failure
return(0);

} // end Draw_Missle

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

// GAME PROGRAMMING CONSOLE FUNCTIONS ////////////////

int Game_Init(void *parms,  int num_parms)
{
// this function is where you do all the initialization 
// for your game

int index;         // looping var
char filename[80]; // used to build up files names

// start up DirectDraw (replace the parms as you desire)
DDraw_Init(WINDOW_WIDTH, WINDOW_HEIGHT, WINDOW_BPP, WINDOWED_APP);

// joystick creation section ////////////////////////////////

/// start up DirectInput
DInput_Init();

// initialize the joystick
DInput_Init_Joystick(-24,24,-24,24);

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

// load the background
Load_Bitmap_File(&bitmap16bit, "MUSH_24.BMP");

// load in the four frames of the mushroom
for (index=0; index<4; index++)
    {
    // create mushroom bitmaps
    Create_Bitmap(&mushrooms[index],0,0,32,32,16);
    Load_Image_Bitmap16(&mushrooms[index],&bitmap16bit,index,0,BITMAP_EXTRACT_MODE_CELL);  
    } // end for index

// now create the bug blaster bob
Create_BOB(&blaster,0,0,32,32,3,
           BOB_ATTR_VISIBLE | BOB_ATTR_MULTI_ANIM | BOB_ATTR_ANIM_ONE_SHOT,
           DDSCAPS_SYSTEMMEMORY,0,16);

// load in the four frames of the mushroom
for (index=0; index < 3; index++)
     Load_Frame_BOB16(&blaster,&bitmap16bit,index,index,1,BITMAP_EXTRACT_MODE_CELL);  

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

// set the animation sequences for bug blaster
Load_Animation_BOB(&blaster,0,5,blaster_anim);

// set up stating state of bug blaster
Set_Pos_BOB(&blaster,320, 400);
Set_Anim_Speed_BOB(&blaster,3);

// create mushroom playfield bitmap
Create_Bitmap(&playfield,0,0,SCREEN_WIDTH,SCREEN_HEIGHT, 16);
playfield.attr |= BITMAP_ATTR_LOADED;

// fill in the background
Load_Bitmap_File(&bitmap16bit, "GRASS_24.BMP");

// load the grass bitmap image
Load_Image_Bitmap16(&playfield,&bitmap16bit,0,0,BITMAP_EXTRACT_MODE_ABS);
Unload_Bitmap_File(&bitmap16bit);

// seed random number generator
srand(Start_Clock());

// create the random mushroom patch
for (index=0; index<50; index++)
    {
    // select a mushroom
    int mush = rand()%4;

    // set mushroom to random position
    mushrooms[mush].x = rand()%(SCREEN_WIDTH-32);
    mushrooms[mush].y = rand()%(SCREEN_HEIGHT-128);

    // now draw the mushroom into playfield
    Draw_Bitmap16(&mushrooms[mush], playfield.buffer, playfield.width*2,1);

    } // end for

// 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 bug blaster
Destroy_BOB(&blaster);

// kill the mushroom maker
for (int index=0; index<4; index++)
    Destroy_Bitmap(&mushrooms[index]);

// kill the playfield bitmap
Destroy_Bitmap(&playfield);

// release joystick
DInput_Release_Joystick();

// 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


// 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);

// get the joystick data
DInput_Read_Joystick();

// lock the back buffer
DDraw_Lock_Back_Surface();

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

// unlock the back buffer
DDraw_Unlock_Back_Surface();

// is the player moving?
blaster.x+=joy_state.lX;
blaster.y+=joy_state.lY;

// test bounds
if (blaster.x > SCREEN_WIDTH-32)
    blaster.x = SCREEN_WIDTH-32;
else
if (blaster.x < 0)
    blaster.x = 0;

if (blaster.y > SCREEN_HEIGHT-32)
    blaster.y = SCREEN_HEIGHT-32;
else
if (blaster.y < SCREEN_HEIGHT-128)
    blaster.y = SCREEN_HEIGHT-128;

// is player firing?
if (joy_state.rgbButtons[0])
   Start_Missile();

// move and draw missle
Move_Missile();
Draw_Missile();

// is it time to blink eyes
if ((rand()%100)==50)
   Set_Animation_BOB(&blaster,0);

// draw blaster
Animate_BOB(&blaster);
Draw_BOB16(&blaster,lpddsback);

// draw some text
Draw_Text_GDI("(16-Bit Version) Make My Centipede!",0,0,RGB(255,255,255),lpddsback);

// display joystick and buttons 0-7
sprintf(buffer,"Joystick Stats: X-Axis=%d, Y-Axis=%d, buttons(%d,%d,%d,%d,%d,%d,%d,%d)",
                                                                      joy_state.lX,joy_state.lY,
                                                                      joy_state.rgbButtons[0],
                                                                      joy_state.rgbButtons[1],
                                                                      joy_state.rgbButtons[2],
                                                                      joy_state.rgbButtons[3],
                                                                      joy_state.rgbButtons[4],
                                                                      joy_state.rgbButtons[5],
                                                                      joy_state.rgbButtons[6],
                                                                      joy_state.rgbButtons[7]);

Draw_Text_GDI(buffer,0,SCREEN_HEIGHT-20,RGB(255,255,50),lpddsback);

// print out name of joystick
sprintf(buffer, "Joystick Name & Vendor: %s",joyname);
Draw_Text_GDI(buffer,0,SCREEN_HEIGHT-40,RGB(255,255,50),lpddsback);


// flip the surfaces
DDraw_Flip();

// sync to 30 fps
Wait_Clock(30);

// return success
return(1);

} // end Game_Main

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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产拍揄自揄精品视频麻豆| 欧美日韩久久一区| 天天射综合影视| 亚洲激情一二三区| 亚洲黄色录像片| 经典三级一区二区| 精品一区二区av| 色婷婷激情综合| 色狠狠av一区二区三区| 91捆绑美女网站| av一区二区三区四区| 一本在线高清不卡dvd| 精品日产卡一卡二卡麻豆| 精品久久久久一区二区国产| 一区二区三区中文字幕| 日本女优在线视频一区二区| 激情亚洲综合在线| 成人国产一区二区三区精品| 色婷婷综合久久久久中文| 久久久久久久久久电影| 亚洲欧美偷拍三级| 午夜私人影院久久久久| 91麻豆高清视频| 亚洲欧美一区二区在线观看| 午夜精彩视频在线观看不卡| 91免费国产在线| 国产精品视频观看| 日韩不卡手机在线v区| 欧美亚洲综合色| www国产亚洲精品久久麻豆| 一区二区三区资源| 成人sese在线| 亚洲国产精品成人综合| 天天综合天天综合色| 欧美日韩国产精品成人| 亚洲成人激情av| 不卡在线观看av| 中文字幕国产一区二区| 国产98色在线|日韩| 91精品在线观看入口| 国产精品不卡一区| 日韩精品福利网| 91色视频在线| 亚洲精品va在线观看| 在线看不卡av| 中文字幕在线一区免费| 波多野结衣精品在线| 亚洲欧美区自拍先锋| 色系网站成人免费| 午夜精品久久久久久久久久| 欧美高清视频不卡网| 樱桃国产成人精品视频| 欧美三级在线播放| 一区二区三区中文字幕精品精品| 色婷婷亚洲综合| 欧美a一区二区| 欧美精品v日韩精品v韩国精品v| 日韩和欧美一区二区三区| 欧美一级久久久| 亚洲第一福利一区| 日韩免费电影一区| 秋霞国产午夜精品免费视频 | 亚洲国产成人porn| av一区二区三区在线| 亚洲免费在线观看| 欧美一级搡bbbb搡bbbb| 婷婷六月综合亚洲| 久久久91精品国产一区二区三区| 激情图片小说一区| 自拍偷拍亚洲激情| 在线一区二区三区| 另类小说视频一区二区| 日韩视频免费观看高清在线视频| 国产精品69毛片高清亚洲| 日韩欧美国产综合| 92国产精品观看| 亚洲欧美日韩国产成人精品影院| 日韩一区二区三区av| 99久久婷婷国产综合精品电影| 日韩精品一级中文字幕精品视频免费观看| 国产三级精品三级在线专区| 欧美色电影在线| 不卡影院免费观看| 九九热在线视频观看这里只有精品| 亚洲美腿欧美偷拍| 国产网站一区二区| 69av一区二区三区| 色综合天天天天做夜夜夜夜做| 亚洲天堂免费看| 精品国精品国产尤物美女| 久久国内精品自在自线400部| 亚洲色图.com| 国产欧美综合色| 欧美一区二区二区| 在线观看国产日韩| 91猫先生在线| 国产成人精品免费看| 亚洲欧美日韩一区| 国产精品久久久久久久久久久免费看| 欧美一卡二卡三卡| 欧美日韩大陆一区二区| 97久久精品人人做人人爽| 狠狠久久亚洲欧美| 日本不卡视频在线观看| 日韩电影免费在线看| 亚洲精品国产一区二区精华液 | 色婷婷综合久久久久中文一区二区 | 久久免费视频色| 精品日韩99亚洲| 日韩欧美色综合| 日韩亚洲国产中文字幕欧美| 欧美日韩色一区| 欧美精品一级二级三级| 欧美变态口味重另类| 欧美日韩一区二区三区四区| 色综合久久久久久久久| 色综合色狠狠综合色| 色婷婷av一区二区| 精品视频色一区| 欧美日本一区二区| 欧美一区在线视频| 日韩欧美二区三区| 久久久99精品免费观看不卡| 久久精品视频免费| 国产精品传媒视频| 一区二区高清免费观看影视大全| 亚洲美女区一区| 视频一区欧美日韩| 免费成人美女在线观看| 韩国三级在线一区| 国产成人aaa| 91蜜桃在线免费视频| 在线亚洲一区二区| 日韩免费观看高清完整版 | 国产精品沙发午睡系列990531| 欧美国产视频在线| 一区二区三区影院| 日韩精品一卡二卡三卡四卡无卡| 久久成人久久爱| 成人免费视频一区| 捆绑变态av一区二区三区| 欧洲另类一二三四区| 欧美精品色综合| 久久久蜜桃精品| 亚洲一区在线观看免费| 日本一区二区成人| 亚洲午夜在线视频| 国产一区二区三区美女| 蜜桃av一区二区| 日本欧美一区二区三区| 国产一区二区不卡| 在线国产亚洲欧美| 日韩一区二区免费视频| |精品福利一区二区三区| 亚洲国产成人高清精品| 激情综合网激情| 欧美影院一区二区三区| 日韩欧美在线综合网| 中文字幕一区免费在线观看| 亚洲第一二三四区| 成人永久aaa| 欧美一区二区三区视频在线| 国产欧美在线观看一区| 日韩综合在线视频| 99视频一区二区三区| 欧美一区二区三区在线观看视频| 欧美激情在线看| 日本aⅴ亚洲精品中文乱码| 色综合激情久久| 久久久久久久av麻豆果冻| 亚洲一区二区黄色| 成人午夜精品一区二区三区| 欧美精品欧美精品系列| 自拍偷在线精品自拍偷无码专区| 韩日av一区二区| 欧美精品乱人伦久久久久久| 成人免费在线播放视频| 国内精品免费在线观看| 欧美无砖专区一中文字| 国产精品国产精品国产专区不片| 免费日本视频一区| 欧美午夜电影网| 亚洲男人电影天堂| www.欧美色图| 国产欧美精品一区二区三区四区 | 国内精品嫩模私拍在线| 欧美精品 日韩| 亚洲一卡二卡三卡四卡| 97精品久久久午夜一区二区三区| 久久久久久久免费视频了| 久久99精品国产麻豆婷婷洗澡| 欧美日韩三级在线| 亚洲va欧美va天堂v国产综合| 波多野结衣中文字幕一区二区三区| 久久久久久久精| 国产成人av资源| 国产欧美日韩在线视频| 国产不卡视频在线观看| 国产午夜精品理论片a级大结局| 国产精品综合久久|