精华内容
下载资源
问答
  • H5小游戏

    2020-04-20 07:34:27
    实战学习手机游戏开发。适合初学者。
  • h5小游戏

    千次阅读 2018-01-26 17:11:48
    最近在写h5小游戏,对h5互动游戏用到的技术有些心得,分享给大家。代码地址:https://github.com/mengYu007/game 一:2d动画 1.transforms功能的基础知识  transform:rotate(45deg);旋转45度  transform:...

    最近在写h5小游戏,对h5互动游戏用到的技术有些心得,分享给大家。代码地址:https://github.com/mengYu007/game

    一:2d动画

    1.transforms功能的基础知识
            transform:rotate(45deg);旋转45度
            transform:scale(0.5);缩小0.5,一个参数:水平与垂直都缩小0.5,
                                                          两个参数:X轴扩大或缩小,Y轴扩大或缩小;
            transform:skew(30deg,30deg);倾斜,一个参数:X轴倾斜30deg,
                                                                       两个参数:X轴,Y轴;
            transform:translate(100px,100px);移动,一个参数:X轴移动;
                                                                            两个参数:先移动X轴,后Y轴;
    2.对一个元素使用多种变形
            1).transform:translate(150px,200px)  rotate(45deg) scale(1.5);
                先向右移动150px,向下移动200px,然后旋转45deg,最后放大1.5倍;
            2).基准点:在使用transform方法进行文字或图像的变形时,是以元素的中心点为基准进行变形的;
                 transform-origin:可以改变变形的基准点
                基准点在水平方向的位置可以指定的值lef,center,right;
                基准点在垂直方向上的位置可以指定的值为top,center,bottom;
    二:3d动画
    1.transition功能
        tansition:参1:对哪个属性进行平滑过渡    
                      参2:在多久时间内完成属性值的平滑度过,
                      参3:通过什么方法进行平滑过度
                      参4:指定变换动画特效延迟多久后开始执行;
        例:div{
                        position:absolute;
                        top:70px;
                        left:70px;
                        width:300px;
                        height:300px;
                        background:red;
                        transform:rotate(0deg);
                        transition:right 1s linear, transorm:1s linear
                }
               div:hover{
                         right:300px;
                        transform:rotate(720deg);
                }
    2:animation功能
    语法:
    @keyframes  关键帧集合名{
           0%{}    
            50%{}
            100%{}
    }
    animation:关键帧集合名    动画的执行时长    动画的实现方法  延迟多少秒后执行    动画的执行次数    动画的执行方向  
    除这三个属性外:可以是使用如下属性。
    animation-delay:2s;延迟多少秒后执行    
    animation-iteration-count:用于指定动画的执行次数,可指定为infinite(无限次)
    animation-diretion:用于指定动画的执行方向。可指定属性值包括
    normal:初始值(动画执行完毕后返回初始状态)
    alternate:交替更改动画的执行方向
    reverse:反方向执行动画
    alternate-reverse:从反方向开始交替更改动画的执行方向。

    理解steps
    steps 函数指定了一个阶跃函数
    第一个参数指定了时间函数中的间隔数量(必须是正整数)
    第二个参数可选,接受 start 和 end 两个值,指定在每个间隔的起点或是终点发生阶跃变化,默认为 end。
    step-start等同于steps(1,start),动画分成1步,动画执行时为开始左侧端点的部分为开始;
    step-end等同于steps(1,end):动画分成一步,动画执行时以结尾端点为开始,默认值为end。 
    第一个参数:                         
    steps的设置都是针对两个关键帧之间的,而非是整个keyframes,所以第一个参数对 - 次数对应了每次steps的变化
    换句话说也是 0-25 之间变化5次,  25-50之间 变化5次 ,50-75 之间变化5次,以此类推                      
     第二个参数:
    可选,接受 start 和 end 两个值,指定在每个间隔的起点或是终点发生阶跃变化,默认为 end
    通过案例看下 step-startstep-end 的区别
    @-webkit-keyframes circle {
    0% {background: red}
    50%{background: yellow}
    100% {background: blue}
    }
    step-start : 黄色与蓝色相互切换
    step-end  : 红色与黄色相互切换
    2个参数都会选择性的跳过前后部分,start跳过0%,end跳过100%
    step-start在变化过程中,都是以下一帧的显示效果来填充间隔动画,所以0% 到 50%  直接就显示了黄色yellow;
    step-end与上面相反,都是以上一帧的显示效果来填充间隔动画,所以0% 到 50% 直接就显示了红色red;                 

    方法 属性的变化速度
    linear       均速变化
    ease-in   又慢到快
    ease-out   由快到慢
    ease        由慢到快再到慢
    ease-in-out    由慢到快再到慢

    语法

    animation-fill-mode 属性规定动画在播放之前或之后,其动画效果是否可见。
    animation-fill-mode : none | forwards | backwards | both;
    描述
    none 不改变默认行为。
    forwards 当动画完成后,保持最后一个属性值(在最后一个关键帧中定义)。
    backwards 在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义)。
    both 向前和向后填充模式都被应用。
    区别:transition只能通过指定属性的开始值与结束值,然后在这两个属性之间进行平滑过渡的方式来实现动画。
             animation通过定义多个关键帧以及定义每个关键帧元素中的属性值来实现更为复杂的动画效果。


                        
                          
                   



    展开全文
  • H5 小游戏

    2018-06-25 20:30:33
    实现2.5D效果, 解决高效绘制地图以及人和物体前后视觉关系 ,绘制多层图层。

    实现2.5D效果, 解决高效绘制地图以及人和物体前后视觉关系 ,绘制多层图层。





    源码下载


    展开全文
  • h5小游戏,多款小游戏
  • h5小游戏源码

    2018-08-16 09:17:48
    一个简单的h5小游戏源码,包含源文件,可直接在平台运行
  • 微信h5小游戏源码

    2018-08-03 09:27:14
    经典微信h5小游戏源码,可直接运行 经典微信h5小游戏源码,可直接运行
  • H5小游戏源码

    2018-06-06 22:32:28
    60套H5小游戏的源码,自带一套前台的模板。内含火柴人,熊出没,神经猫2等多款游戏。
  • H5小游戏 2048源码

    2018-09-20 10:12:17
    H5小游戏 2048源码,亲测可用, 微信小游戏,营销小游戏
  • 疫情在家游戏玩腻了?那就一起来开发H5小游戏

    万次阅读 多人点赞 2020-05-05 15:40:35
    作为一名合格的程序员,应该自己开发小游戏来玩,玩腻了,自己就再去开发个游戏,利用这一特点实现永动机。既可以学习,也可以娱乐。 本次开发的是贪吃蛇小游戏。使用技术:html、css、原生js、部分es6语法 贪吃蛇...

    前提:游戏玩腻了?作为一名合格的程序员,应该自己开发小游戏来玩,玩腻了,自己就再去开发个游戏,利用这一特点实现永动机。既可以学习,也可以娱乐。
    在这里插入图片描述
    本次开发的是贪吃蛇小游戏。使用技术:html、css、原生js、部分es6语法

    贪吃蛇实现原理:利用绝对定位的left和top来小蛇进行移动

    开发游戏的思路:

    1. 首先在页面上放一个大的盒子(box),加上border,相当于一个围栏。这个大盒子就是游戏区域。
    2. 在box中,又四个盒子,2个body盒子作为蛇的身体(初始长度为2),snake作为蛇头部,food作为食物。
    3. 将蛇的身体的第一段放在left:0;right:0这个位置,第二段向右偏移50px(因为蛇的一段身体的宽高是50*50),蛇的头部向右偏移100px。这就是蛇的初始位置。
    4. 蛇的移动:我们要知道,蛇的身体是跟着蛇的方向来移动的。我们可以通过移动蛇头,然后利用循环或者递归来使蛇的一段段身体来移动(就是第一段身体移动到蛇头的位置,第二段身体移动到第一段身体的位置),为了防止蛇的身体和头部的位置重叠,我们就从最后一段开始移动,而不是使蛇头先移动。
    5. 食物的随机出现:因为我蛇每次移动都是50px,所以食物的left和top位置都是50的倍数(0-1000中),Math.floor(Math.random() * 20) * 50就是取50的倍数,范围是0-1000.
    6. 判断蛇有没有撞到身体或者吃到食物或者撞到墙:就利用蛇头的left和top跟他们比较,如果相等就撞到获取吃到食物。
    7. 自动移动:利用时间间隔函数。
    8. 其他的功能:代码注释都有详细说明,如果还有不懂的可以评论或者私信我!
    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title></title>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
    
            .box {
                position: relative;
                width: 1000px;
                height: 1000px;
                margin: 50px auto;
                border: 1px solid red;
            }
    
            .snake {
                position: absolute;
                width: 50px;
                height: 50px;
                background-color: red;
            }
    
            .food {
                position: absolute;
                top: 100px;
                left: 100px;
                width: 50px;
                height: 50px;
                background-color: pink;
            }
    
            .body {
                position: absolute;
                top: 0;
                left: 0;
                width: 50px;
                height: 50px;
                background-color: green;
            }
        </style>
    </head>
    
    <body>
        <div class="box">
            <div class="body"></div>
            <!--由于two的style样式使用dom.style获取不到,就写到了行内样式中-->
            <div class="body" id="two" style="top:0px;left:50px"></div>
            <div class="snake"></div>
            <div class="food"></div>
        </div>
    </body>
    <script src="./贪吃蛇.js"></script>
    
    </html>
    
    class Snake {
        constructor() {
            this.snake = document.querySelector('.snake')
            this.food = document.querySelector('.food')
            this.bodys = document.querySelectorAll('.body')
            this.top = 0
            this.left = 100
            this.lastTop = '' //记录蛇身体最后一段的top
            this.lastLeft = '' //记录蛇身体最后一段的left
            this.lastBody = null //蛇的最后一段,没吃到食物为null
            this.snakeMoveByAuto = null
            this.init()
        }
        // 初始化
        init () {
            this.snake.style.top = this.top + 'px'
            this.snake.style.left = this.left + 'px'
            this.foodAppearByRandom()
            // 监听键盘的事件
            document.querySelector('body').onkeydown = (e) => {
                clearInterval(this.snakeMoveByAuto)
                switch (e.keyCode) {
                    case 87:  //w键
                        this.snakeMoveByAuto = setInterval(() => this.snakeMove(-50, 0), 500)
                        break;
                    case 65: // a键
                        this.snakeMoveByAuto = setInterval(() => this.snakeMove(0, -50), 500)
                        break;
                    case 83:  // s键
                        this.snakeMoveByAuto = setInterval(() => this.snakeMove(50, 0), 500)
                        break;
                    case 68: // d键
                        this.snakeMoveByAuto = setInterval(() => this.snakeMove(0, 50), 500)
                        break;
                }
            }
        }
        // 食物随机出现
        foodAppearByRandom () {
            let length = this.bodys.length
            this.food.style.top = Math.floor(Math.random() * 20) * 50 + 'px'
            this.food.style.left = Math.floor(Math.random() * 20) * 50 + 'px'
            // 防止食物刷新在同一位置
            if (this.snake.style.top === this.food.style.top && this.snake.style.left === this.food.style.left) {
                this.foodAppearByRandom()
            }
            // 防止食物刷新在蛇身上
            for (var i = 0; i < length; i++) {
                if (this.food.style.top === this.bodys[i].style.top && this.food.style.left === this.bodys[i].style.left) {
                    this.foodAppearByRandom()
                }
            }
        }
        // 移动蛇位置
        snakeMove (top, left) {
            let newTop = parseInt(this.snake.style.top.slice(0, -2)) + top
            let newLeft = parseInt(this.snake.style.left.slice(0, -2)) + left
            let length = this.bodys.length
    
            // 阻止蛇走出方框
            // 因为盒子的宽高是50px,就各自减50
            if (newTop < 0 || newTop > 950 || newLeft < 0 || newLeft > 950) {
                clearInterval(this.snakeMoveByAuto)
                alert('gg')
                window.location.reload()
                return
            }
    
    
            // 让蛇身体后一个跟着前一个移动
            for (var i = 0; i < length - 1; i++) {
                console.log(this.bodys[i + 1].style.left)
                this.bodys[i].style.left = this.bodys[i + 1].style.left
                this.bodys[i].style.top = this.bodys[i + 1].style.top
            }
    
            // 让蛇身体的最后部分跟着蛇的头移动
            this.bodys[length - 1].style.top = this.snake.style.top
            this.bodys[length - 1].style.left = this.snake.style.left
    
    
            // 让蛇的头部移动
            this.snake.style.top = newTop + 'px'
            this.snake.style.left = newLeft + 'px'
    
    
            // 蛇吃到食物
            if (this.snake.style.top === this.food.style.top && this.snake.style.left === this.food.style.left) {
                this.lastTop = this.bodys[0].style.top
                this.lastLeft = this.bodys[0].style.left
                this.foodAppearByRandom()
                this.snakeChangeBig()
            }
    
            // 循环判断蛇有没有撞到自己的身体
            for (var i = 0; i < length; i++) {
                if (this.snake.style.top === this.bodys[i].style.top && this.snake.style.left === this.bodys[i].style.left) {
                    clearInterval(this.snakeMoveByAuto)
                    alert('gg')
                    window.location.reload()
                }
            }
        }
        // 蛇吃到食物变大
        snakeChangeBig () {
            // 创建蛇身体最后一段
            this.lastBody = document.createElement('div')
            this.lastBody.className = 'body'
            this.lastBody.style.top = this.lastTop
            this.lastBody.style.left = this.lastLeft
            document.querySelector('.box').prepend(this.lastBody)
            // 因为添加了蛇的最后一段,所以要更新this.bodys
            this.bodys = document.querySelectorAll('.body')
        }
    }
    
    var snake = new Snake()
    

    游戏操作:使用键盘的wasd来控制方向。
    GitHub项目:https://github.com/wa545464/H5-

    小白运行教程:
    创建一个html文件,html文件内容如下,然后用浏览器打开该html文件:

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title></title>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
    
            .box {
                position: relative;
                width: 1000px;
                height: 1000px;
                margin: 50px auto;
                border: 1px solid red;
            }
    
            .snake {
                position: absolute;
                width: 50px;
                height: 50px;
                background-color: red;
            }
    
            .food {
                position: absolute;
                top: 100px;
                left: 100px;
                width: 50px;
                height: 50px;
                background-color: pink;
            }
    
            .body {
                position: absolute;
                top: 0;
                left: 0;
                width: 50px;
                height: 50px;
                background-color: green;
            }
        </style>
    </head>
    
    <body>
        <div class="box">
            <div class="body"></div>
            <!--由于two的style样式使用dom.style获取不到,就写到了行内样式中-->
            <div class="body" id="two" style="top:0px;left:50px"></div>
            <div class="snake"></div>
            <div class="food"></div>
        </div>
    </body>
    <script>
    class Snake {
        constructor() {
            this.snake = document.querySelector('.snake')
            this.food = document.querySelector('.food')
            this.bodys = document.querySelectorAll('.body')
            this.top = 0
            this.left = 100
            this.lastTop = '' //记录蛇身体最后一段的top
            this.lastLeft = '' //记录蛇身体最后一段的left
            this.lastBody = null //蛇的最后一段,没吃到食物为null
            this.snakeMoveByAuto = null
            this.init()
        }
        // 初始化
        init () {
            this.snake.style.top = this.top + 'px'
            this.snake.style.left = this.left + 'px'
            this.foodAppearByRandom()
            // 监听键盘的事件
            document.querySelector('body').onkeydown = (e) => {
                clearInterval(this.snakeMoveByAuto)
                switch (e.keyCode) {
                    case 87:  //w键
                        this.snakeMoveByAuto = setInterval(() => this.snakeMove(-50, 0), 500)
                        break;
                    case 65: // a键
                        this.snakeMoveByAuto = setInterval(() => this.snakeMove(0, -50), 500)
                        break;
                    case 83:  // s键
                        this.snakeMoveByAuto = setInterval(() => this.snakeMove(50, 0), 500)
                        break;
                    case 68: // d键
                        this.snakeMoveByAuto = setInterval(() => this.snakeMove(0, 50), 500)
                        break;
                }
            }
        }
        // 食物随机出现
        foodAppearByRandom () {
            let length = this.bodys.length
            this.food.style.top = Math.floor(Math.random() * 20) * 50 + 'px'
            this.food.style.left = Math.floor(Math.random() * 20) * 50 + 'px'
            // 防止食物刷新在同一位置
            if (this.snake.style.top === this.food.style.top && this.snake.style.left === this.food.style.left) {
                this.foodAppearByRandom()
            }
            // 防止食物刷新在蛇身上
            for (var i = 0; i < length; i++) {
                if (this.food.style.top === this.bodys[i].style.top && this.food.style.left === this.bodys[i].style.left) {
                    this.foodAppearByRandom()
                }
            }
        }
        // 移动蛇位置
        snakeMove (top, left) {
            let newTop = parseInt(this.snake.style.top.slice(0, -2)) + top
            let newLeft = parseInt(this.snake.style.left.slice(0, -2)) + left
            let length = this.bodys.length
    
            // 阻止蛇走出方框
            // 因为盒子的宽高是50px,就各自减50
            if (newTop < 0 || newTop > 950 || newLeft < 0 || newLeft > 950) {
                clearInterval(this.snakeMoveByAuto)
                alert('gg')
                window.location.reload()
                return
            }
    
    
            // 让蛇身体后一个跟着前一个移动
            for (var i = 0; i < length - 1; i++) {
                console.log(this.bodys[i + 1].style.left)
                this.bodys[i].style.left = this.bodys[i + 1].style.left
                this.bodys[i].style.top = this.bodys[i + 1].style.top
            }
    
            // 让蛇身体的最后部分跟着蛇的头移动
            this.bodys[length - 1].style.top = this.snake.style.top
            this.bodys[length - 1].style.left = this.snake.style.left
    
    
            // 让蛇的头部移动
            this.snake.style.top = newTop + 'px'
            this.snake.style.left = newLeft + 'px'
    
    
            // 蛇吃到食物
            if (this.snake.style.top === this.food.style.top && this.snake.style.left === this.food.style.left) {
                this.lastTop = this.bodys[0].style.top
                this.lastLeft = this.bodys[0].style.left
                this.foodAppearByRandom()
                this.snakeChangeBig()
            }
    
            // 循环判断蛇有没有撞到自己的身体
            for (var i = 0; i < length; i++) {
                if (this.snake.style.top === this.bodys[i].style.top && this.snake.style.left === this.bodys[i].style.left) {
                    clearInterval(this.snakeMoveByAuto)
                    alert('gg')
                    window.location.reload()
                }
            }
        }
        // 蛇吃到食物变大
        snakeChangeBig () {
            // 创建蛇身体最后一段
            this.lastBody = document.createElement('div')
            this.lastBody.className = 'body'
            this.lastBody.style.top = this.lastTop
            this.lastBody.style.left = this.lastLeft
            document.querySelector('.box').prepend(this.lastBody)
            // 因为添加了蛇的最后一段,所以要更新this.bodys
            this.bodys = document.querySelectorAll('.body')
        }
    }
    
    var snake = new Snake()
    </script>
    
    </html>
    
    展开全文
  • 为您提供h5小游戏管理平台下载,h5小游戏管理平台是一款h5小游戏管理后台系统,方便商家活动操作运作,通过线上游戏互动促进线下消费的平台系统。
  • H5小游戏飞机大战

    2018-08-30 14:35:24
    这是一款经典的H5小游戏
  • H5小游戏堆木头

    2019-01-14 17:19:47
    H5小游戏源码,可以直接点击index页面直接开始玩。方便游戏开发者学习和使用
  • H5小游戏-H5答题游戏

    2019-11-28 11:36:53
    H5移动端小游戏 - 答题游戏,内容完整,代码简洁,注释明确,特别容易读懂,简易上手使用!(下载后如果需要技术支持可留言博主或者私信)
  • HTML5版3D魔方小游戏源码下载,h5游戏源码下载,h5小游戏,魔方游戏代码开发下载,免安装,直接双击就可以运行。
  • H5 小游戏 - 砸蛋

    2018-04-25 16:32:50
    H5 小游戏 - 砸蛋 JQuery BootStarp 自己做的 包括图片 和GIF
  • 空战1942 H5小游戏

    2018-05-03 14:14:58
    微信里的空战1942,微信H5小游戏,有需要的可以下载哟!
  • 11个H5小游戏.rar

    2020-07-06 17:43:52
    11个好玩有趣的H5小游戏
  • H5小游戏开心连连看源码,方便用于学习素材,联系小游戏开发等。
  • 5个H5小游戏.zip

    2020-07-06 17:46:06
    几个比较有意思的网页H5小游戏
  • H5小游戏源码分享

    2018-03-09 09:20:37
    egret开发的H5小游戏 已发布4399平台http://www.4399.com/flash/186736_1.htm
  • 40款H5小游戏平台完整源码
  • H5小游戏源码几百个

    2020-10-26 09:35:12
    几百套H5小游戏的源码,分享给大家,各种小游戏,一些比较实用的开发小功能,学习,使用都可以借鉴浏览器直接运行自行测试。
  • H5小游戏源码-80

    2018-06-06 22:40:22
    80套H5小游戏,包含三套前台模板的代码,游戏种类丰富。
  • 40个h5小游戏源码

    2018-07-12 09:28:04
    h5小游戏源码,供大家参考使用,如有问题可以联系我,尽力解答
  • 48个H5小游戏合集

    2019-12-27 11:59:54
    48个H5小游戏合集:水果忍者,2048,超强战机,中国象棋,大转盘抽奖,翻牌对对碰,翻牌抽奖,拼图游戏,拉霸赌博机,手机摇一摇等等。48个全可运行,绝对超值。
  • H5小游戏——开心小鱼游戏(源代码内含详细注释,主要用于学习交流,下载即可查看演示)
  • 微信H5小游戏200套源码 各种小游戏 吸粉 引流必备!
  • 本源码为 H5小游戏:愤怒的小红帽 完全开源免费分享。 游戏玩法:帮助小红帽安全达到老奶奶的加,当狼进入靶子中心后点击屏幕射箭。 源码存放环境:LINUX 6.X + Nginx 环境

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,778
精华内容 711
关键字:

h5小游戏