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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? demo9_2.cpp

?? 一本外國(guó)人寫(xiě)的關(guān)于3D游戲編程的書(shū)的源碼
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
int Game_Shutdown(void *parms,  int num_parms)
{
// this function is where you shutdown your game and
// release all resources that you allocated

// first unacquire the mouse
lpdimouse->Unacquire();

// now release the mouse
lpdimouse->Release();

// release directinput
lpdi->Release();

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

// delete all bobs and bitmaps
Destroy_BOB(&buttons);
Destroy_BOB(&pointer);
Destroy_Bitmap(&cpanel);
Destroy_Bitmap(&canvas);

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


// 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 input from the mouse
lpdimouse->GetDeviceState(sizeof(DIMOUSESTATE), (LPVOID)&mouse_state);

// move the mouse cursor
mouse_x+=(mouse_state.lX);
mouse_y+=(mouse_state.lY);

// test bounds

// first x boundaries
if (mouse_x >= screen_width)
   mouse_x = screen_width-1;
else
if (mouse_x < 0)
   mouse_x = 0;

// now the y boundaries
if (mouse_y >= screen_height)
   mouse_y= screen_height-1;
else
if (mouse_y < 0)
   mouse_y = 0;

// position the pointer bob to the mouse coords
pointer.x = mouse_x - 16;
pointer.y = mouse_y - 16;

// test what the user is doing with the mouse
if ((mouse_x > 3) && (mouse_x < 500-3) && 
    (mouse_y > 3) && (mouse_y < SCREEN_HEIGHT-3))
   {
   // mouse is within canvas region

   // if left button is down then draw
   if (mouse_state.rgbButtons[0])
      {
      // test drawing mode
      if (buttons_state[BUTTON_PENCIL])
         {
         // draw a pixel 
         Draw_Pixel(mouse_x, mouse_y, mouse_color, canvas.buffer, canvas.width);
         Draw_Pixel(mouse_x+1, mouse_y, mouse_color, canvas.buffer, canvas.width);
         Draw_Pixel(mouse_x, mouse_y+1, mouse_color, canvas.buffer, canvas.width);
         Draw_Pixel(mouse_x+1, mouse_y+1, mouse_color, canvas.buffer, canvas.width);
         }
      else
         {
         // draw spray
         for (index=0; index<10; index++)
             {
             // get next particle
             int sx=mouse_x-8+rand()%16;
             int sy=mouse_y-8+rand()%16;
            
             // make sure particle is in bounds
             if (sx > 0 && sx < 500 && sy > 0 && sy < screen_height)
                Draw_Pixel(sx, sy, mouse_color, canvas.buffer, canvas.width);
             } // end for index

         } // end else

      } // end if left button
    else // right button is eraser
    if (mouse_state.rgbButtons[1])
       {
       // test drawing mode
       if (buttons_state[BUTTON_PENCIL]) 
          {
          // erase a pixel 
          Draw_Pixel(mouse_x, mouse_y, 0, canvas.buffer, canvas.width);
          Draw_Pixel(mouse_x+1, mouse_y, 0, canvas.buffer, canvas.width);
          Draw_Pixel(mouse_x, mouse_y+1, 0, canvas.buffer, canvas.width);
          Draw_Pixel(mouse_x+1, mouse_y+1, 0, canvas.buffer, canvas.width);
          } // end if
       else
          {
          // erase spray
          for (index=0; index<20; index++)
              {
              // get next particle
              int sx=mouse_x-8+rand()%16;
              int sy=mouse_y-8+rand()%16;
            
              // make sure particle is in bounds
              if (sx > 0 && sx < 500 && sy > 0 && sy < screen_height)
                 Draw_Pixel(sx, sy, 0, canvas.buffer, canvas.width);
              } // end for index
          
          } // end else
       
       } // end if left button
  
   } // end if
else
if ( (mouse_x > 500+16) && (mouse_x < 500+16+8*9) &&
     (mouse_y > 8)      && (mouse_y < 8+32*9))
   {
   // within palette

   // test if button left button is down
   if (mouse_state.rgbButtons[0])
      {
      // see what color cell user is pointing to
      int cell_x = (mouse_x - (500+16))/9;
      int cell_y = (mouse_y - (8))/9;

      // change color
      mouse_color = cell_x + cell_y*8;

      } // end if
   } // end if
else
if ((mouse_x > 500) && (mouse_x < (500+100)) &&
    (mouse_y > 344) && (mouse_y < (383+34)) )
   {  
   // within button area
   // test for each button
   for (index=0; index<4; index++)
       {
       if ((mouse_x > buttons_x[index]) && (mouse_x < (buttons_x[index]+32)) &&
           (mouse_y > buttons_y[index]) && (mouse_y < (buttons_y[index]+34)) )
           break;

       } // end for

   // at this point we know where the user is, now determine what he
   // is doing with the buttons
   switch(index)
         {
         case BUTTON_SPRAY:
             {
             // if left button is down simply activate spray mode
             if (mouse_state.rgbButtons[0])
                {
                // depress button
                buttons_state[index] = 1;

               // de-activate pencil mode
                buttons_state[BUTTON_PENCIL] = 0;
                } // end if
             else
                {
                // make sure button is up
                // buttons_state[index] = 0;
                } // end else

             } break;
         
         case BUTTON_PENCIL:
             {
             // if left button is down activate spray mode
             if (mouse_state.rgbButtons[0])
                {
                // depress button
                buttons_state[index] = 1;

                // de-activate spray mode
                buttons_state[BUTTON_SPRAY] = 0;

                } // end if
             else
                {
                // make sure button is up
                // buttons_state[index] = 0;
                } // end else

             } break;

         case BUTTON_ERASE:
             {
             // test if left button is down, if so clear screen
             if (mouse_state.rgbButtons[0])
                {
                // clear memory
                memset(canvas.buffer,0,canvas.width*canvas.height);

                // depress button
                buttons_state[index] = 1;
                } // end if
             else
                {
                // make sure button is up
                buttons_state[index] = 0;
                } // end else
             } break;
         
         case BUTTON_EXIT:
             {
             // test if left button down, if so bail
             if (mouse_state.rgbButtons[0])
                  PostMessage(main_window_handle, WM_DESTROY,0,0);

             } break;

         } // end switch

   } // end if
else
   {
   // no mans land

   } // end else

// lock back buffer
DDraw_Lock_Back_Surface();

// draw the canvas
Draw_Bitmap(&canvas, back_buffer, back_lpitch,0);

// draw control panel
Draw_Bitmap(&cpanel,back_buffer,back_lpitch,0);

// unlock back buffer
DDraw_Unlock_Back_Surface();

// draw the color palette
for (int col=0; col < 256; col++)
    {
    Draw_Rectangle(500+16+(col%8)*9,   8+(col/8)*9,
                   500+16+(col%8)*9+8, 8+(col/8)*9+8,
                   col,lpddsback);
    
    } // end for col

// draw the current color selected
Draw_Rectangle(533,306,533+34,306+34,mouse_color,lpddsback);

// draw the buttons
for (index=0; index<4; index++)
    {
    // set position of button bob
    buttons.x = buttons_x[index];
    buttons.y = buttons_y[index];

    // now select the on/off frame based on if the
    // button is off
    if (buttons_state[index]==0)
        buttons.curr_frame = index;
    else // button is on
        buttons.curr_frame = index+4;

    // draw the button
    Draw_BOB(&buttons, lpddsback);

    } // end for index

static int green = 0;

// display coords
sprintf(buffer,"Pointer (%d,%d)",mouse_x,mouse_y);
Draw_Text_GDI(buffer, 8,screen_height - 16,RGB(0,255,0),lpddsback);
Draw_Text_GDI("T3D Paint Version 2.0 - Press <ESC> to Exit.",0,0,RGB(0,(green & 255),0),lpddsback);

// a little animation
++green;

// draw the cursor last
Draw_BOB(&pointer,lpddsback);

// flip the surfaces
DDraw_Flip();

// sync to 30 fps
Wait_Clock(30);

// return success
return(1);

} // end Game_Main

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

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜免费久久看| 91精品国产综合久久香蕉麻豆| 加勒比av一区二区| 久久精品久久久精品美女| 日韩高清不卡一区二区三区| 日韩av在线发布| 久久国产欧美日韩精品| 美女一区二区视频| 激情综合色综合久久| 国产一区在线视频| 国产91丝袜在线播放| 成人国产亚洲欧美成人综合网| youjizz国产精品| 91麻豆福利精品推荐| 欧美三级一区二区| 日韩欧美在线一区二区三区| 久久综合成人精品亚洲另类欧美 | 欧美日韩三级一区二区| 欧美日韩国产大片| 欧美一二三四在线| 亚洲精品在线观看网站| 国产欧美日韩一区二区三区在线观看 | 精品久久人人做人人爱| 国产亚洲欧美激情| 中文字幕五月欧美| 亚洲一区成人在线| 免费观看在线色综合| 国产精品538一区二区在线| 成人精品鲁一区一区二区| 97精品国产露脸对白| 欧美美女一区二区在线观看| 欧美一级二级三级蜜桃| 国产欧美一区二区精品仙草咪| 中文字幕一区二区在线观看| 午夜精品久久久久久久| 国产一区二区在线影院| 色偷偷久久人人79超碰人人澡| 欧美丰满嫩嫩电影| 国产日韩欧美综合在线| 亚洲精品中文在线影院| 久久99久久久欧美国产| 97久久精品人人做人人爽| 在线不卡免费欧美| 国产日产精品1区| 亚洲一二三四在线| 国产一区二区三区在线观看免费视频 | 视频一区欧美日韩| 国产精品一二三| 91高清在线观看| 欧美不卡一区二区三区四区| 亚洲欧美日韩国产综合在线| 麻豆成人av在线| 91在线播放网址| 欧美mv日韩mv国产网站| 亚洲女人小视频在线观看| 精品一区二区三区在线视频| 91一区二区在线观看| 精品少妇一区二区三区日产乱码| 亚洲三级久久久| 国产美女精品在线| 9191精品国产综合久久久久久| 欧美国产综合色视频| 日日夜夜一区二区| 91在线码无精品| 久久久国产精华| 日本在线播放一区二区三区| 91在线精品秘密一区二区| 精品国产精品网麻豆系列 | 风间由美一区二区av101| 在线不卡免费欧美| 亚洲精品一二三区| 国产成人高清视频| 精品国产一区二区三区忘忧草| 午夜精品成人在线| 色伊人久久综合中文字幕| 精品国产免费久久| 午夜精品影院在线观看| 91美女视频网站| 中文字幕精品一区二区精品绿巨人| 看片的网站亚洲| 91精品国产综合久久婷婷香蕉| 亚洲免费色视频| av亚洲精华国产精华精华 | 麻豆精品一区二区| 欧美日产国产精品| 一区二区三区在线视频观看| 99久久精品免费看国产| 日本一区二区成人在线| 国产老妇另类xxxxx| 欧美成人精品福利| 蜜桃在线一区二区三区| 欧美日韩成人高清| 亚洲国产中文字幕在线视频综合| 99国产精品久久久久久久久久 | 日韩欧美一级精品久久| 丝瓜av网站精品一区二区| 欧美亚洲另类激情小说| 一区二区久久久久久| 91日韩在线专区| 亚洲另类在线视频| 99久久99久久精品免费观看| 国产精品久久久久久亚洲毛片| 大美女一区二区三区| 欧美极品aⅴ影院| voyeur盗摄精品| 亚洲视频一二三| 色婷婷综合久久| 亚洲小少妇裸体bbw| 欧美三级电影精品| 天堂成人国产精品一区| 欧美一级午夜免费电影| 久久狠狠亚洲综合| 久久久一区二区| 成人动漫一区二区三区| 亚洲人午夜精品天堂一二香蕉| 成人av网站免费| 亚洲精品高清视频在线观看| 欧美日韩免费观看一区二区三区| 婷婷激情综合网| 日韩一级高清毛片| 国产精品一区二区不卡| 国产精品大尺度| 欧美视频在线观看一区二区| 蜜桃av一区二区三区电影| 精品国产乱子伦一区| 成人午夜看片网址| 一区二区免费看| 日韩一级黄色片| 成人免费视频app| 亚洲综合久久av| 日韩三级精品电影久久久| 国产剧情在线观看一区二区| 日韩伦理免费电影| 欧美夫妻性生活| 国产白丝精品91爽爽久久 | eeuss鲁片一区二区三区| 亚洲麻豆国产自偷在线| 日韩一区二区三区视频在线| 国产91在线看| 亚洲成a人v欧美综合天堂| 26uuu国产在线精品一区二区| 成人激情免费视频| 亚洲成a人v欧美综合天堂 | 狠狠色丁香久久婷婷综| 中文字幕日韩一区| 制服丝袜av成人在线看| 国产精一品亚洲二区在线视频| 亚洲免费在线看| 精品女同一区二区| 91性感美女视频| 麻豆精品在线播放| 亚洲美女一区二区三区| 精品sm捆绑视频| 色乱码一区二区三区88| 久久99精品久久只有精品| 亚洲色图在线看| 精品国产乱码久久久久久免费| 日本电影亚洲天堂一区| 国产一区二区视频在线播放| 亚洲一级片在线观看| 日本一区二区视频在线观看| 欧美久久一二三四区| 9l国产精品久久久久麻豆| 另类人妖一区二区av| 亚洲免费av高清| 国产日韩欧美精品一区| 91成人免费在线视频| 国产成人综合在线播放| 日日夜夜精品视频免费| 亚洲三级久久久| 久久精品一区二区三区av| 欧美老肥妇做.爰bbww| 91网站最新网址| 国产精一区二区三区| 日韩精品91亚洲二区在线观看| 亚洲丝袜美腿综合| 久久久夜色精品亚洲| 日韩午夜在线影院| 欧美日韩在线精品一区二区三区激情 | 亚洲一卡二卡三卡四卡无卡久久| 国产精品午夜在线| 精品日韩99亚洲| 欧美日韩国产影片| 一本色道综合亚洲| 成人美女视频在线看| 国产精品伊人色| 国产中文字幕精品| 日av在线不卡| 天堂成人免费av电影一区| 亚洲午夜视频在线| 一区二区三区在线免费播放| 国产精品久久久久久久久图文区 | 亚洲午夜免费电影| 亚洲欧美偷拍卡通变态| 国产精品美女久久久久久久| 精品国产精品一区二区夜夜嗨| 日韩午夜在线观看视频| 日韩精品自拍偷拍| 91精品国产综合久久婷婷香蕉| 欧美日本在线看|