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

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

?? demo9_2a.cpp

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

// 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 mouse data
DInput_Read_Mouse();

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

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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜欧美2019年伦理| 久久品道一品道久久精品| 欧美老肥妇做.爰bbww视频| 日韩欧美中文字幕精品| 日韩毛片精品高清免费| 天堂久久一区二区三区| www.日韩av| 精品国产一区二区三区不卡| 亚洲第一搞黄网站| 99久久久久免费精品国产 | 中文字幕精品三区| 日韩中文字幕区一区有砖一区 | 一区二区三区精品在线观看| 国产一区二区精品在线观看| 51久久夜色精品国产麻豆| 亚洲人午夜精品天堂一二香蕉| 国产尤物一区二区在线| 91精品国产丝袜白色高跟鞋| 亚洲成在人线免费| 欧美亚洲动漫精品| 自拍偷拍国产亚洲| 99国内精品久久| 中文字幕一区二区三中文字幕| 国产精品亚洲专一区二区三区 | 日韩在线一区二区三区| 欧美调教femdomvk| 亚洲激情校园春色| 色婷婷久久久综合中文字幕| 国产精品久久久久影院亚瑟 | 国产欧美日韩在线| 国产一区二区免费视频| 久久久久久久免费视频了| 美女视频一区二区| 日韩一卡二卡三卡四卡| 精品综合久久久久久8888| 精品1区2区在线观看| 国产麻豆精品久久一二三| 国产日韩一级二级三级| 成人福利视频网站| 国产精品女上位| 99久久精品99国产精品 | 精品亚洲免费视频| 精品国产成人在线影院| 国产福利一区二区三区在线视频| 久久久久久亚洲综合| 成人一区二区三区| 亚洲欧美色一区| 欧美亚洲动漫精品| 麻豆精品一区二区av白丝在线| 久久综合网色—综合色88| 国产成a人无v码亚洲福利| 亚洲免费视频中文字幕| 欧美欧美欧美欧美首页| 国内精品在线播放| 国产精品不卡视频| 欧美三级中文字| 久草精品在线观看| 亚洲私人黄色宅男| 91精品国产综合久久精品app| 精品一区二区三区日韩| 亚洲欧美在线aaa| 在线不卡免费欧美| 成人小视频免费观看| 亚洲国产精品久久一线不卡| 日韩限制级电影在线观看| 成人黄色在线视频| 婷婷激情综合网| 国产精品网站在线观看| 欧美日韩午夜精品| 成人一级视频在线观看| 日本va欧美va精品发布| 国产精品久久久久久妇女6080| 欧美精品欧美精品系列| 成人久久视频在线观看| 日韩电影一区二区三区四区| 国产精品三级电影| 日韩欧美一级二级三级 | 成人国产精品免费观看| 日本在线播放一区二区三区| 国产精品美女久久久久高潮| 欧美一区二区视频在线观看| 99久久精品免费看| 激情综合五月天| 婷婷久久综合九色综合伊人色| 国产精品私人影院| 精品国产sm最大网站| 欧美日韩国产精选| 色偷偷久久一区二区三区| 国产一区二区影院| 免费亚洲电影在线| 国产一区不卡精品| 亚洲一级在线观看| 国产日本欧美一区二区| 日韩欧美国产综合一区 | 色综合久久九月婷婷色综合| 久久99精品久久久久久国产越南 | 久久精品久久综合| 亚洲不卡一区二区三区| 国产欧美精品一区二区色综合 | 欧美一卡二卡三卡| 欧洲视频一区二区| 99精品视频在线播放观看| 国产一区二区女| 国产一区二区福利| 黄色日韩网站视频| 韩国成人精品a∨在线观看| 日韩电影在线观看一区| 日本午夜一本久久久综合| 亚洲国产精品久久艾草纯爱| 樱桃视频在线观看一区| 亚洲欧美日韩在线| 亚洲女女做受ⅹxx高潮| 亚洲欧美日韩系列| 亚洲综合色网站| 亚洲一区二区精品3399| 亚洲一区二区成人在线观看| 亚洲国产精品一区二区久久 | 成人夜色视频网站在线观看| 激情文学综合网| 日韩国产精品久久久久久亚洲| av在线一区二区三区| 国产精品资源在线观看| 狠狠色伊人亚洲综合成人| 久久成人麻豆午夜电影| 美女一区二区视频| 精品亚洲成a人| 国产精品一区二区免费不卡| 国产白丝精品91爽爽久久| 波多野结衣视频一区| 91麻豆国产福利精品| 欧美午夜寂寞影院| 5858s免费视频成人| 日韩一区二区高清| 欧美高清在线一区二区| 亚洲色图一区二区三区| 尤物视频一区二区| 日本系列欧美系列| 成人免费视频app| 在线视频你懂得一区| 欧美一区二区三区视频在线观看| 欧美r级电影在线观看| 国产精品无圣光一区二区| 亚洲视频香蕉人妖| 婷婷中文字幕综合| 粉嫩高潮美女一区二区三区| 91久久精品一区二区三区| 欧美一区二区在线视频| 久久精品视频网| 亚洲国产综合色| 国产一区二区免费在线| 欧美色综合网站| 久久久www成人免费毛片麻豆| ●精品国产综合乱码久久久久| 午夜激情一区二区| 成人午夜在线免费| 欧美精品v日韩精品v韩国精品v| 久久精品亚洲一区二区三区浴池| 亚洲蜜臀av乱码久久精品| 另类小说一区二区三区| 91污片在线观看| 26uuu久久天堂性欧美| 一区二区成人在线视频| 国产成人午夜精品影院观看视频| 在线免费亚洲电影| 久久久久久久国产精品影院| 激情深爱一区二区| 欧美日韩一级黄| 中文字幕亚洲区| 久久成人精品无人区| 精品视频999| 国产精品久久久久久久午夜片| 免费欧美日韩国产三级电影| 99精品视频免费在线观看| 精品久久一区二区三区| 亚洲第一在线综合网站| 91免费看`日韩一区二区| 26uuu精品一区二区在线观看| 午夜电影网亚洲视频| 色偷偷一区二区三区| 国产精品久久一卡二卡| 国产一区二区三区观看| 日韩欧美激情一区| 奇米精品一区二区三区四区 | 黑人巨大精品欧美一区| 国产激情一区二区三区四区 | 男男gaygay亚洲| 91豆麻精品91久久久久久| 国产精品午夜电影| 国产高清不卡一区二区| 精品第一国产综合精品aⅴ| 日本亚洲天堂网| 7777精品伊人久久久大香线蕉经典版下载| 亚洲日本韩国一区| 99视频有精品| 亚洲欧美影音先锋| 99国产精品久久| 日韩美女视频19| 99久久99久久精品免费看蜜桃| 国产精品美女久久久久久| 成人黄色一级视频|