距上次学习笔记已有一个多月过去了,期间由于新项目赶进度,以致该学习计划给打断,十分惭愧。
书本中的第六章的例子相对比较简单。所以很快就完成。

1.预备知识
html5中video标签的熟悉

2.实现思路
对20组G20成员进行国家名和其首都的匹配的游戏。通过2组div来显示,监听其点击事件click,通过元素的id保存国家和首都的索引,通过前后2次的点击来判断其2次点击的索引是否相等,相等则匹配成功,不相等则继续。
全部匹配成功后则自动播放视频。

3.主要代码

			var membersForG20 = [{id:1,countryName:'China',capitalName:'Beijing',used:false},
{id:2,countryName:'India',capitalName:'New Delhi',used:false},
{id:3,countryName:'European Union',capitalName:'Brussels',used:false},
{id:4,countryName:'United States',capitalName:'Washington, DC',used:false},
{id:5,countryName:'Indonesia',capitalName:'Jakarta',used:false},
{id:6,countryName:'Brazil',capitalName:'Brasilia',used:false}] var countryDiv = document.getElementById('countryDiv')
var capitalDiv = document.getElementById('capitalDiv')
var video1 = document.getElementById('video1') /*
http://www.w3school.com.cn/tags/av_met_canplaytype.asp
canPlayType() 方法浏览器是否能播放指定的音频/视频类型。
canPlayType() 方法可返回下列值之一:
"probably" - 浏览器最可能支持该音频/视频类型
"maybe" - 浏览器也许支持该音频/视频类型
"" - (空字符串)浏览器不支持该音频/视频类型 实际情况是在Chrome下sfire3.mp4视频无法播放,火狐下提升文件已损坏。
*/
console.log(video1.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2'))//返回probably var randomLength = 4
var matches = 0
var countrySelected = false
var selectedCountryIndex
var selectedCanpitalIndex function onSelected(element){
var id = element.id
var index
var type id.replace(/(country|canpital)(\d+)/g,function ($0,$1,$2){
type = $1
index = $2
}) console.log(type+','+index) if(type == 'country' && countrySelected==false){
countrySelected = true
selectedCountryIndex = index
}
else if(type == 'canpital' && countrySelected==true){
selectedCanpitalIndex = index if(selectedCountryIndex == selectedCanpitalIndex){
countrySelected = false
selectedCountryIndex = -1
selectedCanpitalIndex = -1 //matched success
document.getElementById('country'+index).style.backgroundColor = 'green'
document.getElementById('canpital'+index).style.backgroundColor = 'green' matches++ if(matches==randomLength){
video1.play()
}
}
else{
//matched error
document.getElementById('country'+index).style.backgroundColor = 'red'
document.getElementById('canpital'+index).style.backgroundColor = 'red' countrySelected = false
selectedCountryIndex = -1
selectedCanpitalIndex = -1
}
}
else{
//reset Selected
countrySelected = false
selectedCountryIndex = -1
selectedCanpitalIndex = -1
}
} window.onload = function(){
var i
var index
var member
var memberLength = membersForG20.length
var countryElements = []
var canpitalElements = [] for(i=0;i<randomLength;i++){
do{
index = Math.floor(Math.random()*memberLength)
member = membersForG20[index]
}
while(member.used == true) member.used = true countryElements.splice(Math.floor(Math.random()*i),0,'<div id='+'"country'+index+'" class="country" onclick="onSelected(this)">'+member.countryName+'</div>')
canpitalElements.splice(Math.floor(Math.random()*i),0,'<div id='+'"canpital'+index+'" class="canpital" onclick="onSelected(this)">'+member.capitalName+'</div>')
} countryDiv.innerHTML = countryElements.join('')
capitalDiv.innerHTML = canpitalElements.join('')
}

4.和书中实现的效果有些差别

【整理】HTML5游戏开发学习笔记(5)- 猜谜游戏的更多相关文章

  1. 【整理】HTML5游戏开发学习笔记(1)- 骰子游戏

    <HTML5游戏开发>,该书出版于2011年,似乎有些老,可对于我这样没有开发过游戏的人来说,却比较有吸引力,选择自己感兴趣的方向来学习html5,css3,相信会事半功倍.不过值得注意的 ...

  2. HTML5移动开发学习笔记之Canvas基础

    1.第一个Canvas程序 看的是HTML5移动开发即学即用这本书,首先学习Canvas基础,废话不多说,直接看第一个例子. 效果图为: 代码如下: <!DOCTYPE html> < ...

  3. [游戏开发-学习笔记]菜鸟慢慢飞(四)-Camera

    游戏开发中,主相机应该是最重要的GameObject之一,毕竟游戏呈现给玩家,就是通过它. 相机的使用,在不同的游戏中,有很大的不同.这里总结一下自己学到的一些相关知识. 固定位置-游戏过程中相机的T ...

  4. cocos2d-x 3.x游戏开发学习笔记(1)--mac下配置cocos2d-x 3.x开发环境

    打开用户文件夹下.bash_profile文件,配置环境 vim ~/.bash_profile //按键i,进行插入编辑(假设输错d进行删除一行) 环境配置过程例如以下: 1.首先配置下androi ...

  5. 【Visual C++】游戏编程学习笔记之三:游戏循环的使用

     本系列文章由@二货梦想家张程 所写,转载请注明出处. 本文章链接:http://blog.csdn.net/terence1212/article/details/44208419 作者:Zee ...

  6. 【整理】HTML5游戏开发学习笔记(2)- 弹跳球

    1.预备知识(1)在画布上绘制外部图片资源(2)梯度(gradient):HTML5中的对象类型,包括线性梯度和径向梯度.如createLinearGradient,绘制梯度需要颜色组http://w ...

  7. 【整理】HTML5游戏开发学习笔记(4)- 记忆力游戏

    1.预备知识(1)Canvas绘制多边形(2)Canvas绘制文字 2.实现思路涉及的对象  (1)场景Scene  场景代表了画布上的一块区域,场景里的每个物体都是场景里的一个元素,其绘制统一由场景 ...

  8. 【整理】HTML5游戏开发学习笔记(3)- 抛物线运动

    1.预备知识(1)Canvas旋转的实现过程 window.onload = function(){ var ctx = document.getElementById('canvas1').getC ...

  9. [Android游戏开发学习笔记]View和SurfaceView

    本文为阅读http://blog.csdn.net/xiaominghimi/article/details/6089594的笔记. 在Android游戏中充当主要角色的,除了控制类就是显示类.而在A ...

随机推荐

  1. LintCode——Chalkboard XOR Game(黑板游戏)

    黑板游戏: We are given non-negative integers nums[i] which are written on a chalkboard. Alice and Bob ta ...

  2. ubuntu server安装OVS

    安装 Open vSwitch (Ubuntu Server 16.04)  1.查看主机系统内核版本:uname –a 2.上传openvswitch软件包,解压后执行安装: 更新下载源 $ sud ...

  3. 每日scrum(2)

    今天是冲刺的第二天,小组主要做了界面的美化,加入了软件的开始动画,以及学校景点的美图介绍: 主要的问题在于除了开始界面,进入软件之后还是有待改进,功能的呈现有待加强. 任务看板: 燃尽图: 会议照片:

  4. beta4

    吴晓晖(组长) 过去两天完成了哪些任务 昨天FloatingActionButton和权限获取调整 今天复习,没写东西,晚点有空了写 展示GitHub当日代码/文档签入记录 接下来的计划 推荐算法 还 ...

  5. RabbitMQ-从基础到实战(3)— 消息的交换(上)

    转载请注明出处 0.目录 RabbitMQ-从基础到实战(1)— Hello RabbitMQ RabbitMQ-从基础到实战(2)— 防止消息丢失 RabbitMQ-从基础到实战(4)— 消息的交换 ...

  6. 圆桌的项目Alpha冲刺——测试

    测试工作安排 作为一个测试计划来讲,核心的三个要素是时间,资源,范围.时间就是什么时候做以及要花多久做,资源就是你要调用的人力.机器等资源,范围是你要测试的东西以及测试重点. 时间:每天完成相应的模块 ...

  7. Activiti随着Spring启动自动部署开关

    Activiti的act_re_deployment表NAME_列:全部显示SpringAutoDeployment. 查阅Activiti,https://github.com/Activiti/A ...

  8. Centos7 安装netcat

    1.下载 下载地址:https://sourceforge.net/projects/netcat/files/netcat/0.7.1/ 下载的是netcat-0.7.1.tar.gz版本 2.安装 ...

  9. 学习官方示例 - TForm.BorderIcons

    本例用一行代码禁用了最大化按钮. unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphi ...

  10. Python中xlrd和xlwt模块读写Excel的方法

    本文主要介绍可操作excel文件的xlrd.xlwt模块.其中xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 着重掌握读取操作,因为实际工作中读取excel用得比较 ...