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

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. 【MAVEN】Missing artifact jdk.tools:jdk.tools:jar:1.6 eclipse

    搭建开发环境,遇到问题 : IDE 使用 eclipse 公司的项目用Maven管理,从git上拿下来代码后开始build后:    提示    [missing artifact jdk.tools ...

  2. 更新k8s镜像版本的三种方式

    一.知识准备 更新镜像版本是在k8s日常使用中非常常见的一种操作,本文主要介绍更新介绍的三种方法 二.环境准备 组件 版本 OS Ubuntu 18.04.1 LTS docker 18.06.0-c ...

  3. 怎么理解LAXCUS大操作系统系统在云计算体系中的定位

    最近一直在做laxcus大数据操作系统的分布式应用开发,因为做得多了,感触也多了.按照云计算三层定义,即iaas(基础设施即服务).paas(平台即服务).saas(软件即服务),laxcus属于pa ...

  4. React Native 'config.h' file not found 问题、 'glog/logging.h' file not found 问题、configure: error: C compiler cannot create executables问题解决过程记录

    1.在github 上面 git clone 一个RN 项目代码,npm install (yarn)后,准备运行iOS工程,发现'config.h' file not found ,恶心!!! 百度 ...

  5. 四种losses

    1. Classification losses 每次输入一个样本,对样本进行类别预测,根据预测类别和真实标签得到对应的分类损失. 2. Pairwise losses 每次输入两个样本,数据集包含了 ...

  6. Beta版本讨论

    目录 组员:胡绪佩 组员:何家伟 组员:黄鸿杰 组员: 翟丹丹 组员:周政演 组员:胡青元 组员:庄卉 组员:刘恺琳 组员:何宇恒 组员:刘一好 组员:葛家灿 组员:胡绪佩 总结 通过这次的Beta版 ...

  7. DHCP中续代理

    什么是DHCP中继代理? 答:DCHP中继代理(即DHCP Relay  Agent )用于转发来自于另一个没有DHCP服务器子网段中的客户端的DHCP请求,即当一台DCHP客户机发起请求后,此时DH ...

  8. Solr查询语法

    基于solr版本:6.0.0 当配置好本地的环境之后,就访问http://localhost:8080/solr/index.html.或者是访问已经放在服务器上的solr环境,例如http://10 ...

  9. 组件 -- Badge

    .badge :长方形的徽章 badge的颜色: .badge-primary .badge-secondary .badge-success .badge-warning ... ... .badg ...

  10. Mysql的row_format(fixed与dynamic)

     在mysql中, 若一张表里面不存在varchar.text以及其变形.blob以及其变形的字段的话,那么张这个表其实也叫静态表,即该表的row_format是fixed,就是说每条记录所占用的字节 ...