您好,欢迎访问一九零五行业门户网

html5游戏开发-简单老虎机

本游戏使用的是html5的canvas,运行游戏需要浏览器支持html5。
使用开源引擎:lufylegend.js,
lufylegend.js引擎包内包含这个demo,请直接下载lufylegend.js引擎,查看引擎包内源码
lufylegend.js引擎下载地址
http://lufylegend.com/lufylegend
游戏截图
游戏测试地址
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;i++){ if(!reels[i].startreel)allstop++; } if(allstop >= 3){ for(i=0;i<3;i++){ stopbtn[i].visible = false; } if(reels[0].stopnum >= 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.reels.length;i++){ self.reels[i].y = sy; sy += self.reels[i].height; self.addchild(self.reels[i]); } //self.startreel = true; //self.stopflag = false; } reel.prototype.onframe = function (){ var self = this; if(self.startreel)self.wheel(); }; reel.prototype.getreel = function (){ var self = this; if(self.currentnum > 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 <= self.minspeed && self.indexs[1] == self.combination[self.stopnum][self.index] && self.reels[1].y + 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 < 200){ self.reels[3].height = 200 - self.reels[3].y; self.reels[3].bitmapdata.height = self.reels[3].height; } } if(self.reels[0].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
<!doctype html> <html> <head> <meta charset="utf-8"> <title>slot</title> <meta name="viewport" content="width=480,initial-scale=0.5" /> <script type="text/javascript" src="../legend/legend.js"></script> <script type="text/javascript" src="./js/reel.js"></script> <script type="text/javascript" src="./js/main.js"></script> </head> <body> <p id="mylegend">loading……</p> </body> </html>
以上就是html5游戏开发-简单老虎机的内容。
其它类似信息

推荐信息