值得一看的html5实现简单老虎机的教程(游戏开发)

值得一看的html5实现简单老虎机的教程(游戏开发)

值得一看的html5实现简单老虎机的教程

本游戏使用的是html5的canvas,运行游戏需要浏览器支持html5。

使用开源引擎:lufylegend.js,

lufylegend.js引擎包内包含这个demo,请直接下载lufylegend.js引擎,查看引擎包内源码

立即学习“前端免费学习笔记(深入)”;

lufylegend.js引擎下载地址

http://lufylegend.com/lufylegend

游戏截图

27da36dc90cbe436141586d91c0b4ed.png

游戏测试地址:http://fsanguo.comoj.com/html5/slot/index.html

游戏结构

index.html

js文件夹|—Main.js

         |—Reel.js

images文件夹|–图片

游戏代码:

Main.js

init(50,"mylegend",600,600,main); var loadingLayer;var backLayer;var stopLayer;var startLayer;var loadIndex = 0;var imglist = {};var btnup,btndown,btnleft,btnright;var imgData = new Array(); var mapImgList = new Array();var mapmoveflag = "";var MOVE_STEP = 10; var combination = new Array([1,1,5], [1,2,4], [1,5,1], [2,1,4], [2,3,3], [2,4,1], [2,5,4], [3,1,2], [3,4,3], [3,5,5], [4,1,2], [4,2,3], [4,5,1], [4,5,5], [5,1,1], [5,2,4], [5,3,2], [5,5,1], [1,1,1], [1,1,1]);var reels = new Array();var kakes = new Array();//停止ボタン参照用配列var stopBtn = new Array();var start;var win;function main(){imgData.push({name:"stop_up",path:"./images/slot_stop_up.png"});imgData.push({name:"stop_over",path:"./images/slot_stop_over.png"});imgData.push({name:"start",path:"./images/slot_start.jpg"});imgData.push({name:"kake",path:"./images/slot_kake.png"});imgData.push({name:"slot_back",path:"./images/slot_back.jpg"});imgData.push({name:"slot_ok",path:"./images/slot_ok.png"});imgData.push({name:"item1",path:"./images/1.png"});imgData.push({name:"item2",path:"./images/2.png"});imgData.push({name:"item3",path:"./images/3.png"});imgData.push({name:"item4",path:"./images/4.png"});imgData.push({name:"item5",path:"./images/5.png"});imgData.push({name:"item6",path:"./images/6.png"});loadingLayer = new LSprite();loadingLayer.graphics.drawRect(1,"black",[50, 200, 200, 20],true,"#ffffff");addChild(loadingLayer);loadImage();}function loadImage(){if(loadIndex >= imgData.length){removeChild(loadingLayer);legendLoadOver();gameInit();return;}loader = new LLoader();loader.addEventListener(LEvent.COMPLETE,loadComplete);loader.load(imgData[loadIndex].path,"bitmapData");}function loadComplete(event){loadingLayer.graphics.clear();loadingLayer.graphics.drawRect(1,"black",[50, 200, 200, 20],true,"#ffffff");loadingLayer.graphics.drawRect(1,"black",[50, 203, 200*(loadIndex/imgData.length), 14],true,"#000000");imglist[imgData[loadIndex].name] = loader.content;loadIndex++;loadImage();}function gameInit(event){var i,j,bitmap,bitmapdata,childmap;backLayer = new LSprite();addChild(backLayer); bitmapdata = new LBitmapData(imglist["slot_back"]);bitmap = new LBitmap(bitmapdata);backLayer.addChild(bitmap);stopLayer = new LSprite();addChild(stopLayer);for(i=0;i<3;i++){var reel = new Reel(combination,i);reel.x = 150 * i + 90;reel.y = 225;reels.push(reel);addChild(reel);var kake = new LBitmap(new LBitmapData(imglist["kake"]));kake.x = 150 * i + 90;kake.y = 225;kakes.push(kake);addChild(kake);var stop = new LButton(new LBitmap(new LBitmapData(imglist["stop_up"])),new LBitmap(new LBitmapData(imglist["stop_over"])));stop.x = 150 * i + 110;stop.y = 490;stop.index = i;stopBtn.push(stop);stop.visible = false;stop.addEventListener(LMouseEvent.MOUSE_UP, stopevent);addChild(stop);} startLayer = new LSprite();addChild(startLayer);start = new LButton(new LBitmap(new LBitmapData(imglist["start"])),new LBitmap(new LBitmapData(imglist["start"])));start.x = 55;start.y = 450;startLayer.addChild(start);start.addEventListener(LMouseEvent.MOUSE_UP, onmouseup);win = new LButton(new LBitmap(new LBitmapData(imglist["slot_ok"])),new LBitmap(new LBitmapData(imglist["slot_ok"])));startLayer.addChild(win);win.visible = false;win.addEventListener(LMouseEvent.MOUSE_UP, winclick);backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);}function onframe(){var i;for(i=0;i<3;i++){reels[i].onframe();}}function stopevent(event,currentTarget){reels[currentTarget.index].stopFlag = true;}function onmouseup(event){var i;var stopNum = Math.floor(Math.random()*(combination.length/3));start.visible = false;for(i=0;i<3;i++){stopBtn[i].visible = true;reels[i].startReel = true;reels[i].stopFlag = false;reels[i].stopNum = stopNum;}}function winclick(){win.visible = false;start.visible = true;}function checkWin(){var i;var allstop = 0;for(i=0;i= 3){for(i=0;i= 19){win.visible = true;}else{start.visible = true;}}}

Reel.js

function Reel(combination,index){base(this,LSprite,[]);var self = this; //-------------------------------------------//実行側から操作可能なプロパティの初期設定//-------------------------------------------self.maxSpeed = 70;self.minSpeed = 10;self.currentNum = 1;self.stopNum = 0;self.maxNum = 6;self.speedUpStep = 2;self.speedDownStep = 2;self.combination = combination;self.stopFlag = true;self.currentSpeed = 0;self.startReel = false;self.index = index;//-------------------------------------------//準備//-------------------------------------------self.reels = [];self.indexs = [0,0,0,0];self.reels.push(new LBitmap(self.getReel()));self.reels.push(new LBitmap(self.getReel()));self.reels.push(new LBitmap(self.getReel()));self.reels.push(new LBitmap(self.reels[0].bitmapData));var i,sy;self.reels[0].height = 60;self.reels[0].bitmapData.height = self.reels[0].height;self.reels[0].bitmapData.setCoordinate(0,80-self.reels[0].height);self.reels[2].height = 60;self.reels[2].bitmapData.height = self.reels[2].height;self.reels[3].visible = false;sy = 0;for(i=0;i self.maxNum)self.currentNum = 1;self.indexs[0] = self.currentNum; self.indexs.pop();self.indexs.unshift(self.currentNum);var nextReel = new LBitmapData(imglist["item"+self.currentNum++]);return nextReel;};Reel.prototype.wheel = function (){var self = this;//回転速度の調節if (self.stopFlag) {//スピードダウンif (self.currentSpeed > self.minSpeed) {self.currentSpeed -= self.speedDownStep;} else {self.currentSpeed = self.minSpeed;}} else {//スピードアップif (self.currentSpeed < self.maxSpeed) {self.currentSpeed += self.speedUpStep;} else {self.currentSpeed = self.maxSpeed;}}if(self.stopFlag && self.currentSpeed  60){self.currentSpeed = 60 - self.reels[1].y; self.startReel = false;}self.setY();if(!self.startReel)checkWin();};Reel.prototype.setY = function(){var self = this;self.reels[1].y += self.currentSpeed;if(self.reels[1].y + self.reels[1].height > 200){self.reels[1].height = 200 - self.reels[1].y;self.reels[1].bitmapData.height = self.reels[1].height;}if(self.reels[1].y > 80){self.reels[0].height = 80;self.reels[0].y = self.reels[1].y - 80;}else{self.reels[0].height = self.reels[1].y;self.reels[0].y = 0;}self.reels[0].bitmapData.height = self.reels[0].height;self.reels[0].bitmapData.setCoordinate(0,80-self.reels[0].height);self.reels[2].y = self.reels[1].y + self.reels[1].height;if(self.reels[2].y > 200){self.reels[2].visible = false;}else if(self.reels[2].y + 80 > 200){self.reels[2].height = 200 - self.reels[2].y;self.reels[2].bitmapData.height = self.reels[2].height;}else{self.reels[3].y = self.reels[2].y + self.reels[2].height;if(self.reels[3].y  0){var child = self.reels.pop();child.bitmapData = self.getReel();child.visible = true;self.reels.unshift(child);child.y = 0;child.height = self.reels[1].y;child.bitmapData.height = child.height;child.bitmapData.setCoordinate(0,80-child.height);}if(self.reels[3].y >= 200){self.reels[3].visible = false;}};

index.html

slot   
loading……

感谢大家的阅读,希望大家收益多多。

本文转自:https://blog.csdn.net/lufy_Legend/article/details/7021965

推荐教程: 《HTML教程》

以上就是值得一看的html5实现简单老虎机的教程(游戏开发)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1548424.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 19:57:09
下一篇 2025年12月21日 19:57:25

相关推荐

  • html5新特性有哪些

    html5新特性有哪些 1.语义化标签 对比之前HTML没有体现结构语义化的标签,如: //表头的声明 HTML5提供语义化标签,如: 等 2.增强型表单 立即学习“前端免费学习笔记(深入)”; 多个新的表单 Input 输入类型,如: color,url,date等 这些新特性提供了更好的输入控制…

    2025年12月21日
    000
  • HTML5之前的HTML版本是什么

    html5之前的html版本是什么 HTML5之前的版本是 HTML 4.01 ,HTML5版本为当前最新的HTML版本。 HTML4.01、HTML5 之间的区别: 声明区别 HTML有多个不同的版本,只有准确的在页面中指定确切的HTML版本,浏览器才能正确无误的显示HTML页面。这就是的用处。 …

    2025年12月21日
    000
  • 什么是 HTML5?

    什么是 html5? HTML5 是最新的 HTML 标准。   (推荐学习:html教程) HTML5 是专门为承载丰富的 web 内容而设计的,并且无需额外插件。 HTML5 拥有新的语义、图形以及多媒体元素。 立即学习“前端免费学习笔记(深入)”; HTML5 提供的新元素和新的 API 简化…

    2025年12月21日
    000
  • HTML5 浏览器支持

    您可以帮助老版本浏览器处理 html5。 HTML5 浏览器支持 所有现代浏览器都支持 HTML5。   (推荐学习:html教程) 此外,所有浏览器,不论新旧,都会自动把未识别元素当做行内元素来处理。 立即学习“前端免费学习笔记(深入)”; 正因如此,您可以帮助老式浏览器处理”未知的“ HTML …

    2025年12月21日
    000
  • HTML5 Canvas

    canvas 元素用于在网页上绘制图形。 什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。  (推荐学习:html教程) 画布是一个矩形区域,您可以控制其每一像素。 立即学习“前端免费学习笔记(深入)”; canvas 拥有多种绘制路径、矩形、…

    2025年12月21日
    000
  • HTML5 内联 SVG

    html5 支持内联 svg。 什么是SVG?   (推荐学习:html教程) SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用于定义用于网络的基于矢量的图形 立即学习“前端免费学习笔记(深入)”; SVG 使用 XML 格式定义图形 SVG 图像在放大或改…

    2025年12月21日
    000
  • 如何学习html5

    HTML(Hyper Text Markup Language)即超文本标记语言。HTML5指的是超文本标记语言第五次重大修改。目前,HTML5 中包含一些有趣的新特性,如用于绘画的 canvas 元素、对本地离线存储的更好的支持、用于媒介回放的 video 和 audio 元素等等。那么我们应该如…

    2025年12月21日
    000
  • html代码什么意思?

    超文本标记语言(标准通用标记语言下的一个应用,外语缩写html),是迄今为止网络上应用最为广泛的语言,也是构成网页文档的主要语言。 HTML代码也就是HTML语言编写的文本。HTML文本是由HTML命令组成的描述性文本。 HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML的结构包括头…

    2025年12月21日
    000
  • HTML中的title是什么意思?

    title 属性规定关于元素的额外信息。这些信息通常会在鼠标移到元素上时显示一段工具提示文本(tooltip text)。 HTML中的title显示的是网页标题标签,可以让浏览者知道当前页面的主要是讲什么的,所以每个网页都应该有一个单独的title。 提示:title 属性常与 form 以及 a…

    2025年12月21日
    000
  • html5动画有什么用?

    html5动画主要服务对象还是给予web的应用,并不会对全部app开发造成威胁,这样有利于不同类型应用使用不同的开发方式,灵活性更强。 利用HTML5开发移动应用的优点主要有以下几点:   1、离线缓存为HTML5开发移动应用提供了基础。HTML5 Web Storage API可以看做是加强版的c…

    2025年12月21日
    000
  • doctype html 什么意思?

    前写html或者jsp页面,从来不注意doctype的声明,也不太明白doctype的作用意义。直到最近碰到了一个非常奇葩的bug:某一个页面在ie7和8,chrome,ff等下正常,但是在ie9下显示有问题。经过一番努力,终于在httpwatch里边找到了答案:doctype未声明。于是我给页面添…

    2025年12月21日
    000
  • html 可以用什么软件进行开发?

    html是超文本标记语言(hyper text markup language),标准通用标记语言下的一个应用,html 不是一种编程语言,而是一种标记语言 (markup language),是网页制作所必备的。 可以用以下几种软件开发: 一、HBuilder hbuilder是DCloud推出的…

    2025年12月21日
    000
  • 学html5能干什么的

    学完html5后我们可以选择去做html5工程师,或者有更强的能力可以选择去做一名资深的web架构师,或者是选择自己创业等。 HTML5是移动互联网前端的主流开发语言,目前还没有一个前端的开发语言能取代HTML5的位置,所以说,无论你是做手机网站还是在手机APP应用,前端的样式都是HTML5开发的。…

    2025年12月21日
    000
  • h5前端开发是什么

    html5前端开发就是一种前端技术集合开发的岗位,它主要包括了html5、CSS3以及JS前端技术;其中h5就是指HTML5,是描述网页的标准语言,html5与前端技术是一种从属的关系,即html5是属于前端开发的一部分。 想要知道H5前端开发是什么,我们得首先了解什么是H5以及什么是前端,以及他们…

    2025年12月21日
    000
  • 学html5后工作做什么

    学html5后工作可以做多种,比如:1、手机页游的3D化;2、动漫,二次元;3、轻应用,WebApp,微站;4、移动视频,在线直播引领视频升级;5、影视互动,HTML5推动泛娱乐产业发展等等。 学完HTML5能做什么?是很多同学的疑惑。今天我们来看看HTML5的发展方向: 推荐课程:HTML5教程。…

    2025年12月21日
    000
  • html5布局之路怎么样

    《html5布局之路》是清华大学出版社,于2017年6月出版的,涉及html、css、html5、css3的编程语言书籍,作者:刘国利。 推荐课程:HTML5教程。 本书以“非字典”的讲解方式,让HTML5、WEB前端的学习变得更加简单高效。 独有特点(与其他同类型书籍相比) 立即学习“前端免费学习…

    2025年12月21日
    000
  • html5搜索匹配怎么做?

    【HTML5+jquery】实现的搜索匹配效果,或者说是搜索过滤,当你在文本框输入一个字符时,如果下边的列表中有以此为开头的内容时,将自动为你显示相关内容。 示例中仅列出了一些,用时候你可以自己再完善下,代码仅为您提供一种思路,希望对你是有帮助的 HTML 公司选择: 厦门集众筹智科技有限公司 苏州…

    2025年12月21日
    000
  • html5编程需要什么软件?

    现今,HTML5非常火热,有不少朋友问HTML5需要什么软件编程,下面我将和大家分享十款可以用来编写HTML5的软件。 一、HBuilder hbuilder是DCloud推出的一款支持HTML5的Web开发IDE。快,是HBuilder的最大优势,通过完整的语法提示和代码输入法、代码块等,大幅提升…

    2025年12月21日 好文分享
    000
  • html5前端是什么?

    想要知道html5前端是什么,我们得首先了解什么是html5以及什么是前端,以及他们的关系。下面和小编一起了解一下吧。 什么是html5? 所谓“HTML5”,是指“HTML”的第5个版本,而“HTML”,则是指描述网页的标准语言。因此,HTML5,是第5个版本的“描述网页的标准语言”。 什么是前端…

    2025年12月21日
    000
  • html格式什么意思?

    有一天,小红的在文件夹里看到里面有一个html格式的文件,非常好奇,就问了小编,小编将答案总结了一下,带大家一起了解一下什么是html格式,html格式什么意思呢? 用HTML语言写的页面被称为HTML格式,它不含任何与平台和程序相关的信息,它们可以被任何文本编辑器读取。HTML语言是超文本标记语言…

    2025年12月21日
    000

发表回复

登录后才能评论
关注微信