伐木猪小游戏

欢迎来到程序小院

伐木猪

玩法:控制小猪点击屏幕左右砍树,不能碰到树枝,考验手速与眼力,记录分数,快去挑战伐木吧^^。

开始游戏icon-default.png?t=N7T8https://www.ormcc.com/play/gameStart/199

html

<script type="text/javascript" src="js/state/boot.js"></script>
<script type="text/javascript" src="js/state/load.js"></script>
<script type="text/javascript" src="js/state/menu.js"></script>
<script type="text/javascript" src="js/state/play.js"></script>
<script type="text/javascript" src="js/state/demo.js"></script>

css

*{
 padding: 0;
 margin: 0;
 border: none;
 user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: 
    none;
 box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; 
  -ms-box-sizing: border-box;
}
canvas{
 margin: 0 auto;
}

js

var isStart = 0;
window.Timberpig.state.demo = {
 create: function(){
  var game = this;
  var j = 0; //当第一次按下 不执行
  var tweenA,tweenB;
  this.background = mt.create("background"); //创建背景
  this.ground = mt.create("ground");   //创建地面
  this.cloud = mt.create("cloud");   //创建云层
  this.cloud.update = function(){    //云层动画
   for(var i = 0; i < this.length; i++){
    if(this.getChildAt(i).x + this.getChildAt(i).width < 0){
     this.getChildAt(i).x = game.world.width;
     this.getChildAt(i).y = game.rnd.between(game.world.centerY / 2,game.world.centerY / 1.5);
    }
    this.getChildAt(i).x--;
   }
  };
  this.tree = mt.create("tree");      //创建树木
  this.title = mt.create("title");     //创建标题
     tweenA = game.add.tween(this.title).to( { y: this.title.y + 100 }, 2000, "Linear");
  tweenB = game.add.tween(this.title).to( { y: this.title.y }, 2000, "Linear");
  tweenA.chain(tweenB);        //缓动动画
  tweenB.chain(tweenA);        //动画链接
  tweenA.start();          //播放动画
  this.title.update = function(){
   if(isStart == 1){this.destroy();}
  };
  this.Score = mt.create("Score");
  this.Score.alpha = 0;
  var Score = this.Score;
  this.btnPlay = mt.create("btnPlay");    //开始按钮
  this.btnPlay.inputEnabled = true;     //接收事件
  this.btnPlay.events.onInputDown.addOnce(function(){ //鼠标点击事件
   j = 2;
   isStart = 1;
   Score.alpha = 1;
  });
  this.btnPlay.update = function(){
   if(isStart == 1){this.destroy();}
  };
  this.player = mt.create("player");
  var player = this.player;
  this.player.dt = 0;
  this.player.frameIndex = this.player.frame;
  var cutA = this.player.animations.add('cut', [0, 1, 2]);
  this.player.animations.add('gif', [0, 7]);
  this.player.animations.add('die',[12,11,10,4,3,8,9,6,5],10,false);
  cutA.onComplete.add(function(){
   player.animations.play('gif',5,true);
  }, this);
  this.player.anchor.set(0.5,0);
  this.player.leftX = 184;
  this.player.rightX = 354;
  this.player.x = this.player.leftX;
  this.player.update = function(){
//    this.dt++;
//    if(this.dt % 10 === 0){
//     if(this.frameIndex === 0){
//      //console.log("a");
//      this.frameIndex = 7;
//     } else {
//      //console.log("b");
//      this.frameIndex = 0;
//     }
//    }
//    this.frame = this.frameIndex;//播放人物常态动画
   
   if(isStart == 1){
    if (j <= 1) return false;
    if (game.input.activePointer.isDown){//游戏内鼠标点击
     if(game.input.activePointer.x < game.world.centerX){
      this.x = this.leftX;
      this.scaleX = 1;
     } else {
      this.x = this.rightX;
      this.scaleX = -1;
     }
     //this.animations.play('cut');
     cutA.play(10,false);
    }
   }
  };
  this.gameOver = mt.create("gameOver");
  this.gameOver.alpha = 0;
  this.gameOver.getData().userData.score = 0;
  this.gameOver.update = function(){
   if(isStart !== 2) {return false}
   if(isStart == 2){
    Score.destroy();
    this.mt.children.gameCase.setText(this.getData().userData.case);
    this.mt.children.gameScore.setText(this.getData().userData.score);
    this.mt.children.gameCase.x = game.world.centerX;
    this.mt.children.gameScore.x = game.world.centerX;
    this.alpha = 0.9;
    if(this.getData().userData.case == "Lost"){
     //死亡动画
     player.scaleY = 1;
     //player.frame = 5;
     player.animations.play('die');
    }
    isStart = 3;
   }
  };
  this.gameOver.mt.children.btnRetry.inputEnabled = true;
  this.gameOver.mt.children.btnRetry.events.onInputDown.addOnce(function(){
   game.state.start("demo");
  },this);
  var gameOver = this.gameOver;
  this.time = mt.create("time");
  this.time.alpha = 0;
  this.time.update = function(){
   if(isStart == 1){
    this.alpha = 1;
    this.mt.children.top.width--;
    if(this.mt.children.top.width <= 0){
     this.alpha = 0;
     gameOver.getData().userData.case = "Lost";
     isStart = 2;
    }
   }
   if(isStart == 2){
    this.alpha = 0;
   }
  };
  var dx1 = 0,dx2 = 0;
  game.input.onDown.add(function(){
   if(isStart == 1){//游戏内鼠标点击
    if(game.input.activePointer.x < game.world.centerX){
     //left
     dx1 = 50;
     dx2 = 100;
    } else {
     //right
     dx1 = -50;
     dx2 = -100;
    }
    for(var i = 1;i < this.tree.length;i++){
     if(this.tree.getChildAt(i).y + this.tree.getChildAt(i).height >= 
          this.tree.getChildAt(0).y){
      //创建动画
      var animation = game.add.image(this.tree.getChildAt(i).x,
            this.tree.getChildAt(i).y,"");
      animation.texture = this.tree.getChildAt(i).texture;
      tweenA = game.add.tween(animation).to( { x: animation.x + 
            dx1,y: animation.y - 50  }, 300, "Linear");
      tweenB = game.add.tween(animation).to( { x: animation.x + 
            dx2,y: animation.y + 50 }, 300, "Linear");        
            //缓动动画
      tweenB.onComplete.add(function(){
       animation.destroy();
      },this);
      tweenA.chain(tweenB);
      tweenA.start(); /播放动画
      //销毁树桩上的一段木头
      this.tree.getChildAt(i).destroy();
      //游戏得分递增
      this.gameOver.getData().userData.score++;
      this.time.mt.children.top.width += 5;
      if(this.gameOver.getData().userData.score == 49){
       this.gameOver.getData().userData.case = "Win";
       isStart = 2;
      }
     } 
    }
    for(var i = 1;i < this.tree.length;i++){//被砍往下掉
     this.tree.getChildAt(i).y += 57;
     if(this.tree.getChildAt(i).y + this.tree.getChildAt(i).height >= 
          this.tree.getChildAt(0).y){//防止越界
      this.tree.getChildAt(i).y = this.tree.getChildAt(0).y - 
            this.tree.getChildAt(i).height;
     }
    }
   }
  },this);
 },
 update:function(){
  if(isStart !== 1) return false;
  this.Score.text = this.gameOver.getData().userData.score;
  var gameOver = this.gameOver;
  this.game.physics.arcade.overlap(this.player,this.tree,function(){
   //console.log("游戏结束");
   gameOver.getData().userData.case = "Lost";
   isStart = 2;
  });
 }
};

源码icon-default.png?t=N7T8https://www.ormcc.com/

需要源码请关注添加好友哦^ ^

转载:欢迎来到本站,转载请注明文章出处https://ormcc.com/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式系统设计与应用---ARM指令集(学习笔记)

目录 本文图片截取自书本和老师的ppt 概述 指令格式 指令的条件码 ARM的寻址方式 立即寻址 寄存器寻址 寄存器间接寻址 寄存器移位寻址 变址寻址 多寄存器寻址 相对寻址 堆栈寻址 块复制寻址 ARM指令集简介 跳转指令 1.B指令 2.BL指令 数据处理指令 1.数据传…

G-LAB IT实验室【11月】网工公开课 即将开始~

带你一起走进网工的世界&#xff01;G-LAB网工入门免费公开课即将开讲&#xff01;无论是想学习基础网络组网还是网络互通技术实施&#xff0c;这个公开课都是你不容错过的&#xff01; 公开课课程为期两天&#xff0c;11月7日&#xff06;11月8日晚20&#xff1a;00 分享主题…

第七章 图【数据结构与算法】【精致版】

第七章 图【数据结构与算法】【精致版】 前言版权第七章 图7.1 应用实例7.2图的基本概念7.3图的存储结构7.3.1邻接矩阵**1-邻接矩阵.c****2-邻接矩阵plus.c** 7.3.2 邻接表**3-邻接表.c** **4-邻接表plus.c** 7.3.3 十字链表7.3.4多重链表 7.4图的遍历7.4.1深度优先搜索遍历**5…

动作捕捉系统通过SDK与LabVIEW通信

运动分析、VR、机器人等应用中常使用LabVIEW对动作捕捉数据进行实时解算。NOKOV度量动作捕捉系统支持通过SDK与LabVIEW进行通信&#xff0c;将动作数据传入LabVIEW。 一、软件设置 1、形影软件设置 1、将模式切换到后处理模式 2、加载一个刚体数据 3、打开软件设置 4、选择网…

Flink往Starrocks写数据报错:too many filtered rows

Bug信息 Caused by: com.starrocks.data.load.stream.exception.StreamLoadFailException: {"TxnId": 2711690,"Label": "cd528707-8595-4a35-b2bc-39b21087d6ec","Status": "Fail","Message": "too many f…

帧间快速算法论文阅读

Low complexity inter coding scheme for Versatile Video Coding (VVC) 通过分析相邻CU的编码区域&#xff0c;预测当前CU的编码区域&#xff0c;以终止不必要的分割模式。 &#x1d436;&#x1d448;1、&#x1d436;&#x1d448;2、&#x1d436;&#x1d448;3、&#x…

宝马——使用人工智能制造和驾驶汽车

德国汽车制造商宝马(BMW)每年在全球制造和销售250万台汽车&#xff0c;其品牌包括宝马、MINI和劳斯莱斯。 宝马汽车以其卓越的性能和对新技术的应用而著名&#xff0c;它是道路上最精致的汽车之一&#xff0c;并且和其竞争对手戴姆勒(Daimler)一样&#xff0c;在将自动驾驶汽车…

从行车记录仪恢复已删除/丢失视频的方法

“我的车里有行车记录仪。几天前&#xff0c;当我下班回家时&#xff0c;一辆卡车不知从哪里冒出来撞向了我。我们的两辆车都损坏了&#xff0c;但幸运的是&#xff0c;没有人受伤。我曾与卡车司机就修理我的汽车进行过会面&#xff0c;但他说我有错。我需要查看我的行车记录仪…

音乐播放芯片选型规则概述

在选择音乐播放芯片时&#xff0c;应该先了解芯片的参数和特性&#xff1b;做到心中有数。常见的参数包括&#xff1a;采样率、位深度、动态范围、总谐波失真&#xff08;THD&#xff09;、信噪比&#xff08;SNR&#xff09;等。这些参数决定了芯片的音频处理能力和音质表现。…

HelpLook VS HelpDocs:知识库工具一对一比较

您是否正在寻找比HelpDocs更好的替代方案&#xff1f;您是否希望使用功能更强大的类似工具&#xff1f;HelpDocs是一款简单易用的知识库软件&#xff0c;可以在一个集中的位置创建、托管和监控自助服务门户。凭借其模板、原生集成和详细的分析功能提供不错的用户体验。尽管它具…

Jmeter全流程性能测试实战

项目背景&#xff1a; 我们的平台为全国某行业监控平台&#xff0c;经过3轮功能测试、接口测试后&#xff0c;98%的问题已经关闭&#xff0c;决定对省平台向全国平台上传数据的接口进行性能测试。 01、测试步骤 1、编写性能测试方案 由于我是刚进入此项目组不久&#xff0c…

ASP.NETCore6开启文件服务允许通过url访问附件(图片)

需求背景 最近在做一个工作台的文件上传下载功能&#xff0c;主要想实现上传图片之后&#xff0c;可以通过url直接访问。由于url直接访问文件不安全&#xff0c;所以需要手动开启文件服务。 配置 文件路径如下&#xff0c;其中Files是存放文件的目录&#xff1a; 那么&…

【大模型应用开发教程】04_大模型开发整体流程 基于个人知识库的问答助手 项目流程架构解析

大模型开发整体流程 & 基于个人知识库的问答助手 项目流程架构解析 一、大模型开发整体流程1. 何为大模型开发定义核心点核心能力 2. 大模型开发的整体流程1. 设计2. 架构搭建3. Prompt Engineering4. 验证迭代5. 前后端搭建 二、项目流程简析步骤一&#xff1a;项目规划与…

Docker-compose容器群集编排管理工具

目录 Docker-compose 1、Docker-compose 的三大概念 2、YAML文件格式及编写注意事项 1&#xff09;使用 YAML 时需要注意下面事项 2&#xff09;ymal文件格式 3&#xff09;json格式 3、Docker Compose配置常用字段 4、Docker-compose的四种重启策略 5、Docker Compose…

Danswer 接入 Llama 2 模型 | 免费在 Google Colab 上托管 Llama 2 API

一、前言 前面在介绍本地部署免费开源的知识库方案时&#xff0c;已经简单介绍过 Danswer《Danswer 快速指南&#xff1a;不到15分钟打造您的企业级开源知识问答系统》&#xff0c;它支持即插即用不同的 LLM 模型&#xff0c;可以很方便的将本地知识文档通过不同的连接器接入到…

c面向对象编码风格(上)

面向对象和面向过程的基本概念 面向对象和面向过程是两种不同的编程范式&#xff0c;它们在软件开发中用于组织和设计代码的方式。 面向过程编程&#xff08;Procedural Programming&#xff09;是一种以过程&#xff08;函数、方法&#xff09;为核心的编程方式。在面向过程…

Docker 多阶段构建的原理及构建过程展示

Docker多阶段构建是一个优秀的技术&#xff0c;可以显著减少 Docker 镜像的大小&#xff0c;从而加快镜像的构建速度&#xff0c;并减少镜像的传输时间和存储空间。本文将详细介绍 Docker 多阶段构建的原理、用途以及示例。 Docker 多阶段构建的原理 在传统的 Docker 镜像构建…

软件设计模式的意义

软件设计模式的意义 所有开发人员都应该接触过软件设计模式这个概念&#xff0c;看过《设计模式-可复用的对象软件的基础》这本书&#xff0c;在面试中都被问过&#xff1a; 你用过哪些设计模式这种问题。但很大可能也就仅此而已了。 为什么好像只能从框架中找到设计模式的应用…

Springboot+vue的导师双选管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的导师双选管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的导师双选管理系统&#xff0c;采用M&#xff08;model&a…

11.4-GPT4AllTools版本已开始对小部分GPT3.5用户内测推送

OpenAI已经开始小规模推送GPT4 AllTools功能&#xff0c;部分GPT博主已经第一时间体验了此功能&#xff0c;此功能特色是整合目前的多模态功能以及文件上传和联网模块&#xff0c;无需切换&#xff0c;更要全面综合 可上传包括 PDF、数据文件在内的任意文档&#xff0c;并进行分…