TAT.svenzeng HTML5 街头霸王游戏 (开放源码)
In 未分类 on 2012年05月29日 by view: 38,410
33

主机控制键:

  • 移动: W: 上, D: 前, A: 后, S:下
  • 攻击: J: 轻拳, K: 重拳, U: 轻腿, I: 重腿
  • 特殊技能: 下→前→拳: 波动拳, 下→后→腿:旋风腿, 前→下→前→拳:升龙拳

 

副机(小键盘):

 

  • 移动: ↑: 上, ←: 前, →: 后, ↓:下
  • 攻击: 1: 轻拳, 2: 重拳, 4: 轻腿, 5: 重腿
  • 特殊技能: 下→前→拳: 波动拳, 下→后→腿:旋风腿, 前→下→前→拳:升龙拳

 

其他:

  • 按 F2 暂停游戏, 1 键大战电脑 ai, 2 键双人对打.
  • 如果控制不了, 注意切换下输入法哈.

 

图片素材来自互联网, 原作者 Random. 游戏版权归 CAPCOM 公司所有. 欧洲杯之前加上 websocket 和 3D 音效.

 

开发过程介绍

大概是 1个月前开始学习HTML5, 就写了这样一个东东练手不过说来惭愧至今也只学会了canvasdrawImage. 每天的业余时间不太固定有时候一天能写三小时有时候一天能写三分钟代码也写的相当潦草总的来说有点虎头蛇尾本来准备找个时间再重构一下突然发现失去了兴致欧洲杯又马上开始了对我来说已经差不多达到练手的目的所以还是罢了.

非常简单的记录一些实现思路暂且不讨论api. 一是因为api到处可以查阅二是因为我确实只认识drawImag. 本人技术也十分有限请轻砸.

代码里只有几个 js文件每个文件的功能如下:

  • Class.js   创建类和对象.
  • Game.js   游戏入口文件.
  • Map.js    绘制地图.
  • Config.js  各种游戏人物动作打架挨打等等配置.
  • Interface.js 各种接口
  • Main.js    负责游戏逻辑
  • Ai.js      Ai
  • Timer.js   全局定时器
  • Class.js.

为毛要搞这样一个东西呢保护原型继承的时候修正 constructor 什么的, 反正现在不搞个 Class.create都有点不太好意思

这里也借鉴了 prototype框架里的一些思路相对于prototype里的换汤不换药这儿的class.create选择返回一个普通的object对象有点像jquery$的搞法

这样可以自由的扩展 Class的各种方法,而不用再搭理Function的原型举个例子, Class.empty()可以秒杀这个类生成的所有对象比如现在正在设计一个飞机游戏有个大招可以清除屏幕上的所有子弹和敌机那么哼哼.. 

因为 Class.create返回的是一个普通的object. 所以不能用new Function的方式生成对象具体使用方法如下例.