• 伐木猪小游戏


    欢迎来到程序小院

    伐木猪

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

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

    html

    1. <script type="text/javascript" src="js/state/boot.js"></script>
    2. <script type="text/javascript" src="js/state/load.js"></script>
    3. <script type="text/javascript" src="js/state/menu.js"></script>
    4. <script type="text/javascript" src="js/state/play.js"></script>
    5. <script type="text/javascript" src="js/state/demo.js"></script>

    css

    1. *{
    2.  padding0;
    3.  margin0;
    4.  border: none;
    5.  user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: 
    6.     none;
    7.  box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; 
    8.   -ms-box-sizing: border-box;
    9. }
    10. canvas{
    11.  margin0 auto;
    12. }

    js

    1. var isStart = 0;
    2. window.Timberpig.state.demo = {
    3.  create: function(){
    4.   var game = this;
    5.   var j = 0//当第一次按下 不执行
    6.   var tweenA,tweenB;
    7.   this.background = mt.create("background"); //创建背景
    8.   this.ground = mt.create("ground");   //创建地面
    9.   this.cloud = mt.create("cloud");   //创建云层
    10.   this.cloud.update = function(){    //云层动画
    11.    for(var i = 0; i < this.length; i++){
    12.     if(this.getChildAt(i).x + this.getChildAt(i).width < 0){
    13.      this.getChildAt(i).x = game.world.width;
    14.      this.getChildAt(i).y = game.rnd.between(game.world.centerY / 2,game.world.centerY / 1.5);
    15.     }
    16.     this.getChildAt(i).x--;
    17.    }
    18.   };
    19.   this.tree = mt.create("tree");      //创建树木
    20.   this.title = mt.create("title");     //创建标题
    21.      tweenA = game.add.tween(this.title).to( { y: this.title.y + 100 }, 2000"Linear");
    22.   tweenB = game.add.tween(this.title).to( { y: this.title.y }, 2000"Linear");
    23.   tweenA.chain(tweenB);        //缓动动画
    24.   tweenB.chain(tweenA);        //动画链接
    25.   tweenA.start();          //播放动画
    26.   this.title.update = function(){
    27.    if(isStart == 1){this.destroy();}
    28.   };
    29.   this.Score = mt.create("Score");
    30.   this.Score.alpha = 0;
    31.   var Score = this.Score;
    32.   this.btnPlay = mt.create("btnPlay");    //开始按钮
    33.   this.btnPlay.inputEnabled = true;     //接收事件
    34.   this.btnPlay.events.onInputDown.addOnce(function(){ //鼠标点击事件
    35.    j = 2;
    36.    isStart = 1;
    37.    Score.alpha = 1;
    38.   });
    39.   this.btnPlay.update = function(){
    40.    if(isStart == 1){this.destroy();}
    41.   };
    42.   this.player = mt.create("player");
    43.   var player = this.player;
    44.   this.player.dt = 0;
    45.   this.player.frameIndex = this.player.frame;
    46.   var cutA = this.player.animations.add('cut', [012]);
    47.   this.player.animations.add('gif', [07]);
    48.   this.player.animations.add('die',[12,11,10,4,3,8,9,6,5],10,false);
    49.   cutA.onComplete.add(function(){
    50.    player.animations.play('gif',5,true);
    51.   }, this);
    52.   this.player.anchor.set(0.5,0);
    53.   this.player.leftX = 184;
    54.   this.player.rightX = 354;
    55.   this.player.x = this.player.leftX;
    56.   this.player.update = function(){
    57. //    this.dt++;
    58. //    if(this.dt % 10 === 0){
    59. //     if(this.frameIndex === 0){
    60. //      //console.log("a");
    61. //      this.frameIndex = 7;
    62. //     } else {
    63. //      //console.log("b");
    64. //      this.frameIndex = 0;
    65. //     }
    66. //    }
    67. //    this.frame = this.frameIndex;//播放人物常态动画
    68.    
    69.    if(isStart == 1){
    70.     if (j <= 1return false;
    71.     if (game.input.activePointer.isDown){//游戏内鼠标点击
    72.      if(game.input.activePointer.x < game.world.centerX){
    73.       this.x = this.leftX;
    74.       this.scaleX = 1;
    75.      } else {
    76.       this.x = this.rightX;
    77.       this.scaleX = -1;
    78.      }
    79.      //this.animations.play('cut');
    80.      cutA.play(10,false);
    81.     }
    82.    }
    83.   };
    84.   this.gameOver = mt.create("gameOver");
    85.   this.gameOver.alpha = 0;
    86.   this.gameOver.getData().userData.score = 0;
    87.   this.gameOver.update = function(){
    88.    if(isStart !== 2) {return false}
    89.    if(isStart == 2){
    90.     Score.destroy();
    91.     this.mt.children.gameCase.setText(this.getData().userData.case);
    92.     this.mt.children.gameScore.setText(this.getData().userData.score);
    93.     this.mt.children.gameCase.x = game.world.centerX;
    94.     this.mt.children.gameScore.x = game.world.centerX;
    95.     this.alpha = 0.9;
    96.     if(this.getData().userData.case == "Lost"){
    97.      //死亡动画
    98.      player.scaleY = 1;
    99.      //player.frame = 5;
    100.      player.animations.play('die');
    101.     }
    102.     isStart = 3;
    103.    }
    104.   };
    105.   this.gameOver.mt.children.btnRetry.inputEnabled = true;
    106.   this.gameOver.mt.children.btnRetry.events.onInputDown.addOnce(function(){
    107.    game.state.start("demo");
    108.   },this);
    109.   var gameOver = this.gameOver;
    110.   this.time = mt.create("time");
    111.   this.time.alpha = 0;
    112.   this.time.update = function(){
    113.    if(isStart == 1){
    114.     this.alpha = 1;
    115.     this.mt.children.top.width--;
    116.     if(this.mt.children.top.width <= 0){
    117.      this.alpha = 0;
    118.      gameOver.getData().userData.case = "Lost";
    119.      isStart = 2;
    120.     }
    121.    }
    122.    if(isStart == 2){
    123.     this.alpha = 0;
    124.    }
    125.   };
    126.   var dx1 = 0,dx2 = 0;
    127.   game.input.onDown.add(function(){
    128.    if(isStart == 1){//游戏内鼠标点击
    129.     if(game.input.activePointer.x < game.world.centerX){
    130.      //left
    131.      dx1 = 50;
    132.      dx2 = 100;
    133.     } else {
    134.      //right
    135.      dx1 = -50;
    136.      dx2 = -100;
    137.     }
    138.     for(var i = 1;i < this.tree.length;i++){
    139.      if(this.tree.getChildAt(i).y + this.tree.getChildAt(i).height >= 
    140.           this.tree.getChildAt(0).y){
    141.       //创建动画
    142.       var animation = game.add.image(this.tree.getChildAt(i).x,
    143.             this.tree.getChildAt(i).y,"");
    144.       animation.texture = this.tree.getChildAt(i).texture;
    145.       tweenA = game.add.tween(animation).to( { x: animation.x + 
    146.             dx1,y: animation.y - 50  }, 300"Linear");
    147.       tweenB = game.add.tween(animation).to( { x: animation.x + 
    148.             dx2,y: animation.y + 50 }, 300"Linear");        
    149.             //缓动动画
    150.       tweenB.onComplete.add(function(){
    151.        animation.destroy();
    152.       },this);
    153.       tweenA.chain(tweenB);
    154.       tweenA.start(); /播放动画
    155.       //销毁树桩上的一段木头
    156.       this.tree.getChildAt(i).destroy();
    157.       //游戏得分递增
    158.       this.gameOver.getData().userData.score++;
    159.       this.time.mt.children.top.width += 5;
    160.       if(this.gameOver.getData().userData.score == 49){
    161.        this.gameOver.getData().userData.case = "Win";
    162.        isStart = 2;
    163.       }
    164.      } 
    165.     }
    166.     for(var i = 1;i < this.tree.length;i++){//被砍往下掉
    167.      this.tree.getChildAt(i).y += 57;
    168.      if(this.tree.getChildAt(i).y + this.tree.getChildAt(i).height >= 
    169.           this.tree.getChildAt(0).y){//防止越界
    170.       this.tree.getChildAt(i).y = this.tree.getChildAt(0).y - 
    171.             this.tree.getChildAt(i).height;
    172.      }
    173.     }
    174.    }
    175.   },this);
    176.  },
    177.  update:function(){
    178.   if(isStart !== 1return false;
    179.   this.Score.text = this.gameOver.getData().userData.score;
    180.   var gameOver = this.gameOver;
    181.   this.game.physics.arcade.overlap(this.player,this.tree,function(){
    182.    //console.log("游戏结束");
    183.    gameOver.getData().userData.case = "Lost";
    184.    isStart = 2;
    185.   });
    186.  }
    187. };

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

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

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

  • 相关阅读:
    W3C发布WebAssembly 2.0首个草案
    流量分析——一、蚁剑流量特征
    seatunnel win idea 本地调试
    HTML小游戏13 —— 仿《神庙逃亡》3D风格跑酷游戏《墓地逃亡》(附完整源码)
    洛谷 p1308 分析母串,是否有子串,如果有有几个,第一个出现的位置在哪?
    golang关于errors.As两个参数的问题记录
    微积分 - 对数函数与指数函数的导数
    华为数通方向HCIP-DataCom H12-831题库(单选题:161-180)
    如何用PHP获取各大电商平台的数据
    2023年中国饲料酸化剂产量、需求量及市场规模分析[图]
  • 原文地址:https://blog.csdn.net/qq_16659821/article/details/134273098