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

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

?? tank.pas

?? 可以像電玩一樣玩坦克
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
              Canvas.Draw(176,128,BitmapGameover);
              sleep(2000);
              //調用游戲結束聲音
              sndPlaySound( 'Gameover.wav',   SND_ASYNC);
              //Mainform.Font.Color:=clBlue;
              //Mainform.Font.Size:=32;
              //Mainform.Font.Name:='華文行楷';
             //Canvas.TextOut(100,100,'坦克你真是個天才');
           end;
       end;
   end;
end;
 {Procedure TMainForm.SetValue(Etank:array of Byte);
begin
  //管理新出現的敵方坦克
  //如果檢測到游戲開始標志則進行賦值
 // if gsPlaying:=true then
 // Begin

 // end;
  end;
 }
//此函數處理敵方坦克坐標和方向
  Procedure TMainForm.Etanks(Var Etank:TPatDt);
 // var
  // Cn:Byte;
  begin

  //用黑色背景先把敵方坦克原來位置覆蓋掉,敵方坦克然后再改變坐標
      Rect_L:=Rect(0,0,32,32);
      Rect_M:=Rect(Etank.Xpos,Etank.Ypos,Etank.Xpos+32,Etank.Ypos+32);
      Make_Bmap.Canvas.CopyMode:=cmSrcCopy;
      Make_Bmap.Canvas.CopyRect(Rect_M,Load_Bmap.Canvas,Rect_L);
       //把隨即數打亂
      Randomize;
       //定義敵人坦克改變方向行駛的概率
      //Cn:=Random(100);
      if Random(100)<5 then
      begin
       Etank.Smov := Random(4);
      end;
      //如果敵方坦克移動方向為右(0=右;1=左;2=下:3=上)
     // if (Chpon.Xpos<220 )or(Chpon.Xpos>356)or(Chpon.Ypos<356)
     //then begin
      if Etank.Smov=0 then
       begin
         //把向右的敵方坦克對應的畫面顯示出來
         Etank.Sban:=11;
         Etank.Xpos := Etank.Xpos + 4;
        //碰到軍旗周圍的磚頭
         if (Etank.Xpos>224 )and(Etank.Xpos<352)and(Etank.Ypos>352)then
          begin
          //坦克掉頭
          Etank.Smov:=1;
          end;
       end;

    //如果敵方坦克移動方向向左
      if Etank.Smov=1 then
      begin
          //把向左的坦克顯示出來
          Etank.Sban:=10;
          Etank.Xpos := Etank.Xpos - 4;
          if (Etank.Xpos>224 )and(Etank.Xpos<356)and(Etank.Ypos>352)then
          begin
            Etank.Smov:=0;
          end;
      end;
        //如果敵方坦克移動方向向下
      if Etank.Smov=2 then
      begin
        //把向下的敵方坦克顯示出來
         Etank.Sban:=9;
         Etank.Ypos := Etank.Ypos + 4;
          if (Etank.Xpos>224 )and(Etank.Xpos<356)and(Etank.Ypos>352)then
          begin
             Etank.Smov:=3;
          end;

      end;
      if Etank.Smov=3 then
      begin
         Etank.Sban:=8;
         Etank.Ypos := Etank.Ypos - 4;
        if (Etank.Xpos>224 )and(Etank.Xpos<356)and(Etank.Ypos>352)then
         begin
           Etank.Smov:=2;
         end;
      end;




       // end
      // else
         //  Chpon.Xpos:=ChPon.Xpos;
         //  Chpon.Ypos:=Chpon.Ypos;
         //  end





  {       case ChPon.Smov of
        0: Chpon.Xpos := ChPon.Xpos + 4;
        1: ChPon.Xpos := ChPon.Xpos - 4;
        2: ChPon.Ypos := ChPon.Ypos + 4;
        3: ChPon.Ypos := ChPon.Ypos - 4;
      end;
  }
      //對于敵方坦克移動到屏幕外所做的處理
      //(0=右;1=左;2=下:3=上)
      if (Etank.Xpos < 0) then
       begin
         Etank.Smov:=0;
       end
       else if  (Etank.Xpos >DYoko -32) then
       begin
         Etank.Smov:=1;
       end
       else if(Etank.Ypos<0)then
       begin
         Etank.Smov:=2;
       end
       else if (Etank.Ypos >DTate - 32 )then
       begin
         Etank.Smov := 3;
       end;


  end ;


  Procedure TMainForm.Mytanks(Var Mytank:TPatDt);
  begin
      // Rect_L:=Rect(0,0,32,32);
      // Rect_M:=Rect(Mytank.Xpos,Mytank.Ypos,Mytank.Xpos+32,Mytank.Ypos+32);
      // Make_Bmap.Canvas.CopyMode:=cmSrcCopy;
      //Make_Bmap.Canvas.CopyRect(Rect_M,Load_Bmap.Canvas,Rect_L);
    //移動方向(0=右;1=左;2=下:3=上)
     if Mytank.Smov=0 then
      begin
        //把向右的我方坦克對應的圖畫的編號賦值
        Mytank.Sban:=23;
      end ;
       //如果我方坦克移動方向向左
     if Mytank.Smov=1 then
      begin
        //把向左的坦克顯示出來
        Mytank.Sban:=22;
      end;
        //如果我方坦克移動方向向下
      if Mytank.Smov=2 then
       begin
         //把向下的我方坦克顯示出來
         Mytank.Sban:=21;
       end;
      if Mytank.Smov=3 then
       begin
         Mytank.Sban:=20;
       end;
  end;
  //繪制敵人坦克函數
 Procedure TMainForm.DrawEtank(Sban:Byte;X1,Y1:Integer);
 begin
      // 畫出敵人坦克
      GX:=(Sban mod 8)*32;
      GY:=(Sban div 8)*32;
      Rect_L:=Rect(GX,GY,GX+32,GY+32);
      Rect_M:=Rect(X1,Y1,X1+32,Y1+32);
      Make_Bmap.Canvas.CopyMode:=cmSrcCopy;
      Make_Bmap.Canvas.CopyRect(Rect_M,Load_Bmap.Canvas,Rect_L);
 end;
 //子彈碰撞檢測函數
 Procedure TMainForm.HitCk;
   var
  X,Y,Cn:Byte;
begin
   //我方子彈移動方向(0=右;1=左;2=下:3=上)
   // 如果子彈向上出現中
   // if MyBullet[0].Used=3 then
   // begin
   //碰撞判斷的計算式-30<=敵方坦克的坐標-子彈的坐標<=14
   // Count:=0;
   // for Cn:=0 to MaxETank-1 do
   for Cn:=0 to 2 do
   begin
    if Etank[Cn].Used=1 then
    begin
      //   Count:=Count+1;
      // if Count>3  then begin
      //  Etank[4].Used:=1;
      // end;
      X2:=Etank[Cn].Xpos-MyBullet[0].Xpos;
      Y2:=Etank[Cn].Ypos-MyBullet[0].Ypos;

      if(X2>=-30)and(X2<=14)and(Y2>=-30)and(Y2<=14) then
          begin
          //爆炸標志設計為255
          // Etank[Cn].FExplode:=255;
          Etank[Cn].Used:=255;//當Used=255設定為爆炸標志
          //我方子彈用黑色背景去除,敵人坦克產生爆炸效果
          GX:=(0 mod 16)*16;
          GY:=(0 div 16)*16;
          Rect_L:=Rect(GX,GY,GX+16,GY+16);
          Rect_M:=Rect(MyBullet[0].Xpos,MyBullet[0].Ypos,MyBullet[0].Xpos+16,MyBullet[0].Ypos+16);
          Make_Bmap.Canvas.CopyMode:=cmSrcCopy;
          Make_Bmap.Canvas.CopyRect(Rect_M,Load_Bmap.Canvas,Rect_L);
          //我方子彈消失標志,使按鍵能夠再次發射子彈
          MyBullet[0].Used:=4;
          //把子彈的全局變量坐標設置到畫框外面
          // 使敵人坦克不至于碰到原來子彈的位置而停止運動把它當作跟子彈 碰撞來處理
          MyBullet[0].Xpos:=-16;
          MyBullet[0].Ypos:=-16;

          end;
      end;
       //我方坦克與敵方子彈碰撞
       if Mytank[0].Used=1 then
       begin
        //Count:=Count+1;
        // if Count>3  then begin
        //Etank[4].Used:=1;
        // end;
        X3:=Mytank[0].Xpos-EBullet[Cn].Xpos;
        Y3:=Mytank[0].Ypos-EBullet[Cn].Ypos;

         if(X3>=-30)and(X3<=14)and(Y3>=-30)and(Y3<=14) then
           begin
             //爆炸標志設計為255
             // Etank[Cn].FExplode:=255;
             Mytank[0].Used:=255;//當Used=255設定為爆炸標志
             //敵方子彈用黑色背景去除,我方坦克產生爆炸效果
             GX:=(0 mod 16)*16;
             GY:=(0 div 16)*16;
             Rect_L:=Rect(GX,GY,GX+16,GY+16);
             Rect_M:=Rect(EBullet[Cn].Xpos,EBullet[Cn].Ypos,EBullet[Cn].Xpos+16,EBullet[Cn].Ypos+16);
             Make_Bmap.Canvas.CopyMode:=cmSrcCopy;
             Make_Bmap.Canvas.CopyRect(Rect_M,Load_Bmap.Canvas,Rect_L);
             //敵方對應坦克子彈消失標志
             EBullet[Cn].Used:=4;
             //把子彈的全局變量坐標設置到畫框外面
             // 使敵人坦克不至于碰到原來子彈的位置而停止運動把它當作跟子彈 碰撞來處理
             EBullet[Cn].Xpos:=-16;
             EBullet[Cn].Ypos:=-16;

           end;
        end;
     //敵我子彈與磚塊碰撞
     for Y := 0 to (Tate - 1) do
      for X := 0 to (Yoko - 1) do
      begin
      //與磚塊發生碰撞
       if Grid[X,Y]=1 then
        begin
          MapGrid[X,Y].Xpos:=X*32;
          MapGrid[X,Y].Ypos:=Y*32;
          //敵方子彈與磚塊碰撞檢測
          X5:= MapGrid[X,Y].Xpos-EBullet[Cn].Xpos;
          Y5:= MapGrid[X,Y].Ypos-EBullet[Cn].Ypos;
          //我方子彈與磚塊碰撞檢測
          X6:=MapGrid[X,Y].Xpos-MyBullet[0].Xpos;
          Y6:=MapGrid[X,Y].Ypos-MyBullet[0].Ypos;

         if(X5>=-30)and(X5<=14)and(Y5>=-30)and(Y5<=14) then
           begin
             MapGrid[X,Y].Used:=255;//當Used=255設定為爆炸標志
             //地圖磚塊不存在了
             Grid[X,Y]:=0;
             // 調用坦克爆炸聲音
              sndPlaySound( 'bomb.wav',   SND_ASYNC);
             //敵方對應坦克子彈消失標志
             EBullet[Cn].Used:=4;
             GX:=(0 mod 16)*16;
             GY:=(0 div 16)*16;
             Rect_L:=Rect(GX,GY,GX+16,GY+16);
             Rect_M:=Rect(EBullet[Cn].Xpos,EBullet[Cn].Ypos,EBullet[Cn].Xpos+16,EBullet[Cn].Ypos+16);
             Make_Bmap.Canvas.CopyMode:=cmSrcCopy;
             Make_Bmap.Canvas.CopyRect(Rect_M,Load_Bmap.Canvas,Rect_L);
             //把敵人坦克與子彈碰撞時坦克的坐標賦值給全局變量
              X4:=MapGrid[X,Y].Xpos;
              Y4:=MapGrid[X,Y].Ypos;
              //調用爆炸開始圖第一張爆炸圖
              UseMap:=0;
              //把定時器2開啟調用爆炸畫面
              Timer2.Enabled:=true;

             //把子彈的全局變量坐標設置到畫框外面
             // 使敵人坦克不至于碰到原來子彈的位置而停止運動把它當作跟子彈 碰撞來處理
             EBullet[Cn].Xpos:=-16;
             EBullet[Cn].Ypos:=-16;
           end;
           if(X6>=-30)and(X6<=14)and(Y6>=-30)and(Y6<=14) then
           begin
             MapGrid[X,Y].Used:=255;//當Used=255設定為爆炸標志
             //地圖磚塊不存在了
             Grid[X,Y]:=0;
             // 調用坦克爆炸聲音
              sndPlaySound( 'bomb.wav',   SND_ASYNC);
             //敵方對應坦克子彈消失標志
             MyBullet[0].Used:=4;
             GX:=(0 mod 16)*16;
             GY:=(0 div 16)*16;
             Rect_L:=Rect(GX,GY,GX+16,GY+16);
             Rect_M:=Rect(MyBullet[0].Xpos,MyBullet[0].Ypos,MyBullet[0].Xpos+16,MyBullet[0].Ypos+16);
             Make_Bmap.Canvas.CopyMode:=cmSrcCopy;
             Make_Bmap.Canvas.CopyRect(Rect_M,Load_Bmap.Canvas,Rect_L);
             //把敵人坦克與子彈碰撞時坦克的坐標賦值給全局變量
              X4:=MapGrid[X,Y].Xpos;
              Y4:=MapGrid[X,Y].Ypos;
              //調用爆炸開始圖第一張爆炸圖
              UseMap:=0;
              //把定時器2開啟調用爆炸畫面
              Timer2.Enabled:=true;

             //把子彈的全局變量坐標設置到畫框外面
             // 使敵人坦克不至于碰到原來子彈的位置而停止運動把它當作跟子彈 碰撞來處理
             MyBullet[0].Xpos:=-16;
             MyBullet[0].Ypos:=-16;
           end;

        end;
        //如果子彈碰到的是軍旗
        if Grid[X,Y]=30 then
        begin
          MapGrid[X,Y].Xpos:=X*32;
          MapGrid[X,Y].Ypos:=Y*32;
          X5:= MapGrid[X,Y].Xpos-EBullet[Cn].Xpos;
          Y5:= MapGrid[X,Y].Ypos-EBullet[Cn].Ypos;
          //我方子彈與軍旗的碰撞
          X6:=MapGrid[X,Y].Xpos-MyBullet[0].Xpos;
          Y6:=MapGrid[X,Y].Ypos-MyBullet[0].Ypos;
          if(X5>=-30)and(X5<=14)and(Y5>=-30)and(Y5<=14) then
           begin
            sndPlaySound( 'bomb.wav',   SND_ASYNC);
            EBullet[Cn].Used:=4;
            GX:=(0 mod 16)*16;
            GY:=(0 div 16)*16;
            Rect_L:=Rect(GX,GY,GX+16,GY+16);
            Rect_M:=Rect(EBullet[Cn].Xpos,EBullet[Cn].Ypos,EBullet[Cn].Xpos+16,EBullet[Cn].Ypos+16);
            Make_Bmap.Canvas.CopyMode:=cmSrcCopy;
            Make_Bmap.Canvas.CopyRect(Rect_M,Load_Bmap.Canvas,Rect_L);
            Rect_1:=Rect(224,96,256,128);
            Rect_2:=Rect(MapGrid[X,Y].Xpos,MapGrid[X,Y].Ypos,MapGrid[X,Y].Xpos+32,MapGrid[X,Y].Ypos+32);
            Make_Bmap.Canvas.CopyMode:=cmSrcCopy;
            Make_Bmap.Canvas.CopyRect(Rect_2,Load_Bmap.Canvas,Rect_1);
            Mytank[0].used:=0;
            //sleep(2000);
            //BitmapGameover:=TBitmap.Create();
            //BitmapGameover.LoadFromFile(GetcurrentDir+'\img\Gameover.bmp');
            //Canvas.Draw(176,128,BitmapGameover);
            //游戲結束  定時器不工作
            //gsSuccess:=True;

            //調用游戲結束聲音
            //sndPlaySound( 'Gameover.wav',   SND_ASYNC);
           //end;
          end;
           if(X6>=-30)and(X6<=14)and(Y6>=-30)and(Y6<=14) then
           begin
            sndPlaySound( 'bomb.wav',   SND_ASYNC);
            MyBullet[0].Used:=4;
            GX:=(0 mod 16)*16;
            GY:=(0 div 16)*16;
            Rect_L:=Rect(GX,GY,GX+16,GY+16);
            Rect_M:=Rect(MyBullet[0].Xpos,MyBullet[0].Ypos,MyBullet[0].Xpos+16,MyBullet[0].Ypos+16);
            Make_Bmap.Canvas.CopyMode:=cmSrcCopy;
            Make_Bmap.Canvas.CopyRect(Rect_M,Load_Bmap.Canvas,Rect_L);
            Rect_1:=Rect(224,96,256,128);
            Rect_2:=Rect(MapGrid[X,Y].Xpos,MapGrid[X,Y].Ypos,MapGrid[X,Y].Xpos+32,MapGrid[X,Y].Ypos+32);
            Make_Bmap.Canvas.CopyMode:=cmSrcCopy;
            Make_Bmap.Canvas.CopyRect(Rect_2,Load_Bmap.Canvas,Rect_1);
            Mytank[0].used:=0;
            MyBullet[0].Xpos:=-16;
            MyBullet[0].Ypos:=-16;
            end;
        end;
      end;
  end;

end ;
    //子彈爆炸畫面函數
 Procedure TMainForm.Explode(Sban:Byte;X1,Y1:Integer);

 begin

      GX:=(Sban mod 8)*32;
      GY:=(Sban div 8)*32;
      Rect_L:=Rect(GX,GY,GX+32,GY+32);
      Rect_M:=Rect(X1,Y1,X1+32,Y1+32);
      Make_Bmap.Canvas.CopyMode:=cmSrcCopy;
      Make_Bmap.Canvas.CopyRect(Rect_M,Load_Bmap.Canvas,Rect_L);
     // count:=0;
  
 end;

 
    //我方坦克子彈控制函數
 Procedure TMainForm.MyBullets;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看精品一区| 亚洲一二三专区| 国产精品99久久久久久久女警| 日韩一区二区三区免费观看| 日韩高清在线电影| 久久精品综合网| 99久久精品99国产精品| 亚洲第一激情av| 国产亚洲欧美日韩俺去了| 欧美精品一区二区久久久| 91蜜桃在线观看| 国模娜娜一区二区三区| 亚洲欧美日韩电影| 欧美成人精品1314www| 91久久免费观看| 狠狠色综合日日| 国产最新精品免费| 国产精品一区二区三区网站| 日韩欧美一级在线播放| 丰满白嫩尤物一区二区| 亚洲一区二区三区视频在线播放| 夜夜爽夜夜爽精品视频| 91蝌蚪porny| 色系网站成人免费| 国内成人精品2018免费看| 国产一区二区看久久| 日本亚洲三级在线| 九九视频精品免费| 亚洲一区二区三区激情| 日韩电影在线一区二区| 精品一区二区三区久久| 懂色中文一区二区在线播放| aaa国产一区| 国产成人精品影视| 久久99国产精品麻豆| 国产精品一区二区果冻传媒| k8久久久一区二区三区 | 精品一区二区三区免费播放| 国产99一区视频免费| 色成人在线视频| 欧美变态tickle挠乳网站| 国产精品欧美极品| 精品对白一区国产伦| 国产精品国产精品国产专区不蜜 | 亚洲一区二区高清| 精品写真视频在线观看| 97aⅴ精品视频一二三区| 欧美一级日韩一级| 欧美性高清videossexo| 色综合视频一区二区三区高清| 欧美欧美欧美欧美首页| 欧美性感一类影片在线播放| 日韩欧美国产精品一区| 中文字幕一区av| 亚洲婷婷在线视频| 亚洲欧洲www| 日韩av中文字幕一区二区三区 | 欧美精品乱人伦久久久久久| 欧美日韩精品一区视频| 国产亚洲制服色| 亚洲成av人在线观看| 国产高清不卡二三区| 欧美日韩二区三区| 国产精品美女一区二区| 麻豆91小视频| 国产一区欧美一区| 欧美日韩mp4| 中文字幕一区二区视频| 久久国产欧美日韩精品| 国内久久婷婷综合| 精品视频一区 二区 三区| 欧美日韩一区高清| 欧美激情一二三区| 亚洲精品v日韩精品| 亚洲第一精品在线| av电影一区二区| 亚洲国产精品二十页| 免费看日韩a级影片| 国产高清久久久久| 日韩无一区二区| 亚洲国产成人va在线观看天堂| 老司机精品视频导航| 欧美日韩国产123区| 亚洲毛片av在线| 9i在线看片成人免费| 久久久99精品免费观看不卡| 蜜臀av在线播放一区二区三区| 在线观看不卡一区| 亚洲欧美另类小说| 成人免费观看视频| 色88888久久久久久影院按摩 | 国产成人免费视频一区| 日韩免费成人网| 免费日本视频一区| 欧美一区二区三区四区五区| 夜夜嗨av一区二区三区网页 | 国产suv精品一区二区6| 精品国产一区二区三区久久影院| 青青草成人在线观看| 在线视频一区二区免费| 亚洲资源中文字幕| 欧美中文字幕一区二区三区| 一区二区三区成人| 一本色道久久综合亚洲91| 亚洲视频在线一区观看| 99久久精品国产一区二区三区| 日本一区二区三区在线观看| 午夜电影一区二区三区| 成人动漫在线一区| 91精品一区二区三区在线观看| 国产欧美va欧美不卡在线| 国产一区二区免费视频| 国产午夜精品福利| 国产91在线看| 国产精品久久久久9999吃药| av不卡免费电影| 亚洲一区自拍偷拍| 欧美剧在线免费观看网站| 日本欧美一区二区在线观看| 日韩精品一区二区三区视频播放 | 欧美色视频在线观看| 亚洲成人免费视| 欧美一区二区精品久久911| 麻豆精品在线看| 国产亚洲一区二区三区在线观看| 国产成人av影院| 亚洲视频一二三| 欧美日韩激情在线| 久久精品国产99| 欧美激情一区二区三区在线| 91麻豆自制传媒国产之光| 亚洲小少妇裸体bbw| 欧美一区二区精品| 成人性生交大片免费看中文 | 一区二区高清视频在线观看| 欧美另类变人与禽xxxxx| 精品中文字幕一区二区| 中文天堂在线一区| 在线观看亚洲精品| 日本亚洲电影天堂| 国产人妖乱国产精品人妖| 91社区在线播放| 日本中文字幕不卡| 亚洲国产高清在线| 欧美四级电影网| 国产一区视频导航| 夜夜亚洲天天久久| 久久久精品国产免大香伊 | 91黄色小视频| 久久国产精品区| 日韩美女精品在线| 欧美一级黄色片| av在线不卡免费看| 日本不卡一区二区| 亚洲欧美在线aaa| 欧美高清hd18日本| 成人午夜在线播放| 午夜久久久久久久久| 欧美激情一区二区三区不卡 | 亚洲已满18点击进入久久| 亚洲精品一区二区三区四区高清| 94-欧美-setu| 韩国三级在线一区| 亚洲一区免费视频| 久久精品视频一区二区三区| 欧美日韩一区国产| 成人短视频下载| 免费观看成人鲁鲁鲁鲁鲁视频| 综合中文字幕亚洲| 精品国产乱码久久| 国产精品卡一卡二| 精品国内片67194| 欧美色图在线观看| 99精品国产91久久久久久 | 久久亚洲一级片| 免费欧美日韩国产三级电影| 亚洲色图欧美在线| 久久精品一区二区三区不卡| 欧美精品乱码久久久久久| a级高清视频欧美日韩| 久88久久88久久久| 亚洲成人福利片| 亚洲桃色在线一区| 国产欧美日韩综合精品一区二区| 欧美美女直播网站| 91国偷自产一区二区三区观看| 成人免费高清在线| 福利一区二区在线观看| 久久97超碰色| 老司机精品视频导航| 日韩电影在线观看网站| 亚洲v日本v欧美v久久精品| 亚洲欧美日韩成人高清在线一区| 亚洲国产精品国自产拍av| 精品电影一区二区| 日韩你懂的在线播放| 91行情网站电视在线观看高清版| 国产激情一区二区三区桃花岛亚洲| 欧美草草影院在线视频| 精品久久久久久久一区二区蜜臀|