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

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

?? unit1.~pas

?? 類似超級瑪麗模型之二(DELPHIX)
?? ~PAS
?? 第 1 頁 / 共 4 頁
字號:
Procedure TMainForm.calcbmask(imageno: integer);
Var p, xx, yy       : integer;
  d                 : ^hubba;
Begin
  For p := 0 To dximagelist1.Items[imageno].PatternCount - 1 Do
  Begin
    For yy := 0 To 31 Do
    Begin
      d := DXImageList1.Items[imageno].Picture.Bitmap.ScanLine[yy + (p Shr 4) Shl 5];
      For xx := 0 To 31 Do
        If (d[(xx + (p Mod 16) Shl 5) * 3 + 2] = 255) And (d[(xx + (p Mod 16) Shl 5) * 3 + 1] = 0) And (d[(xx + (p Mod 16) Shl 5) * 3] = 0) Or
        (d[(xx + (p Mod 16) Shl 5) * 3 + 2] = 0) And (d[(xx + (p Mod 16) Shl 5) * 3 + 1] = 0) And (d[(xx + (p Mod 16) Shl 5) * 3] = 255) Then
        Begin
          bmask[p, xx, yy] := true;
        End Else bmask[p, xx, yy] := false;
    End;
  End;
End;

Procedure FixImg16(imgno: integer);
Var xx, yy, r, g, b : integer;
  d                 : ^hubba;

Begin
//exit;
  mainform.dximagelist1.Items[imgno].picture.Bitmap.PixelFormat := pf24bit;
  For yy := 0 To mainform.dximagelist1.Items[imgno].picture.bitmap.height - 1 Do
  Begin
    d := mainform.DXImageList1.Items[imgno].Picture.Bitmap.ScanLine[yy];
    For xx := 0 To mainform.dximagelist1.Items[imgno].picture.bitmap.width - 1 Do
    Begin
      b := d[xx * 3 + 0];
      g := d[xx * 3 + 1];
      r := d[xx * 3 + 2];
//  if r shr 3 shl 3 <> r then
      If (r + g Shl 8 + b Shl 16 <> clred) Then
      Begin
        r := round((r - 8 + random(16)) / 8) Shl 3;
        g := round((g - 4 + random(8)) / 4) Shl 2;
        b := round((b - 8 + random(16)) / 8) Shl 3;
        If b > 255 Then b := 255;
        If r > 255 Then r := 255;
        If g > 255 Then g := 255;
        If r < 0 Then r := 0;
        If g < 0 Then g := 0;
        If b < 0 Then b := 0;
      End;                              {}
      d[xx * 3 + 0] := b;               //5
      d[xx * 3 + 1] := g;               //6
      d[xx * 3 + 2] := r;               //5
    End;
  End;
End;


Procedure FixImg8(imgno: integer);
Var xx, yy, r, g, b : integer;
  d                 : ^hubba;

Begin
  mainform.dximagelist1.Items[imgno].picture.Bitmap.PixelFormat := pf24bit;
  For yy := 0 To mainform.dximagelist1.Items[imgno].picture.bitmap.height - 1 Do
  Begin
    d := mainform.DXImageList1.Items[imgno].Picture.Bitmap.ScanLine[yy];
    For xx := 0 To mainform.dximagelist1.Items[imgno].picture.bitmap.width - 1 Do
    Begin
      r := d[xx * 3 + 2];
      g := d[xx * 3 + 1];
      b := d[xx * 3 + 0];
      If (r <> 0) And (r <> 255) Then
      Begin
        r := round((r - 32 + random(64)) / 32) Shl 5;
        If r >= 255 Then r := 254;
      End;

      If (g <> 0) And (g <> 255) Then
        g := round((g - 32 + random(64)) / 32) Shl 5;

      If (b <> 0) And (b <> 255) Then
        b := round((b - 64 + random(128)) / 64) Shl 6;

      If b > 255 Then b := 255;
      If r > 255 Then r := 255;
      If g > 255 Then g := 255;
      If r < 0 Then r := 0;
      If g < 0 Then g := 0;
      If b < 0 Then b := 0;

      d[xx * 3 + 2] := r;               //3
      d[xx * 3 + 1] := g;               //3
      d[xx * 3 + 0] := b;               //2
    End;
  End;
End;


Procedure flipimg(from, fto: integer);
Var p, xx, yy       : integer;
  d, d2             : ^hubba;
Begin
  mainform.dximagelist1.Items[fto].picture.Bitmap.PixelFormat := pf32bit;
  mainform.dximagelist1.Items[from].picture.Bitmap.PixelFormat := pf32bit;

  mainform.DXImageList1.Items[fto].Picture.Bitmap.Width :=
    mainform.DXImageList1.Items[from].Picture.Bitmap.Width;

  mainform.DXImageList1.Items[fto].Picture.Bitmap.Height :=
    mainform.DXImageList1.Items[from].Picture.Bitmap.Height;

  For p := 0 To mainform.dximagelist1.Items[from].PatternCount - 1 Do
  Begin
    For yy := 0 To 31 Do
    Begin
      d := mainform.DXImageList1.Items[from].Picture.Bitmap.ScanLine[yy + (p Shr 4) Shl 5];
      d2 := mainform.DXImageList1.Items[fto].Picture.Bitmap.ScanLine[yy + (p Shr 4) Shl 5];
      For xx := 0 To 31 Do
      Begin
        If xx > 31 Then break;
        d2[(xx + (p Mod 16) Shl 5) * 4 + 0] := d[(31 - xx + (p Mod 16) Shl 5) * 4 + 0]; //r
        d2[(xx + (p Mod 16) Shl 5) * 4 + 1] := d[(31 - xx + (p Mod 16) Shl 5) * 4 + 1]; //g
        d2[(xx + (p Mod 16) Shl 5) * 4 + 2] := d[(31 - xx + (p Mod 16) Shl 5) * 4 + 2]; //b
      End;
    End;
  End;

  mainform.dximagelist1.Items[fto].picture.Bitmap.PixelFormat := pf24bit;
  mainform.dximagelist1.Items[from].picture.Bitmap.PixelFormat := pf24bit;
End;

Function isbonus(sxx, syy: integer): integer; // return obj handle
Var i               : integeR;
Begin
  For i := 0 To length(game.objs) - 1 Do
//i:=1;
    With game.objs[i] Do
      If typo = 78 Then
      Begin
        If (sxx >= xx - 16) And (sxx <= xx + 16) And
          (syy >= yy - 16) And (syy <= yy + 16) Then
        Begin
          game.score := game.score + (typo - 77) * 100;
          result := i;
          With game.gamma Do
          Begin
            r := 1.1;
            g := 1.1;
            b := 1.1;
          End;
          exit;
        End;
      End;
  result := -1;
End;

Function isdoor(sxx, syy: integer): integer; // return obj handle
Var i               : integeR;
Begin
  For i := 0 To length(game.objs) - 1 Do
//i:=1;
    With game.objs[i] Do
      If typo = 50 Then
      Begin
        If (sxx >= xx - 16) And (sxx <= xx + 16) And
          (syy >= yy - 16) And (syy <= yy + 16) Then
        Begin
          result := i;
          exit;
        End;
      End;
  result := -1;
End;






Function IsBlock(xx, yy: integer): integer;
Var dx, dy          : integer;
  gl                : integer;
Begin
  If xx < 0 Then Begin;
    result := 1;
    exit;
  End;
  If xx > game.level.info.width Shl 5 - 1 Then Begin;
    result := 1;
    exit;
  End;
  If yy > game.level.info.height Shl 5 - 1 Then Begin;
    result := -1;
    exit;
  End;
  If yy < -28 Then Begin;
    result := 1;
    exit;
  End;
  If yy < 0 Then Begin;
    result := -1;
    exit;
  End;

  dx := xx - ((xx Shr 5) Shl 5);
  dy := yy - ((yy Shr 5) Shl 5);

//if mainform.DXImageList1.Item[1].patterns.pixe
  gl := game.level.l[GameLayer][xx Shr 5, yy Shr 5];


  If gl < 0 Then
  Begin
    result := gl;
  End Else If bmask[gl, dx, dy] Then result := -1 Else result := gl;
End;

Var lo              : integer;

Function isobj(cx, cy: single; discard: integer): integer;
Var i               : integer;
Begin
  result := -1;
  For i := 0 To length(game.objs) - 1 Do
    If (i <> discard) Then
      With game.objs[i] Do
        If typo > 0 Then
          If (cx >= xx) And (cx <= xx + 31) And
            (cy >= yy) And (cy <= yy + 31) Then
          Begin
            result := i;
            lo := i;
            break;
          End;
End;

Procedure TMainForm.killenemy(objnr: integer);
Begin
  With game.objs[objnr] Do
  Begin
    game.score := game.score + (typo - 100) * 200;
    dec(energy);
    stall := 10;
    If energy = 0 Then
    Begin
      stall := 255;
      pic := 8 + (typo - 100 + 7) * 16;
      typo := 99;
      pushable := false;
      pusher := false;
      tag := 'D谼';
      invince := 255;
    End;
    playsoundfx(xx + 16, yy + 16, 4);
    With game.gamma Do
    Begin
      r := 1;
      g := 1.5;
      b := 1;
    End;
  End;
End;

Procedure tmainform.killjoffa(objnr, enemynr: integer);
Begin
  With game.objs[objnr] Do
  Begin
    If pic = 7 Then
    Begin
      killenemy(enemynr);
      crashx := false;
      game.objs[enemynr].ay := -12;
      game.objs[enemynr].oy := game.objs[enemynr].yy;
      game.objs[enemynr].vx := vx * 2;
      exit;
    End;
    If tag = '' Then
    Begin
      PlaySoundFX(xx, yy, 7);
      typo := 99;
    End Else
    Begin
      PlaySoundFX(xx, yy, 7);
      tag := '';
    End;
    pic := 8;
    stall := 255;
    ay := -8;
    oy := yy;
    With game.gamma Do
    Begin
      r := 2;
      g := 0.5;
      b := 0.5;
    End;
  End;
End;


Function tmainform.pushobjsx(cx, cy, dx: single; discard, level: integer): boolean;
Var i               : integer;
Begin
  result := false;
  For i := 0 To length(game.objs) - 1 Do
    If (i <> discard) Then
      With game.objs[i] Do
        If typo > 0 Then
          If (cx >= xx) And (cx <= xx + 32) And
            (cy >= yy) And (cy <= yy + 31) Then
          Begin
            If (game.objs[discard].stall = 0) Then
              If (typo >= 100) And (game.objs[discard].typo = 1) Then
              Begin
                killjoffa(discard, i);
//          result:=true;
                exit;
              End;
            If yy < game.objs[discard].yy - 26 Then
              If stall = 0 Then
                If (typo = 1) And (game.objs[discard].typo >= 100) Then
                Begin
                  killjoffa(i, discard);
//          result:=true;
                  exit;
                End;
            If (typo >= 100) And (game.objs[discard].typo = 30) Then
            Begin
              tag := 'MOS';
              game.objs[discard].typo := 0;
              ax := ax + game.objs[discard].vx;
              ay := -2;
              oy := yy;
              playsoundfx(xx + 16, yy + 16, 4);
              With game.gamma Do
              Begin
                r := 1;
                g := 1.5;
                b := 1;
              End;
              exit;
            End;

            If (game.objs[discard].pusher) And (pusher) And
              (pushable) And (game.objs[discard].pushable) Then result := true;

            If (pusher) And (game.objs[discard].pushable) Then result := true;
            If (game.objs[discard].pusher) And (pushable) Then
              If crashx Then
              Begin
                crashx := false;
                moveobject(i, dx, 0, level + 1);
//        ax:=ax+dx;
                crashx := true;
              End Else
              Begin
                moveobject(i, dx, 0, level + 1);
//        ax:=ax+dx;
                If crashx Then crashx := true;
              End;
          End;
End;

Function tmainform.pushobjsy(cx, cy: single; Var dy: single; discard, level: integer): boolean;
Var i               : integer;
Begin
  result := false;
  For i := 0 To length(game.objs) - 1 Do
    If (i <> discard) Then
      With game.objs[i] Do
        If typo > 0 Then
          If (cx >= xx) And (cx <= xx + 32) And
            (cy >= yy) And (cy <= yy + 31) Then
          Begin
            If (typo = 40) And (dy < 0) Then // [?] boks
            Begin
              pic := pic + 1;
              inc(typo);
              stall := 0;
              result := true;
              playsoundfx(xx + 16, yy + 16, 2);

              If itag <> -1 Then
                With game.objs[CreateObjectOfBlock(itag, game.objs[i].xx, game.objs[i].yy - 32)] Do
                Begin
                  ay := -8;
                  oy := yy;
                  gravity := true;
                End
              Else
                With game.objs[gethandle] Do
                Begin
                  xx := game.objs[i].xx;
                  yy := game.objs[i].yy - 32;
                  ay := -8;
                  oy := yy;
                  pic := 2 * 16 + 15;
                  typo := 78;
                  If isblock(trunc(xx) + 16, trunc(yy) + 16) > 0 Then
                  Begin
                    blockcrash := true;
                    typo := 98;
                    PlaySoundFX(xx, yy, 3);
                    stall := 255;
                    invince := 255;
                    ay := -2;
                    oy := yy;
                  End;
                End;                    {}
              exit;
            End;                        {}

            If (istrampo) And (dy > 0) Then
            Begin
              stall := 0;
              game.objs[discard].ay := -16;
              dy := 0;
              game.objs[discard].oy := game.objs[discard].yy;
              playsoundfx(xx + 16, yy + 16, 1);
              exit;
            End;

            If (typo >= 100) And (game.objs[discard].typo < 100) Then
              If ((dy > 0) And (yy - 28 > game.objs[discard].yy)) Or (game.objs[discard].typo = 30) Then
              Begin
                game.objs[discard].ay := -8;
                game.objs[discard].oy := game.objs[discard].yy;
                dy := 0;
                killenemy(i);
                exit;
              End;

            If (game.objs[discard].pusher) And (pusher) And
              (pushable) And (game.objs[discard].pushable) Then result := true;

            If (pusher) And (game.objs[discard].pushable) Then
            Begin
              result := true;
              If (dy > 0) And (yy - 31 > game.objs[discard].yy) Then
              Begin
                game.objs[discard].ox := game.objs[discard].ox + vx;
                moveobject(discard, vx, 0, level + 1);
              End;
            End;
            If (game.objs[discard].pusher) And (pushable) Then
              If crashy Then
              Begin
                crashy := false;
                moveobject(i, 0, dy, level + 1);
                crashy := true;
//        ay:=ay+dy;
              End Else
              Begin
                moveobject(i, 0, dy, level + 1);
//        ay:=ay+dy;
                If crashy Then crashy := true;
              End;
          End;
End;




Procedure TMainForm.MoveObject(obj: integer; dvx, dvy: single; level: integer);
Var l               : integer;
  len, dx, dy       : single;

  Procedure movestep;
  Var i             : integer;
  Begin
    With game.objs[obj] Do
    Begin
      If (pusher) Or (pushable) Then
        For i := 0 To 1 Do
        Begin
          If Not crashx Then crashx := pushobjsx(xx + dx + 16, yy + i * 31, dx, obj, level + 1);
          If Not crashy Then crashy := pushobjsy(xx + 16, yy + dy + i * 31, dy, obj, level + 1);
        End;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品日产欧美久久久久| 欧美国产精品久久| 国产精品1区二区.| 亚洲一区二区三区爽爽爽爽爽| 日韩一级在线观看| 91福利视频网站| 国产成人综合在线| 麻豆精品视频在线观看免费| 一区二区三区日韩欧美| 中文字幕精品综合| 91精品国产91久久综合桃花| 色综合久久99| 豆国产96在线|亚洲| 国产一区二区在线视频| 日韩 欧美一区二区三区| 亚洲永久精品大片| 中文字幕日韩av资源站| 国产午夜精品福利| 精品国产露脸精彩对白| 5858s免费视频成人| 欧美色老头old∨ideo| 色拍拍在线精品视频8848| 成人av综合在线| 国产成人午夜精品影院观看视频| 精品在线视频一区| 男男gaygay亚洲| 日本午夜一本久久久综合| 香蕉成人啪国产精品视频综合网| 玉足女爽爽91| 亚洲麻豆国产自偷在线| 最新国产精品久久精品| 国产精品国模大尺度视频| 国产欧美日韩在线观看| 国产亚洲人成网站| 国产欧美日韩不卡免费| 国产日韩av一区二区| 久久久久久久久蜜桃| 精品国产污网站| 久久久久久久久久久久电影| www成人在线观看| 久久精品一区二区三区四区| 久久久夜色精品亚洲| 欧美国产丝袜视频| 中文幕一区二区三区久久蜜桃| 国产精品蜜臀在线观看| 亚洲色图另类专区| 亚洲资源中文字幕| 亚洲mv在线观看| 老司机午夜精品| 国产乱码字幕精品高清av| 床上的激情91.| 一本色道综合亚洲| 欧美图区在线视频| 欧美一区二区三区电影| 精品国产免费一区二区三区四区 | 麻豆91精品91久久久的内涵| 日韩精品视频网| 国产一区二区导航在线播放| 国产91丝袜在线播放九色| 99久久国产综合色|国产精品| 91久久精品一区二区二区| 欧美人xxxx| 26uuu精品一区二区| 国产精品网曝门| 亚洲一区二区三区四区五区黄 | 成人国产亚洲欧美成人综合网| 成人激情文学综合网| 欧亚一区二区三区| 欧美电影免费观看高清完整版| 国产日产欧美一区二区三区| 一级精品视频在线观看宜春院| 五月天欧美精品| 国内精品视频一区二区三区八戒 | 亚洲精品一线二线三线| 国产精品美女久久久久久| 亚洲美女免费在线| 久久精工是国产品牌吗| 丁香婷婷综合激情五月色| 在线亚洲欧美专区二区| 日韩视频免费直播| 国产精品全国免费观看高清| 亚洲大片精品永久免费| 国产精品综合一区二区三区| 欧美在线999| 日韩精品一区二区三区中文精品| 国产精品欧美一区喷水| 亚洲午夜激情网站| 成人综合在线观看| 欧美伦理电影网| 国产精品三级视频| 日韩高清一区二区| av成人免费在线观看| 日韩丝袜美女视频| 一区二区三区影院| 国产成人午夜电影网| 欧美日韩一级二级| 国产精品进线69影院| 国内精品视频666| 在线综合亚洲欧美在线视频| 中文字幕在线一区免费| 麻豆91在线播放免费| 欧美三级资源在线| 中文字幕成人网| 另类小说综合欧美亚洲| 欧美在线啊v一区| 中文字幕一区二区三区四区不卡| 久久综合综合久久综合| 欧美日韩日日骚| 亚洲日本乱码在线观看| 国产丶欧美丶日本不卡视频| 欧美一区二区三区视频在线观看| 亚洲欧美日韩一区二区| 成人av先锋影音| 国产日韩三级在线| 黄页视频在线91| 欧美va在线播放| 水野朝阳av一区二区三区| 欧美性xxxxx极品少妇| 17c精品麻豆一区二区免费| 国产成人综合自拍| 久久久精品免费免费| 精品一区在线看| 国内成人免费视频| 亚洲亚洲精品在线观看| 亚洲成人7777| 欧美在线一区二区三区| 亚洲裸体在线观看| 一本大道av伊人久久综合| 国产精品国产自产拍高清av王其| 国产激情一区二区三区四区| 欧美成人激情免费网| 蜜臀精品久久久久久蜜臀| 欧美一区午夜视频在线观看| 天天影视网天天综合色在线播放| 精品视频一区二区三区免费| 一区二区免费在线| 欧美又粗又大又爽| 婷婷久久综合九色国产成人| 久久免费精品国产久精品久久久久| 久久久精品综合| 一级女性全黄久久生活片免费| 三级亚洲高清视频| 国产激情91久久精品导航 | 欧美私模裸体表演在线观看| 欧美一区二区三区四区视频| 欧美激情一区二区在线| 一区二区三区在线高清| 韩国女主播一区二区三区| aaa亚洲精品| 91麻豆精品国产自产在线| 久久久久国产成人精品亚洲午夜| 亚洲天堂a在线| 日韩电影在线一区二区三区| 成人永久免费视频| 欧美精品tushy高清| 国产精品白丝在线| 精品午夜一区二区三区在线观看| 99久免费精品视频在线观看| 欧美一区二视频| 亚洲丝袜另类动漫二区| 国产一区二区视频在线| 欧美性淫爽ww久久久久无| 久久久久国产免费免费| 午夜精品爽啪视频| 99精品欧美一区二区三区小说| 日韩欧美国产系列| 一个色综合av| 99精品在线免费| 精品国产一区二区三区久久影院| 亚洲综合区在线| 不卡视频一二三四| 久久综合色8888| 蜜桃在线一区二区三区| 欧洲精品一区二区| 国产精品福利影院| 国产最新精品精品你懂的| 欧美精品在欧美一区二区少妇| 成人欧美一区二区三区1314| 国产一二精品视频| 欧美一区二区高清| 午夜伦欧美伦电影理论片| 色老头久久综合| 国产精品久久毛片a| 国产高清亚洲一区| 精品国产123| 免费的成人av| 欧美一区二区三区系列电影| 婷婷夜色潮精品综合在线| 欧美午夜精品一区二区三区| 18欧美亚洲精品| 91丨porny丨中文| 亚洲精品中文在线影院| 99精品久久99久久久久| 国产精品毛片久久久久久| 懂色av中文一区二区三区| 久久精品一区四区| 成人听书哪个软件好| 国产精品免费视频观看| 成人av网站免费观看| 国产精品人成在线观看免费 |