一、前提:

  和我之前写的 QT小球游戏 差不多(指的是实现方法)。

  感谢大佬的 Github:https://github.com/kasuganosoras/cxk-ball 外加游戏网页:https://cxk.ssrr.one/

  更新:

    应网友要求,更新了背景音乐:只因你太美(鸡你太美).mp3 + 其他小更新部分。

  背景音乐(若打开无音乐,请刷新重试):

   

  整体界面(index.html)

  

 二、解析:

  1:Game.js:

    11.包括背景图的绘制,砖块,积分榜

    

// 绘制分数
this.context.fillText(obj.text + obj.allScore, obj.x, obj.y)
// 绘制关卡
this.context.fillText(obj.textLv + obj.lv, this.canvas.width - 100, obj.y)

  

    12.游戏晋级+下一关+判断通关条件

   失败:

 this.context.fillText('蔡徐坤,你球掉了!', 404, 226)

  下一关:

  

 // 绘制提示文字
this.context.font = '32px Microsoft YaHei'
this.context.fillStyle = '#000'
this.context.fillText('蔡徐坤,下一关!', 308, 226)

   通关成功:

   

 // 当砖块数量为0时,挑战成功
if (blockList.length == 0) {
if (main.LV === main.MAXLV) { // 最后一关通关
// 升级通关
g.state = g.state_UPDATE
// 挑战成功,渲染通关场景
g.finalGame()
} else { // 其余关卡通关
// 升级通关
g.state = g.state_UPDATE
// 挑战成功,渲染下一关卡场景
g.goodGame()
}
}

  游戏结束:

    

 // 判断游戏是否结束
if (g.state === g.state_GAMEOVER) {
g.gameOver()
}
// 判断游戏开始时执行事件
if (g.state === g.state_RUNNING) {
g.checkBallBlock(g, paddle, ball, blockList, score)
// 绘制游戏所有素材
g.draw(paddle, ball, ballshadow, blockList, score)
} else if (g.state === g.state_START){
// 绘制游戏所有素材
g.draw(paddle, ball, ballshadow, blockList, score)
}
}, 1000/g.fps)

    13.对按键的基本操作:包括开始、暂停游戏、和左右移动(AD,<-,->键).

  2:common.js,main.js,scene.js都是对场景的基本修饰:

  3. index.html:

    里面我加入了音乐播放的基本功能(简约版,若没有音乐,可以多刷新一下):

    

        <audio src="./test.mp3" preload="meta" loop autoplay id="bgmusic"></audio>
<script>
var bgmusic = document.getElementById('bgmusic');
bgmusic.addEventListener('canplay', function(){
this.play();
}, false);
window.addEventListener('load', function(){
window.addEventListener('touchstart', once, false);
}, false);
function once(){
bgmusic.play();
window.removeEventListener('touchstart', once, false);
}
</script>

  三:总结:

    较麻烦的地方就是场景的渲染了,然后就是通过判断了,最后一些细节需要注意。

    链接: https://pan.baidu.com/s/1UOHNK-tCWNerMOgFB_qmMg 提取码: x7sd 复制这段内容后打开百度网盘手机App,操作更方便哦

JS制作蔡徐坤打篮球小游戏(鸡你太美?)的更多相关文章

  1. python爬虫11 | 这次,将带你爬取b站上的NBA形象大使蔡徐坤和他的球友们

    在上一篇中 python爬虫10 | 网站维护人员:真的求求你们了,不要再来爬取了!! 小帅b给大家透露了我们这篇要说的牛逼利器 selenium + phantomjs 如果你看了 python爬虫 ...

  2. Vue+WebSocket+ES6+Canvas 制作「你画我猜」小游戏

    Vue+WebSocket+ES6+Canvas 制作「你画我猜」小游戏 转载 来源:jrainlau 链接:https://segmentfault.com/a/1190000005804860 项 ...

  3. 了解python,利用python来制作日常猜拳,猜价小游戏

    初次接触python,便被它简洁优美的语言所吸引,正所谓人生苦短,python当歌.python之所以在最近几年越发的炽手可热,离不开它的一些特点: 1.易于学习:Python有相对较少的关键字,结构 ...

  4. Micro:bit篮球小游戏

    尝试用Micro:bit制作一款篮球游戏,材料是利用一些纸箱跟生活周遭可以取得的加上Micro;bit,打造出一个好玩的篮球游戏,制作过程也十分简单. 材料清单 先制作篮板. 接着制作篮球架体. 制作 ...

  5. 用js制作简易计算器及猜随机数字游戏

    <!doctype html><html><head> <meta charset="utf-8"> <title>JS ...

  6. 用原生JS写一个网页版的2048小游戏(兼容移动端)

    这个游戏JS部分全都是用原生JS代码写的,加有少量的CSS3动画,并简单的兼容了一下移动端. 先看一下在线的demo:https://yuan-yiming.github.io/2048-online ...

  7. 制作动画或小游戏——CreateJS事件(二)

    在Canvas中如果要添加事件,就需要计算坐标来模拟各种事件,而EaselJS中已经封装好了多个事件,只需调用即可. 一.事件 1)点击 事件是绑定在Shape类中的,click事件与DOM中的意思是 ...

  8. Win32小游戏--贪吃蛇

    近日里学习了关于win32编程的相关知识,利用这些知识制作了一款贪吃蛇小游戏,具体细节还是分模块来叙述 前期准备:在网上找到一些贪吃蛇的游戏素材图片,以及具体的逻辑框图 在正式写功能之前,先把一系列环 ...

  9. 零基础入门学习Python(4)--改进我们的小游戏

    前言 在以前的博客中有做个一个小游戏,但是太简单了,所以这次就来对我们做的小游戏进行改进,改善从以下四个方面进行: 程序猜错的时候要给出提示,例如告诉用户输入的值是大了还是小了. 以前程序每运行一次只 ...

随机推荐

  1. 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...

  2. 《HTTP - 跨域》

    本文参考 HTTP访问控制(CORS) 一:什么是跨域? - 所谓跨域, 是浏览器为了保护网站安全而建立的一种保护策略,既浏览器的同源策略. - 意味着使用这些API的Web应用程序只能从加载应用程序 ...

  3. Mybatis异常--There is no getter for property named 'XXX' in 'class java.lang.String'

    第一种 在service层加@Param(value="ip") void deleteIpsetup(@Param(value="ip")String ip) ...

  4. 迪杰斯特拉(Dijkstra)算法描述及理解

    Dijkstra算法是一种计算单源最短无负边路径问题的常用算法之一,时间复杂度为O(n2) 算法描述如下:dis[v]表示s到v的距离,pre[v]为v的前驱结点,用以输出路径,vis[v]表示该点最 ...

  5. 永久禁止floppy模块开机自动加载

    环境:Red Hat Enterprise Linux Server release 7.4 (Maipo) 问题:执行fdisk -l后系统会抓到错误 解决方案: https://access.re ...

  6. 爬虫下载QQ音乐:获取所有歌手-每个歌手的专辑-每个专辑里的歌曲

    # coding=utf-8 # !/usr/bin/env python ''' author: dangxusheng desc : 稍微有点难度,需要多次请求获取key date : 2018- ...

  7. Leetcode Articles: Insert into a Cyclic Sorted List

    Given a node from a cyclic linked list which has been sorted, write a function to insert a value int ...

  8. HDU 2196树形DP(2个方向)

    HDU 2196 [题目链接]HDU 2196 [题目类型]树形DP(2个方向) &题意: 题意是求树中每个点到所有叶子节点的距离的最大值是多少. &题解: 2次dfs,先把子树的最大 ...

  9. PYTHON装饰器用法及演变

    '''开放封闭原则: 软件一旦上线之后就应该满足开放封闭原则 具体就是指对修改是封闭的,对扩展是开放的装饰器:什么是装饰器:装饰就是修饰,器指的是工具装饰器本省可以是任意可调用的对象被装饰的对象也可以 ...

  10. redis 哈希(hash)函数

    哈希(hash)函数 hSet 命令/方法/函数 Adds a value to the hash stored at key. If this value is already in the has ...