首 页 | 多媒体开发 | 合成 | 图象设计 | 动画制作 | 音频编辑 | 网站建设 | 新书上市 | 虚拟主机
论 坛 | 加入人才库 | 下载中心 | 作品展示 | 项目承接 | 光盘压制 | 企业展台 | 原创投稿 | 认证培训
bryce
 

制作街头格斗风格的游戏()

作者:Adam Montandon(作者); w_jm (翻译)
来源:www.stormsky.com/www.mobiusclub.com


制作DJ的格斗
这里是DJ的行为脚本,你可以看到它非常类示Karin的行为脚本。这次我去掉了大量的注释,因此你看看能领会到什么。.把这些代码作为行为并拖放到DJ所在的精灵通道7上。
property mycounter
property myQlist
property spritenum
property health
on beginsprite me
  sprite(spritenum).mycounter = 0
  sprite(spritenum).myqlist = [#blank,#blank]
  sprite(spritenum).health = 200
end
---recive events
on punch me
  if sprite(spritenum).myQlist[1] = #blank then
    sprite(spritenum).myQlist[1] = #punch
    sprite(spritenum).mycounter = 0
  else
    sprite(spritenum).myQlist[2] = #punch
  end if
end
on kick me
  if sprite(spritenum).myQlist[1] = #blank then
    sprite(spritenum).myQlist[1] = #kick
    sprite(spritenum).mycounter = 0
  else
    sprite(spritenum).myQlist[2] = #kick
  end if 
end
on left me
  if sprite(spritenum).myQlist[1] = #blank then
    sprite(spritenum).myQlist[1] = #left
    sprite(spritenum).mycounter = 0
  else
    sprite(spritenum).myQlist[2] = #left
  end if
end
on right me
  if sprite(spritenum).myQlist[1] = #blank then
    sprite(spritenum).myQlist[1] = #right
    sprite(spritenum).mycounter = 0
  else
    sprite(spritenum).myQlist[2] = #right
  end if
end
on exitframe me
  --this is its frame tikker
  ---puts in the next move
  
  --animation
  case sprite(spritenum).myQlist[1of
    #blank:
      a = (1) + sprite(spritenum).mycounter mod 8
      sprite(spritenum).member = (member a of castlib("DJ"))
      sprite(spritenum).mycounter = sprite(spritenum).mycounter + 1
      if sprite(spritenum).mycounter/8 = 1 then
        sprite(spritenum).mycounter = 0
        --shift list
        sprite(spritenum).myqlist[1] = sprite(spritenum).myqlist[2]
        sprite(spritenum).myqlist[2] = #blank
      end if
      
    #punch:
      a = (16) + sprite(spritenum).mycounter mod 8
      sprite(spritenum).member = (member a of castlib("DJ"))
      sprite(spritenum).mycounter = sprite(spritenum).mycounter + 1
      if sprite(spritenum).mycounter/8 = 1 then
        sprite(spritenum).mycounter = 0
        --shift list
        sprite(spritenum).myqlist[1] = sprite(spritenum).myqlist[2]
        sprite(spritenum).myqlist[2] = #blank
      end if
      --collision 
      if sprite(spritenum).mycounter/2.0 = 1 then
        if sprite 7 intersects 4 then
          sprite(4).health = sprite(4).health - 10
          sprite(4).locz = 8
          sprite(spritenum).locz = 9 
        end if
        
      end if
      
    #kick:
      a = (9) + sprite(spritenum).mycounter mod 7
      sprite(spritenum).member = (member a of castlib("DJ"))
      sprite(spritenum).mycounter = sprite(spritenum).mycounter + 1
      if sprite(spritenum).mycounter/7 = 1 then
        sprite(spritenum).mycounter = 0
        --shift list
        sprite(spritenum).myqlist[1] = sprite(spritenum).myqlist[2]
        sprite(spritenum).myqlist[2] = #blank
      end if
      --collision
      if sprite(spritenum).mycounter/4.0 = 1 then
        if sprite 7 intersects 4 then
          sprite(4).health = sprite(4).health - 10
          sprite(4).locz = 8
          sprite(spritenum).locz = 9
        end if
        
      end if
      
    #left:
      a = (24) + sprite(spritenum).mycounter mod 7
      sprite(spritenum).member = (member a of castlib("DJ"))
      sprite(spritenum).mycounter = sprite(spritenum).mycounter + 1
      sprite(spritenum).loch = sprite(spritenum).loch - 6
      
      if sprite(spritenum).mycounter/7 = 1 then
        sprite(spritenum).mycounter = 0
        --shift list
        sprite(spritenum).myqlist[1] = sprite(spritenum).myqlist[2]
        sprite(spritenum).myqlist[2] = #blank
        --check to see if you should turn
        if sprite(spritenum).loch < sprite(4).loch then
          sprite(spritenum).fliph = 0
        end if
        
      end if
      
    #right:
      a = (31) + sprite(spritenum).mycounter mod 7
      sprite(spritenum).member = (member a of castlib("DJ"))
      sprite(spritenum).mycounter = sprite(spritenum).mycounter + 1
      sprite(spritenum).loch = sprite(spritenum).loch + 6
      if sprite(spritenum).mycounter/7 = 1 then
        sprite(spritenum).mycounter = 0
        --shift list
        sprite(spritenum).myqlist[1] = sprite(spritenum).myqlist[2]
        sprite(spritenum).myqlist[2] = #blank
        --check to see if you should turn
        if sprite(spritenum).loch > sprite(4).loch then
          sprite(spritenum).fliph = 1
        end if
      end if
      
  end case
end 

(一)(二)(三)(四)


.