用Html5制作 汤姆猫 小游戏

以下汤姆猫是用html5制作的小游戏;

建议火狐测试,然后把火狐调成  响应式设计模式(以便模拟手机屏幕),设置--->开发者--->响应式设计模式;   如下图




以下是html文件:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>汤姆猫</title><style>*{margin: 0px;           /**去掉边距*/padding: 0px;}html{height: 100%;}body{height: 100%;}img{width: 100%;          /**使图片长宽适应屏幕的大小*/height: 100%;}</style>
</head>
<!--为body添加点击事件,以便用于确定用户点击的位置-->
<body οnclick="action(event)"><!--用于图片-->
<img src="./img/angry/angry_00.jpg" alt="" id="tom">
<!--用于播放声音-->
<audio id="player"></audio><script src="tom.js"></script></body>
</html>


以下是js文件:tom.js;

/*** 为body添加点击事件,以便用于确定用户点击的位置* @param event*/
function action(event) {//获取屏幕宽度var w = document.documentElement.clientWidth;//获取屏幕高度var h = document.documentElement.clientHeight;//相对坐标位置;因为我是在320*480分辨率的情况下确定坐标的,为了在其他分辨率下位置正确,var x = event.pageX / w * 320;var y = event.pageY / h * 480;//在控制台显示当前点击的坐标console.log('点击的坐标为x:'+ x + ',y:' + y);if (x>132 && x<187 && y>371 && y<411) {     //肚子play('stomach',33,0);}if (x>102 && x<201 && y>87 && y<162) {      //头play('knockout',80,20);}if (x>163 && x<195 && y>435 && y<455) {     //左脚play('foot_left',29,0);}if (x>117 && x<148 && y>439 && y<456) {     //右脚play('foot_right',29,0);}if (x>215 && x<242 && y>380 && y<420) {    //尾巴play('angry',25,0);}if (x>83 && x<107 && y>282 && y<300) {     //右手play('scratch',55,21);}if (x>120 && x<200 && y>192 && y<207) {    //嘴巴play('eat',39,0);}if (x>10 && x<60 && y>353 && y<430) {     //左下角play('drink',80,35);}if (x>206 && x<225 && y>262 && y<295) {    //左手play('cymbal',12,0);}if (x>206 && x<250 && y>72 && y<149) {    //左耳朵play('fart',27,0);}
}/**确定当前动作的声音是否播放完,如果没有播放完不执行下一个动作*/
var playing = false;
/**获取页面的图片标签*/
var img = document.getElementById('tom');
/**获取页面的声音标签*/
var player = document.getElementById('player');/**** @param name 图片和声音的文件名字* @param totle    该动作图片数量* @param startAt   从第几张图片开始播放*/
function play(name,totle,startAt)
{/**确定当前动作是否播放完,如果没有播放完不执行下一个动作*/if (playing == false){playing = true;var i = 0;animate();//动画function animate(){//因为图片名称是angry_01.jpg  、  angry_13.jpg 这种格式,所以小于10要在前面加个0var src = './img/'+name + '/' + name + '_' + (i < 10 ? + '0' : '') + i + '.jpg';         //获取图片地址img.src = src;    //替换图片,(图片快速替换形成动作)console.log(name+':第'+i+'张图片');if (i < totle){//延时图片替换速度,否则动画瞬间完成(setTimeout是异步的,所以不影响声音不放)setTimeout(animate,65);if(i == startAt){//播放声音player.src = 'sounds/' + name + '.m4a';player.play();}if(name == 'drink' && i == 35){player.src = 'sounds/' + name + '.m4a';player.play();}if(name == 'scratch' && i == 21){player.src = 'sounds/' + name + '.m4a';player.play();}if(name == 'knockout' && i == 20){player.src = 'sounds/' + name + '.m4a';player.play();}//i递加,以便更换下一张动作图片i++;}else{playing = false;    //图片播放完成,结束}}}else{return;     //重复play()方法,形成连贯动作,因为setTimeout是异步处理的,所以要用递归,否则图片无法延时}
}


为了适应不同分辨率的屏幕,所以要使用相对坐标(本测试是在320*480上测试的)

var x = event.pageX / w * 320;
var y = event.pageY / h * 480;
有童鞋会问怎么知道图片的坐标范围是多少。
ps:可以借助火狐的控制台查看;   
即用     console.log('点击的坐标为x:'+ x + ',y:' + y);    显示;   
如下图,点击图片的某位置就会在控制台输出xy坐标;    (右键---->查看元素----->控制台)

然后鼠标点击某个范围就执行什么动作,范围确定左上角和右下角的坐标就行;如下图所示,是确定嘴巴的范围

然后用if判断点击的坐标范围,再执行什么动作;

为了适应在不同分辨率上的位置显示,所以要有 相对位置 确定图片的点击范围;我是在320*480分辨率下确定的;
var x = event.pageX / w * 320;
var y = event.pageY / h * 480;



资源下载地址:
http://download.csdn.net/detail/qq_22078107/9629834




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1380354.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Fairy下载和使用

写在最前&#xff1a;本系列中将会涉及到 Unity&#xff0c;C#&#xff0c;Lua和FairyGUI&#xff08;FGUI&#xff09;。 FairyGUI介绍 官网&#xff1a; FairyGUI 编辑器下载&#xff1a; FairyGUI 截至文档记录最新版&#xff1a; https://res.fairygui.com/FairyGUI-Ed…

小游戏开发引擎CocosCreator

小游戏 六彩跳棋 已经通过审核并且发布了好几天了&#xff0c;对跳棋感兴趣的朋友可以去看看&#xff0c;在微信游戏里搜索 六彩跳棋 &#xff0c;点击 立即玩 吧&#xff01;进去游戏后&#xff0c;需要点击 获取头像昵称 才能得到玩家数据&#xff0c;然后 划动屏幕 选择游戏…

制作打怪小游戏Kill Bill

使用construct2制作游戏Kill Bill construct2适合新手小菜鸟&#xff08;比如我&#xff09;进行游戏制作&#xff0c;以下的游戏Kill Bill就是由它制成。 制作步骤如下。 寻找素材&#xff0c;新建工程并插入对象对游戏对象添加行为构建事件以完成对游戏规则的设置完善细节 寻…

第二个Flash小游戏制作(打飞机)

帧一的动作 import flash.events.MouseEvent;import flash.events.Event; stop(); btn.addEventListener(MouseEvent.CLICK, btn_click); function btn_click(event:Event):void{ gotoAndStop("fire"); } 帧二的动作 atartPlaneAir(); package{ import fla…

flash游戏和HTML5游戏,Flash动画和H5小游戏哪个更好?

原标题&#xff1a;Flash动画和H5小游戏哪个更好&#xff1f; 大家都知道现在H5小游戏很火&#xff0c;但是flash动画也有其历史渊源和优势。下面本文就重点带大家看看flash动画和H5小游戏哪个更好。 1、制造本钱上看&#xff0c;flash动画如同比较复杂一点的H5动画的价格差不多…

第一个Flash小游戏制作(1)

目标&#xff1a;是制作一个类似连连看的游戏&#xff08;如下图&#xff09;。 素材可以在附件中下载&#xff0c;包括&#xff1a; 1.图片的MovieClip 2.两个自定义按钮&#xff08;也可以使用自己的按钮&#xff09; 3.一些声音文件 第一步&#xff1a; 我们先新建一个(…

制作flash cs的简单小游戏

以flash cs6为例制作小游戏。 文件素材可以从图片上截图下来之后&#xff0c;稍微用ps处理下就行了。 需要的有&#xff1a; 1.一个背景板。2.气球。3.齿轮。 新建一个Game.as文件。把下面代码放进去。 package{ import flash.display.MovieClip; import flash.events.Event; i…

AIStudio扫描王实现与原理详解

★★★ 本文源自AI Studio社区精品项目&#xff0c;【点击此处】查看更多精品内容 >>> AIStudio扫描王实现与原理详解 一、前言 大家经常有需要使用扫描件的时候&#xff0c;如果是要求不太高的场景&#xff0c;我们通常会使用手机拍照&#xff0c;再经过一些APP应用…

基于 requests 的全能扫描王爬虫实践

投稿人&#xff1a;Alan 摘要&#xff1a;全能扫描王是文件扫描留档的重要工具&#xff0c;本文利用requests爬虫将手机客户端的扫描文件&#xff0c;同步至电脑端。 一、背景 在审计工作中&#xff0c;需要大批量扫描文件留档&#xff0c;全能扫描王成为主流的手机端扫描工具。…

【OpenCV】基于Qt的“破产版”全能扫描王

功能介绍 图片打开和保存图片矫正&#xff08;证件扫描、文字纠正…&#xff09;图片锐化增强图片清空阈值设置 项目实现 基本思路&#xff08;证件扫描&#xff09; 抠图&#xff1a;提取轮廓矫正&#xff1a;透视变换锐化增强&#xff1a;二值化 算法设计&#xff08;证…

eNSP:ibgp的破水平切割练习

实验要求&#xff1a; 拓扑展示&#xff1a; 命令操作&#xff1a; R1&#xff1a; <Huawei>sys [Huawei]sys r1 [r1]int g 0/0/1 [r1-GigabitEthernet0/0/1]ip add 12.1.1.1 24 [r1-GigabitEthernet0/0/1]int lo0 [r1-LoopBack0]ip add 1.1.1.1 24 [r1-LoopBack0]osp…

css clip-path 画五角星

简介 使用裁剪方式创建元素的可显示区域&#xff0c;实现区域裁剪。 浏览器兼容性 常用的三种方法 1. clip-path: circle(50px at 50px 50px) 以 50px 50px 的坐标为圆心裁剪一个半径 50px 的圆&#xff1b; 2. clip-path: ellipse(30px 40px at 50px 50px) 以 50px 50px…

canvas绘图详解-06-绘制一个五角星-常用绘图原理

先讲如何画一个正规的五角星 在五角星的内外画两个圆&#xff0c;五角星有五个角&#xff0c;360/572度 所以得出这两个角的度数 然后算出这两个点坐标 角度转弧度 角度/180*Math.PI 所以外顶点坐标 x: Math.cos( (1872*i)/180*Math.PI) * R y: Math.sin((1872*i)/180*Math.P…

钓鱼网站原理实验

实验环境:一台Windows 2003&#xff08;WA&#xff09;作为客户机&#xff0c;一台Linux&#xff08;LB&#xff09;作为服务器。 1.LB设置网络适配器 2.LB配置eth0&#xff08;vim /etc/sysconfig/network-scripts/ifcfg-eth0&#xff09; 3.LB将eth0的内容copy一份到eth1 …

电子邮件如何追溯到他们的源IP地址

你要做的第一件事当你听到检查发送电子邮件通知,对吧? 这是最快的方法找出谁是电子邮件,以及可能的内容。 但是你知道每个邮件都有更多的信息比出现在大多数的电子邮件客户端? 有主机的信息发送者包括在邮件头信息可以用来跟踪电子邮件回源。 下面是如何跟踪,邮件回它是从哪…

红队攻击:轻松玩转邮件钓鱼

首发在合天智汇&#xff1a;https://mp.weixin.qq.com/s/sRXnwIdy3eQ0CJS58_bI1g 邮件钓鱼老生常谈&#xff0c;攻击手段也并不新颖。但对于网络安全工程师来说,“懂原理”和“会使用”是两个概念。会用&#xff0c;用得好不好&#xff0c;又是不同的层次。红队攻击要讲究攻击的…

seeker+ngrok 钓鱼获取目标位置

免责说明&#xff1a;本文章只是参考&#xff0c;一切后果自行承担&#xff0c;网络环境靠大家&#xff0c;遵守网络安全法是每个人应尽的责任 文章目录 一、工具介绍seekerngrok 二、使用步骤 一、工具介绍 seeker seeker工具是一款社会工程学的利器&#xff0c;可以通过see…

使用十六进制IP地址的网络钓鱼攻击活动

网络犯罪分子正在不断优化其网络攻击工具&#xff0c;策略和技术&#xff0c;以逃避垃圾邮件检测系统。 由于一些系统会直接提取邮件中内嵌的链接进行检测&#xff0c;而一种此类URL混淆技术采用了URL主机名部分中使用的编码十六进制IP地址格式来逃避检测。 由于IP地址可以用多…

1. 如何爬取自己的CSDN博客文章列表(获取列表)(博客列表)(手动+python代码方式)

文章目录 写在最前步骤打开chrome浏览器&#xff0c;登录网页按pagedown一直往下刷呀刷呀刷&#xff0c;直到把自己所有的博文刷出来然后我们按F12&#xff0c;点击选取元素按钮然后随便点一篇博文&#xff0c;产生如下所示代码然后往上翻&#xff0c;找到头&#xff0c;复制然…

Maven在IDEA2021版本中全局配置(一次配置处处生效)

前言 我们在开发中&#xff0c;Maven是必不可少的&#xff0c;但是每次都需要设置一遍Maven的仓库和settings.xml。真的是心累&#xff0c;今天教大家全局配置一下。再也不要每次项目都配了&#xff0c;Maven还经常出问题。 解决方案 友情提示&#xff1a;小编的IDEA版本为2…