基于jquery复刻一个月饼版地狱死神小游戏
先放出游戏截图馋一下你们
滚动的月饼,跳跃的死神,尽全力跳起,又在重力的作用下回落。。。这不正是人生奋斗的写照吗?只是, 盛年不重来,一日难再晨。 珍惜奋斗拼搏的时光,珍惜陪在你身边的亲人,兄弟,爱人。
基础框架
- 背景图依旧是采用中秋主题
- 游戏容器就是设置左上角和右下角圆角,加半透明背景色即可,绝对定位的方式居中
- 死神素材来源于网络,定位的方式固定在那里
- 滚动的月饼素材来源于网络,通过动画+js方式实现位移+滚动
- 初始化定时器,得分
<div id="box"><div class="ground"></div><div class="Death"></div><div class="score">0</div><div class="result"></div></div>
判断逻辑
- 监听按键的空格和上箭头事件,更新死神dom的bottom值,来实现向上跳,向下回落采用定时器递减方式回落,每次进来清空上一个定时器,这也是为什么定时器需要声明为全局变量,边界条件处理,当落回地面时,需要清空定时器
let t = null$(document).on('keydown', function (e) {if([38,32].includes(e.keyCode)) {if (t) {clearInterval(t)}let bottom = Number($('.Death').css('bottom').split('px')[0]) + 15if(bottom > $('#box').height() - 120) bottom = $('#box').height() - 120bottom = bottom+'px'$('.Death').css('bottom',bottom)t = setInterval(function () {let bottom = Number($('.Death').css('bottom').split('px')[0]) - 5if(bottom < 40) {clearInterval(t)t = nullbottom = 40}bottom = bottom+'px'$('.Death').css('bottom',bottom)}, 100)}})
- 生成滚动月饼,采用封装函数的方式进行生成,动态生成月饼,在滚到最左侧时将月饼dom移除,同时,需要判断是否与死神发生碰撞,发生碰撞,则游戏结束
function initBing () {let div = $('<div>')div.addClass('bing')$('#box').append(div)div.css('right', Math.ceil(Math.random()*50) + 'px')let t = setInterval(function () {let right = Number(div.css('right').split('px')[0]) + 3let left = div.css('left').split('px')[0]if (left > DeathLeft && left < (DeathLeft+120)) {if ($('.Death').css('bottom').split('px')[0] <= 40) {clearInterval(t)$('.result').show()$('.bing').remove()}}if(right > $('#box').width()) {clearInterval(t)t = null div.remove() score++ $('.score').html(score) initBing()}right = right+'px'div.css('right',right)}, 10)}
初始化
初始化就是 重复调用initBing方法,实现一次产出多个小球
function start () {$('.result').hide()score = 0t = nullinitBing()initBing()initBing()}
重新开始
给结果dom绑定点击事件
$('.result').click(start)
就这样,我们的游戏就做完了,本文采用的是非常经典的jquery直接操作dom的这种实现思路,代码即实现,可读性强。
基于jquery复刻一个月饼版地狱死神小游戏相关推荐
- 【Python游戏】Python实现一个Q版泡泡堂小游戏 | 附带源码
相关文件 想学Python的小伙伴可以关注小编的公众号[Python日志] 有很多的资源可以白嫖的哈,不定时会更新一下Python的小知识的哈!! 需要源码的小伙伴可以在公众号回复泡泡堂 Python ...
- 基于面向对象 来写一个简单的贪吃蛇小游戏(代码可直接用)
分析一下用到的对象(这个案例的地图过于简单,可以不用创建为对象) 食物对象(food) 蛇对象(snake) 游戏对象(game) 1.food对象 属性 :x, y, ...
- 用原生JS写一个网页版的2048小游戏(兼容移动端)
这个游戏JS部分全都是用原生JS代码写的,加有少量的CSS3动画,并简单的兼容了一下移动端. 先看一下在线的demo:https://yuan-yiming.github.io/2048-online ...
- AI版的五子棋小游戏
AI版的五子棋小游戏 内容简介 本项目实现的五子棋博弈游戏是基于AI的五子棋游戏.游戏模式可以分为人机对弈和双人对弈两种模式.本程序采用基于启发式max/min算法的alpha-beta剪枝技术来选择 ...
- 简易贪吃蛇小游戏java版_用GUI实现java版贪吃蛇小游戏
本文实例为大家分享了java版贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 项目结构 新建一个JFrame窗口,作为程序入口 public class GameStart{ public stat ...
- 写一个简单的实时互动小游戏
在写之前,我们先回顾上一篇文章,从需求.架构.设计.开发上讲述并演示了搭建一个实时通信客户端的过程,并附了图片与视频. 写这篇文章的之前,第一个互动的游戏DEMO已经写好了,先附上截图 很奇怪的一张图 ...
- 基于Java Swing JFream 组件的趣味推箱子小游戏
一 需求分析 设计一个经典的推箱子小游戏,在窗体里有墙,箱子,胜利的标志,和工人,用户可以通过键盘上的"上"."下"."左"."右 ...
- [源码和文档分享]基于Java Swing JFream 组件的趣味推箱子小游戏
一 需求分析 设计一个经典的推箱子小游戏,在窗体里有墙,箱子,胜利的标志,和工人,用户可以通过键盘上的"上"."下"."左"."右 ...
- html+javascript实现的网页版飞机大战小游戏源码
html+javascript实现的网页版飞机大战小游戏源码 完整代码下载地址: html+javascript实现的网页版飞机大战小游戏源码 index.html <!DOCTYPE html ...
最新文章
- Cisco交换机与路由器的密码恢复_路由交换
- 3个CCIE对一个工程师的面试题(远去之路无比艰辛啊!)
- 微型计算机原理及应用李干林,微机原理及接口技术李干林习题参考解答-20210415154329.docx-原创力文档...
- 【物联网】 ESP8266 Ubuntu开发环境的搭建
- 人工合成维生素E和天然维生素E的区别
- 【转载】关于HttpClient 接口方法总结
- oracle 在线表分析报告,Oracle Statspack分析报告详解(一)
- B-TREE、B+TREE、数据库索引
- LeetCode 646. Maximum Length of Pair Chain
- 魔兽世界客户端数据研究(四):M2文件头分析
- php 获取变量指针_PHP 底层的运行机制与原理
- java 重启线程_java-如何重新启动线程
- classpath是什么
- pypy mysql 兼容_PyPy运行Django+MySQL简单教程
- 基于深度学习的图像修复—心中无码
- 关于A6s上的无法动态修改maxLength的问题
- pip安装及matplotlib安装
- 小伙失恋服毒后又反悔 自作聪明喝洗衣粉洗胃
- Waymo SOTA!SparseKD:高效知识蒸馏下的3D检测(港大NIPS2022)
- 网页设计 实现读书信息反馈表 适合小白入门 安排
热门文章
- Three.js光源梳理3——平行光(DirectionalLight)
- 高清电影播放机选购知识——附30余款播放机资料(1)
- 3 步完全掌握 LoRaWAN Server,让你拥有自己的物联网
- Android studio 多渠道打包(包括不同的包使用不同的资源文件、不同的包写不同的代码,包名等等)
- Cardboard的学习(二)Cardboard的下载与导入
- Cardboard Talk01 HeadTracker
- Windows系统查看设备序列号及硬盘序列号
- C#实现调用打印机(打印字符串、打印绘图、打印图片),还差打印水晶报表
- python怎么读取石墨表格_石墨这种多人文档编辑协作如何用开源软件实现?
- 2020全国普通高校大学生竞赛排行榜出炉!