首先判断是否为手机端

如果是L打头的方法 或者类 就说明是这个框架自带的_

if(LGlobal.canTouch)
{
//将屏幕设置为全屏充满
LGlobal.stageScale = LStageScaleMode.EXACT_FIT;
LSystem.screen(LStage.FULL_SCREEN);
}

然后设置主页面

<div id="legend"></div>

JS部分

//游戏的初始化   初始化完毕后会运行主函数maininit(10,'legend',800,450,main);//初始化一些变量 和 一些游戏的素材var imgData = [{name:"back",path:"./images/back.jpg"},{name:"player",path:"./images/player.png"},{name:"item0",path:"./images/item0.png"},{name:"item1",path:"./images/item1.png"},{name:"item2",path:"./images/item2.png"},{name:"item3",path:"./images/item3.png"},{name:"item4",path:"./images/item4.png"},{name:"item5",path:"./images/item5.png"},{name:"item6",path:"./images/item6.png"},{name:"item7",path:"./images/item7.png"}]var imglist;  //放素材// 背景层、人物层、物品层、游戏结束层、游戏素材加载层 ps图层var backLayer,playerLayer,itemLayer,overLayer,LoadingLayer;//人物var hero;//人物速度var step=50,stepindex=0;//积分var point = 0,pointTxt;//生命值var hp = 1,hpTxt;//主函数function main(){//实例化一个进度条LoadingLayer = new LoadingSample4()//将进度条放入到舞台里面addChild(LoadingLayer)//设置加载进度LLoadManage.load(imgData,  //素材function(progress) //设置进度{// console.log(progress)//每次都需要重新设置进度LoadingLayer.setProgress(progress)},gameInit  //当素材加载完毕后,执行的回调函数)}function gameInit(result){//将loading 层舞台删除掉removeChild(LoadingLayer)//素材保存起来imglist = result//先创建一个背景层backLayer = new LSprite()//将背景图层放到舞台上面 空的图层addChild(backLayer)//给背景图层加背景图addBackground();//添加人物到背景层addPlayer();//增加物品层//创建物品层itemLayer = new LSprite()//把物品层添加到背景层当中backLayer.addChild(itemLayer)//事件绑定,让人物和物体都运动起来addEvent();//添加显示的积分文本addText();}//显示积分和生命值function addText(){//创建一个文本层hpTxt = new LTextField()//设置生命值颜色为红色hpTxt.color = '#ff0000';//字体大小hpTxt.size = 30;//xy坐标hpTxt.x = 10;hpTxt.y = 10;//创建一个积分文本pointTxt = new LTextField()//积分设置颜色pointTxt.color = '#fff'//字体大小pointTxt.size = 30pointTxt.x = 10pointTxt.y = 50;backLayer.addChild(hpTxt)backLayer.addChild(pointTxt)//更新文本内容showText()}//显示分数function showText(){hpTxt.text = "生命值:"+hppointTxt.text = "积分:"+point}//事件绑定function addEvent(){//LEvent.ENTER_FRAME 播放事件//让背景层里面所有的元素进行播放backLayer.addEventListener(LEvent.ENTER_FRAME,onframe)//鼠标的按下backLayer.addEventListener(LMouseEvent.MOUSE_DOWN,onDown)//鼠标的弹起backLayer.addEventListener(LMouseEvent.MOUSE_UP,onUp)}//定义播放函数function onframe(){hero.run();//循环让物体层里面所有的物体全部动起来for(var i=0;i<itemLayer.childList.length;i++){//让物体层里面的元素全部动起来itemLayer.childList[i].run();//如果元素的模式 等于 die 说明要销毁他if(itemLayer.childList[i].mode == "die"){itemLayer.removeChild(itemLayer.childList[i])}}//添加下落的物品 每秒下落一个新物品if(stepindex++ > 1){stepindex = 0;addItem();}//增加显示积分和生命值的方法showText()if(hp <= 0){gameOver()return false}}//创建一个游戏结束方法function gameOver(){//背景的所有元素全部停掉backLayer.die()//删除掉物品层里面所有的下落物品itemLayer.removeAllChild();//创建一个游戏结束的文本var txt = new LTextField();//设置颜色txt.color = '#ff0000';txt.size = 50;txt.text = '游戏结束'//中间位置txt.x = (LGlobal.width - txt.getWidth())/2;txt.y = 100;//创建一个游戏结束层overLayer = new LSprite()//先把游戏结束层放到背景层backLayer.addChild(overLayer)//将文本放到层里面去overLayer.addChild(txt)//给游戏结束层绑定点击事件重新开始游戏backLayer.addEventListener(LMouseEvent.MOUSE_DOWN,function(){//将背景里面的所有内容干掉backLayer.die()//将游戏结束层里面的内容全部清空overLayer.removeAllChild()//重新开始游戏hp = 100;point = 0;addEvent();})}//添加下落的物品function addItem(){//创建一个物体的对象var item = new Item();//Math.flooritem.x = 20 + Math.floor(Math.random() * (LGlobal.width - 50))itemLayer.addChild(item)}//创建一个物体对象function Item(){//继承一个层对象base(this,LSprite,[])//保存作用域var self = this //设置模式self.mode = ''//随机获取一个图片出来 取小整  0 ~ 7 随机选取一个下标var index = Math.floor(Math.random() * 8)//到底是加分还是减分self.value = index < 4 ? 1 : -1//根据下标去把图片找到  index = 4 item4 imglist['item4']// imglist['item'+index]var bitmap = new LBitmap(new LBitmapData(imglist["item"+index]))self.addChild(bitmap)}//物体下落过程 Item.prototype.run = function(){//保存作用域var self = this//每次下落5像素self.y += 5;//如果有碰撞的话 也要销毁 返回true 有碰撞 false没有碰撞var hit = self.checkHit();//说明物体已经超出了屏幕范围if(hit || self.y > LGlobal.height){//把物体销毁掉self.mode = 'die'}}//给物体增加一个检测碰撞方法Item.prototype.checkHit = function(){//先把自己保存起来var self = this//将两个对象看作圆来检测碰撞 LGlobal.hitTestArc//如果返回true 说明碰撞到了if(LGlobal.hitTestArc(self,hero)){if(self.value > 0){point += 1;  //加分}else{//减生命值hp -= 1;}//确实有碰撞return true;}//没有碰撞return false;}//定义鼠标按下事件function onDown(event){if(event.selfX < LGlobal.width / 2){//设置元素的属性为 lefthero.mode = 'left'//在给他设置一组专门的动画hero.anime.setAction(1)}else{hero.mode = 'right'//在给元素设置一组动画hero.anime.setAction(2)}}//定义鼠标的弹起事件function onUp(event){//松开的时候让元素超前hero.mode = '';hero.anime.setAction(0);}//自定义一个背景方法function addBackground(){//创建一个图片对象,并且将这个图片对象放到背景图层// 1、创建图片对象并加载// new LBitmap 创建一个img标签// new LBitmapData(imglist['back']) img src="data:image/png"//imglist['back']  获取到的是背景图片素材// console.log(imglist['back']);var bitmap = new LBitmap(new LBitmapData(imglist['back']))//将图片塞到背景图层里面backLayer.addChild(bitmap)}//自定义一个人物层对象function addPlayer(){//创建一个图层playerLayer = new LSprite();//将人物图层插入到背景图层里面backLayer.addChild(playerLayer)//生成一个人物hero = new Player()//设置坐标点hero.x = hero.y = 350//将角色放到人物层里面去playerLayer.addChild(hero)}//定义一个角色对象function Player(){//让角色也继承一下图层关系base(this,LSprite,[])  //base = 继承//保存作用域区间var self = this//往左边 往右边self.mode = ""//将人物精灵图切割//将传入的宽和高,按照行数和列数进行拆分计算,会得到一个2维数组。// 256 × 256  4 x 4var list = LGlobal.divideCoordinate(256,256,4,4);//默认取了一张图片var data = new LBitmapData(imglist['player'],0,0,64,64)//设置一组动画  self 自己 data 显示的这张图 list 动画的效果数组self.anime = new LAnimation(self,data,list)//设置动作self.step = 2, self.stepindex = 0}//给人物扩展一个方法,让人物运动起来Player.prototype.run = function(){//作用域保存var self = this;//判断是否有到达动作的最后一位if(self.stepindex++ > self.step){//将动作变化第一张self.stepindex = 0;//播放下一贞动画self.anime.onframe();}if(self.mode == "left"){//往左边走if(self.x > 10){self.x -= 10; //self.x = self.x - 10}}else if(self.mode == "right"){//往右边走 判断是否有达到边界部分if(self.x < LGlobal.width - self.getWidth()){self.x += 10; //self.x = self.x + 10}}}
</script>

最后效果

lufylegend引擎制作接水果小游戏相关推荐

  1. 使用Hype物理引擎制作一个网页小游戏(中)

    在上一小节中,相信大家跟着小编的教程都能够顺利完成这款网页小游戏的静态场景制作,在本小节中,小编将带着大家完成网页小游戏的动画录制部分. 第一步:从上一节的游戏预览效果可以看到,游戏过程中,上方的矩形 ...

  2. 白鹭引擎正式支持微信小游戏开发

    12月28日微信迎来更新,正式上线小游戏,并开放了小游戏开发文档和开发者工具.在微信发布新版本后,白鹭引擎立即添加了对于微信小游戏开发的支持,开发者只需要使用白鹭引擎的最新版本,通过使用白鹭引擎完整工 ...

  3. python接水果游戏代码_Python开发接水果小游戏编程

    我研发的Python游戏引擎Pylash已经更新到1.4了.现在我们就来使用它完成一个极其简单的小游戏:接水果.以下是游戏截图: vc/yvPy/2NbGyMvO79LGtq+jrMq5yMvO79P ...

  4. 【抖音小游戏】 Unity制作抖音小游戏方案 最新完整详细教程来袭【持续更新】

    前言 [抖音小游戏] Unity制作抖音小游戏方案 最新完整详细教程来袭[持续更新] 一.相关准备工作 1.1 用到的相关网址 1.2 注册字节开发者后台账号 二.相关集成工作 2.1 下载需要的集成 ...

  5. Python开发接水果小游戏

    我研发的Python游戏引擎Pylash已经更新到1.4了.如今我们就来使用它完毕一个极其简单的小游戏:接水果. 下面是游戏截图: 游戏操作说明:点击屏幕左右两边或者使用键盘方向键控制人物移动.使人物 ...

  6. python连连看小游戏_利用Python制作一个连连看小游戏,边学边玩!

    导语 今天我们将制作一个连连看小游戏,让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块 环境搭建 安装Python并添加到环 ...

  7. c语言使用easyX图形库制作打气球小游戏

    大一c语言使用easyX图形库制作打气球小游戏 如果你是入门easyX图形库,那么这个打气球小游戏将会是和不错的入门项目选择,easyX开创了可视化窗口,使用户更加直观的了解到对象的变化,总代码以及素 ...

  8. C# 制作贪吃蛇小游戏,最简单的实现

    C# 制作贪吃蛇小游戏 目录 画蛇 实现蛇的上下左右移动 随机生成目标物 开始游戏 计分 重新开始 增加难度 死亡判定 1.1 画蛇的一节 Class Element()Graphics g;publ ...

  9. 小福利,用Excel VBA编程制作一个变色小游戏

    小福利,用Excel VBA编程制作一个变色小游戏 设计思想:在正方形的四条边上都是设置循环函数,不断改变颜色和单元格里面的数值. Option ExplicitSub 按钮1_Click() Dim ...

  10. 【源代码】Python制作的赛车小游戏,逆行飙车

    python制作的赛车小游戏,逆行飙车,通过键盘方向键控制 程序运行截图 源代码 import pygame, sys, time, random# pygame 初始化 pygame.init() ...

最新文章

  1. 5G + 边缘计算系列文章
  2. nvidia 程序安装失败
  3. 2016 ICPC World Finals -Ceiling Function
  4. (11)Spring Boot配置ContextPath【从零开始学Spring Boot】
  5. research paper for management science
  6. 使用NSURLCache 数据缓存
  7. python3列表del 语句
  8. 代理模式coding-静态代理
  9. dubbo 支持服务降级吗_关于dubbo的服务降级
  10. 微信小程序第三方平台和附近的小程序将开放
  11. 谷歌浏览器任务栏图标变白色解决方法
  12. SpingCloud获取当前服务ip地址
  13. 软件架构设计---产品线及系统演化
  14. 基于遥感影像的变化检测数据集
  15. Imperva waf简介
  16. 计算思维及其培养方式
  17. 京东商品及评论 数据采集
  18. JAVA算法:走迷宫回溯算法设计(JAVA版本)
  19. web前端从入门到放弃
  20. 机器学习6-多分类学习器拆分策略

热门文章

  1. 禅道下载与安装教程(完整版)
  2. 前端运行python代码几种方式_前端和python
  3. CorelDRAWX4的VBA插件开发(十一)弹窗界面和一键导出图片
  4. 解决:fatal error: opencv2/xfeatures2d.hpp: No such file or directory
  5. 算法学习系列(MCMC):MCMC采样
  6. PIFA 天线的推论及计算方法
  7. 计算机基础知识会议记录,电脑上会议记录怎么写?
  8. Vibe算法原理与实践(C++)
  9. TP LINK交换机 console 超级终端链接设置
  10. mysql 取首字母_MySQL中获取拼音首字母的方法