Rumah  >  Artikel  >  hujung hadapan web  >  韩顺平H5游戏开发坦克大战视频源码课件分享

韩顺平H5游戏开发坦克大战视频源码课件分享

黄舟
黄舟asal
2017-12-04 11:28:162771semak imbas

《韩顺平H5游戏开发坦克大战视频教程》是选自韩顺平的网络公开课,介绍了如何使用HTML5来制作坦克大战游戏,对H5的技术有很显著的提高.我将会带着大家做一个3D的俯视坦克大战游戏。将从最基本的控制,到敌人的AI与整个游戏的系统等一步步的带着大家实现一个完整的游戏。教程中我们重点是程序与Unity的使用,因此美术资源将不会做太多的讲述。我会用一个来自Unity官方Training Day的资源包,

AF1LDP@VF%NY(FD_HDN4K1W.png

课程播放地址:http://www.php.cn/course/409.html

该老师讲课风格:

讲课亲切自然,朴实无华,没有矫揉造作,也不刻意渲染,而是娓娓而谈,细细道来,师生之间在一种平等、协作、和谐的气氛下,进行默默的情感交流,将对知识的渴求和探索融于简朴、真实的教学情景之中,学生在静静的思考、默默的首肯中获得知识

本视频中较为难点是制作思路了:

键盘事件触发问题:

如果需要玩家通过按键操控坦克进行运动,很多人第一个想到的应该就是把相应的运动函数绑定到相应按键的onkeydown事件之上。

一般来说这么写有一个问题,那就是为了防止诸如像老人松手慢导至键盘事件多次触发这种情况,只有当你按下按键到一定的时间以后事件才会连续进行触发。

这个问题反应到游戏上就是你的坦克总是要在你按下按键后过一段时间才会开始连续运动,非常影响游戏体验。

这个问题的解决方法很简单:

let keyInfo = {};     //按键是否被按下的信息let aKey = [72 , 74 , 87 , 83 , 65 , 68 , 38 , 40 , 37 , 39 , 17];      //这里面的数字是wasdhj等按键的键值
for (let i = 0; i < aKey.length; i++) {
    keyInfo[aKey[i]] = {
        pressed : false
    }
}

将按键的键值作为属性名,将按键状态储存到keyInfo对象中,初始值都为false,表明按键未按下。

在按下键盘上相应的按键的时候,通过事件委托直接捕获到按下按键的keyCode也就是键值。

onkeydown事件触发以后将keyInfo中对应的属性设置为true,表明按键被按下,在onkeyup事件触发以后再将keyInfo中对应的属性设置为false。

最后在游戏中循环检测keyInfo中对应按键的属性的真假并执行相应的操作就可以了

路径问题:

在不提坦克与子弹之间的碰撞问题的前提下,路径问题基本上就是在确定你的坦克跟子弹(子弹的问题其实更复杂一点,后面再详细讨论)在地图上哪里能走哪里不能走,虽然这个问题并不是很复杂,但在我看来这个问题可以说是整个游戏的核心所在,因为后面很多问题都是围绕着路劲而来。

等等

这里还给大家推荐了源码资源的下载:http://www.php.cn/xiazai/learn/2048

资源里面给大家分享了视频课件以及ppt:

  1. 素材

  2. 文档

  3. 源码

Atas ialah kandungan terperinci 韩顺平H5游戏开发坦克大战视频源码课件分享. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn