拖延症晚期的我原本计划趁着周末写个年终总结,但是一直没有什么思路,想来想去也没想到要写啥就胡乱写了这么一个小东西。
一直比较痴迷游戏行业,可能我不太适合做前端,应该去学C++....
首先当然是选择一张背景图,作为整个场景中的地图,而且要大要高清。布局到页面中。
然后通过可视区值展示这张图片的一小部分。我这里用的是宽600,高420的,超出直接隐藏掉。
width: 600px; height: 420px;
这样一个简单的场景就写好了,接着我们需要在这个场景中加入我们的人物。也就是游戏中的角色。不过游戏贴图实在是太难了,我也没有时间自己去设计,所以直接在网上找了火柴人的gif好像是DNF的技能图,通过PS的处理,截取其中的几个重要动作,加入的到页面中。
现在角色有了,地图也有了,我们应该让人物动起来了,我的做法是让人物固定在窗口的中心位置,当人物移动的时候通过移动背景来让人物看起来有动的效果。
所以我这里在监听键盘事件的时候做了两件事,第一是更换人物的贴图,让人物有动起来的姿势,第二是改变背景图的位置,看起来确实就是在跑。
import Scene from './components/Scene'; import Games from './components/Games'; import Person from './components/Person'; const direct = { // 有效按键 87: 'up', 65: 'left', 83: 'down', 68: 'right', 74: 'j', 75: 'k', 76: 'l', 13: 'enter', 27: 'esc' } const keys = []; // 当前按键 // 初始化窗口 const App = new Games(); const client = App.getEle(); // 初始化场景, 场景要放在窗口中 const scene = new Scene(bgi, client); // 初始化人物,人物也要放在窗口中 const person = new Person({ name: '隐冬', level: 1, }, client) // 监听按键 window.addEventListener('keydown', (e) => { const key = direct[e.keyCode]; if (!keys.includes(key) && key) { // 有效按键 keys.push(key); scene.move(keys); // 执行场景变换 person.action(keys); // 切换人物动作 } }) // 监听按键 window.addEventListener('keyup', (e) => { const key = direct[e.keyCode]; const idx = keys.indexOf(key); if (idx >= 0 && key) { // 有效按键 keys.splice(idx, 1); scene.move(keys); // 执行场景变换 person.action(keys); // 切换人物动作 } })
然后这里加入血槽等级,人物名称,血量值。
人物这里是一个class类,可以通过实例化的方式创建很多个人物,然后让他们满屏幕的乱跑,我这里通过实例化的时候判断人物是否是机器人,通过随机数的方式定义人物自己的动作。
技能就比较难看了,也是网上随便找的效果图,看淡了,有就行要求别那么高。
打斗也很简单,就是角色在放技能的时候计算周边其他的角色的距离,从而判定是否击中,然后让血量降低。公告系统,这些都有写,不过定时器太多造成了内存泄露我还得想想怎么优化一下。
github地址分享给大家,感兴趣的同学可以自己写写,还挺有意思的,真的是越写越停不下来,我这是什么毛病。
自取链接
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。