朵拉钓鱼,快来一起钓鱼

news2025/1/11 23:55:06

欢迎来到程序小院

朵拉钓鱼

玩法:鼠标对准鱼的位置点击左键进行钓鱼,钓到不同鱼有不同分数奖励,钓到鞋子-2,钓到鲨鱼游戏结束,统计分数,快去钓鱼吧^^。

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

html

<canvas id="gameCanvas" width="480" height="800"></canvas>

css

#main
{
    width:320px;
    margin:0 auto;
    background-color:#FFF;
}
.popup-base {
    position:fixed;
    top:0;
    left:0;
    bottom:0;
    right:0;
    visibility:hidden;
    z-index:1000000;
    opacity:1;
    -moz-transition:all .3s;
    -webkit-transition:opacity .3s;
    -o-transition:all .3s;
    transition:all .3s;
    background:rgba(0,0,0,.3);
}

.popup-base.popup-visible {
    opacity:1;
    visibility:visible;
}

#popup-bg {
    position:fixed;
    top:0;
    left:0;
    bottom:0;
    right:0;
}

.popup-base .dialog {
    position:absolute;
}

.dialog-prompt {
    margin-top:10px;
    text-align:center;
}

.dialog-buttons {
    padding:10px;
    text-align:right;
    background:-webkit-gradient(linear , 0% 0% , 0% 100%, from(#E6E6E6), to(#F7F6F6));
    border-bottom-left-radius:4px;
    border-bottom-right-radius:4px;
}

.popup {
    font-family:sans-serif;
    font-weight:700;
    text-align:center;
    font-size:12px;
    line-height:130%;
    /* text-transform:uppercase; */
    background-color:rgba(049,049,049,.7);
    border-radius:6px;
    -webkit-box-shadow:0px 0px 5px rgba(0,0,0,1);
    z-index:999999999;
}

js

//鱼对象
var fishObj = function (id, imgid, speed, direction, sizeindex, x, y, w, h, status, weight) {
  this.id = id;
  this.imgid = imgid;
  this.speed = speed;
  this.direction = direction;
  this.sizeindex = sizeindex;
  this.x = x;
  this.y = y;
  this.w = w;
  this.h = h;
  this.status = status;
  this.weight = weight;
}
//玩家对象
var MainObj = function () {
  this.direction = 2;
  this.status = -1;
  this.x = 130;
  this.y = 80;
  this.defaultY = 80;
  this.speed = brower.isIphone == true ? 100 : 105;
  this.lese = 0;
  this.isShark = 0;
}
//鲨鱼
var SharkObj = function () {
  this.flag = 0;
  this.direction = 1;
  this.speed = 4;
  this.x = 30;
  this.y = 180;
  this.w = 30;
  this.h = 20;
  this.status = 0;
  this.playnum = 10;
}
var mainObj = new MainObj();
var sharkObj = new SharkObj();
brower.InvaliBrower();
$(document).ready(function (e) {
  setInterval(function () { window.scrollTo(0, 2); }, 500);
  context = document.getElementById("mycanvas");
  if (context.getContext) {
      context = context.getContext("2d");
      loadedimg = new Image();
      loadedimg.src = '/default/game/dldy/img/load.png';
      loadedimg.onload=drawLoaded;        
      loadImages();
  } else {
      alert("is Not");
  }
});
//点击钓鱼事件
function Start(e) {
  e.preventDefault();
  var x = 0;
  var x_2 = 0;
  var y_2 = 0;
  if (window.innerWidth > 320) {
      if (brower.isIphone == false && brower.isMobile == false) {
          x_2 = e.clientX;
          y_2 = parseInt(event.clientY);
      } else {
          x_2 = event.touches[0].clientX;
          y_2 = parseInt(event.touches[0].clientY);
      }
      x = x_2 - parseInt((window.innerWidth - 320) / 2);
  } else {
      if (brower.isIphone == false && brower.isMobile == false) {
          x_2 = parseInt(event.clientX);
          y_2 = parseInt(event.clientY);
      } else {
          x_2 = parseInt(event.touches[0].clientX);
          y_2 = parseInt(event.touches[0].clientY);
      }
      x = x_2;
  }
  var need_y1 = 0;
  var need_y2 = 40;
  var need_x1 = 260;
  var need_x2 = 300;
  if(brower.isQQ==true){
      need_y1 = -30;
      need_y2 = 30;
      need_x1 = 290;
      need_x2 = 340;
  }
  if (x >= need_x1 && x <= need_x2 && y_2 >= need_y1 && y_2 <= need_y2) {
      jQuery("#mycanvas").unbind(brower.clickEventName);
      drawMsg(35);
  } else if (mainObj.status == -1 && mainObj.y == mainObj.defaultY) {
      if (x <= 75) {
          mainObj.direction = 0;
          mainObj.x = 50;
      }
      if (x > 75 && x <= 125) {
          mainObj.direction = 1;
          mainObj.x = 90;
      }
      if (x > 125 && x <= 170) {
          mainObj.direction = 2;
          mainObj.x = 130;
      }
      if (x > 170 && x <= 210) {
          mainObj.direction = 3;
          mainObj.x = 180;
      }
      if (x > 210) {
          mainObj.direction = 4;
          mainObj.x = 200;
      }
      mainObj.status = 0;
  }
}

//加载图片
function loadImages() {
  var imgOnload = function () {
      this.onload = null;
      ld++;
      loaded = ld;
  }
  for (var i = 0, ld = 0; i < imgfilelist.length; i++) {
      var img = new Image();
      img.onload = imgOnload;
      img.src = "/default/game/dldy/img/" + imgfilelist[i];
      if (img.complete) {
          img.onload();
      }
      imglist.push(img);
  }
}

//玩家钓鱼动作
function MainTimer() {
  var sx = mainObj.status > 0 ? mainObj.status * 46 : 0;
  if (mainObj.status == 3) {
      mainObj.y = parseInt(mainObj.y - ((mainObj.speed) * timer) / 100);
      if (mainObj.lese == 1) {
          if (mainObj.direction < 3)
              context.drawImage(imglist[32], 0, 0, 280, 226, mainObj.x - 16, mainObj.y + 15, 50, 50);
          else
              context.drawImage(imglist[33], 0, 0, 280, 226, mainObj.x, mainObj.y + 15, 50, 50);
      }

      if (mainObj.y <= mainObj.defaultY) {
          mainObj.y = mainObj.defaultY;
          mainObj.status = -1;
          if (mainObj.lese == 1) {
              mainObj.lese = 0;
              score - 2 < 0 ? score = 0 : score -= 2;
          }
          else {
              if (fishList.length > 0) {
                  for (var i = 0; i < fishList.length; i++) {
                      if (fishList[i].status == 1) {
                          switch (fishList[i].sizeindex) {
                              case -1: { score += 3; break; }
                              case 0: { score += 1; break; }
                              case 1: { score += 5; break; }
                          }
                          fishList.splice(i, 1); //成功吊到了一只鱼
                      }
                  }
              }
          }
      }
  }
  if (mainObj.status == 0) {
      mainObj.y = parseInt(mainObj.y + ((mainObj.speed - 90) * timer) / 100);
      //钓到鱼了
      if (fishList.length > 0) {
          for (var i = 0; i < fishList.length; i++) {
              if ((mainObj.x + 15 >= fishList[i].x) && (mainObj.x + 15 <= fishList[i].x +
              fishList[i].w) && (mainObj.y + 10 >= fishList[i].y && mainObj.y + 10 <= 
              fishList[i].y + fishList[i].h)) {
                  fishList[i].status = 1;
                  mainObj.status = mainObj.status + 1;
                  break;
              }
          }
      }
      if (mainObj.y >= height + 260) {
          mainObj.y = height + 260;
          mainObj.status = 3;
          mainObj.lese = 1;
      }


      //钓到鲨鱼
      if (((sharkObj.x >= mainObj.x && sharkObj.x <= mainObj.x + 46) || 
      ((sharkObj.x + sharkObj.w >= mainObj.x) && (sharkObj.x + sharkObj.w <= mainObj.x + 46))) 
      && ((sharkObj.y >= mainObj.y && sharkObj.y <= mainObj.y + 46) || 
      sharkObj.y + sharkObj.h >= mainObj.y) && (sharkObj.y + sharkObj.h <= mainObj.y + 46)) {
          sharkObj.status = 1;
          if (sharkObj.x > 150) {
              sharkObj.flag = 3;
          } else {
              sharkObj.flag = 1;
          }
          mainObj.isShark = 1;
          mainObj.status = 3;
      }

  } else if (mainObj.status > 0 && mainObj.status < 3) {
      mainObj.status = mainObj.status + 1;
  }

  context.beginPath();
  var qx;
  switch (mainObj.direction) {
      case 0: { qx = 65; break; }
      case 1: { qx = 107; break; }
      case 2: { qx = 150; break; }
      case 3: { qx = 195; break; }
      case 4: { qx = 220; break; }
  }
  context.moveTo(qx, 0);
  context.lineTo(mainObj.x + 18, mainObj.y);
  context.globalAlpha = 1;
  context.lineWidth = 1;
  context.stroke();
  context.closePath();
  context.drawImage(imglist[18], sx, 0, 46, 48, mainObj.x, mainObj.y, 35, 35);
}

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

protobuf使用详解

一、protobuf简介 1、什么是 protobuf Protocal Buffers&#xff08;简称protobuf&#xff09;是谷歌的一项技术&#xff0c;用于结构化的数据序列化、反序列化。 官方解释&#xff1a;Protocol Buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法&#xff0c;它…

Power BI 傻瓜入门 11. 可视化数据

本章内容包括&#xff1a; 掌握Power BI中可用的各种可视化选项决定何时使用特定的可视化技术了解Power BI版本之间的可视化配置差异 “一张图片能说出千言万语”是许多人使用Power BI的原因之一。您已经导入了数据&#xff0c;可能有数百万条记录&#xff0c;现在您想了解数…

二维码制作教程:如何制作一个文件二维码?

文件二维码&#xff0c;即PDF、PPT、Word、Excel、图片、MP3音频文件、MP4视频文件等生成的二维码。因为二维码传播信息效率高、成本低&#xff0c;越来越多的企业在日常工作中都选择使用二维码来传送文件。比如&#xff0c;市场部年度推广计划书、财务季度报表汇总、年会流程通…

【Superset】自定义授权认证,接入内部系统二次开发

想要将内部系统认证与superset打通,必须要了解superset的认证体系。 Superset的认证体系 Superset的认证体系可以通过以下几种方式进行配置: 基于LDAP认证:Superset可以集成LDAP以验证用户身份。在这种情况下,Superset将根据LDAP中的用户信息进行身份验证,并从LDAP中获取…

家用智能安防系统包括哪几个部分?如何应用?

智能家居安防系统除了传统的安全装置之外&#xff0c;还有可以进行语音控制、视频监控、移动侦测等高科技智能化功能的升级版&#xff0c;这对于现代社会中的人们来说是一个不错的选择&#xff0c;也是生活水平的一次提升。今天&#xff0c;小编就为大家介绍一下智能家居安防系…

系列五、BeanDefinition

一、概述 BeanDefinition是一个接口&#xff0c;主要负责存储bean的定义信息&#xff0c;决定bean的生产方式&#xff0c;类似于说明书。后续BeanFactory就可以根据这些信息生产bean了。比如实例化&#xff1a;可以通过class进行反射得到实例对象&#xff0c;比如lazy&#xff…

输入/输出应用程序接口和设备驱动程序接口

文章目录 1.输入/输出应用程序接口1.字符设备接口2.块设备接口3.网络设备接口1.网络设备套接字通信 4.阻塞/非阻塞I/O 2.设备驱动程序接口1.统一标准的设备驱动程序接口 1.输入/输出应用程序接口 1.字符设备接口 get/put系统调用:向字符设备读/写一个字符 2.块设备接口 read/wr…

宝塔Python3.7安装模块报错ModuleNotFoundError: No module named ‘Crypto‘解决办法

前言 今晚遇到一个问题&#xff0c;宝塔服务器上安装脚本的模块时&#xff0c;出现以下报错&#xff0c;这里找到了解决办法 Traceback (most recent call last):File "/www/wwwroot/unifysign/fuck_chaoxing/fuck_xxt.py", line 4, in <module>from Crypto.…

统计数(C++)

系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…

大模型时代,AI如何成为数实融合的驱动力?

10月25日&#xff0c;百度APP、百家号联合中兴通讯举办的“时代的增量“主题沙龙第二期在北京顺利召开。本期沙龙围绕“数实融合新视角”邀请学界、业界、媒体从业者等领域专家出席&#xff0c;以产学研相结合的视角深入探讨数实融合的最新技术趋势&#xff0c;并围绕数实融合在…

AFsim编译-Windows

AFsim软件的核心应用及服务包括&#xff1a; sensor_plot&#xff1a;传感器覆盖和天线增益绘制工具&#xff1b; engage&#xff1a;武器交战分析工具&#xff1b; weapon_tools&#xff1a;武器建模工具&#xff1b; mission&#xff1a;任务仿真工具&#xff1b; post_…

go创建完美的枚举类型

文章目录 一.前言二. 枚举基本要素描述三. 枚举设计源码3.1 EnumCommon-通用能力3.2 Enum_news 业务枚举3.3 定制化业务枚举 一.前言 用惯了springboot和Jakarta.才发现springboot和Jakarta的语言是多么精妙! 一些场景我们需要使用枚举: 如建立字典值映射,仅通过代码实现方便快…

【RocketMQ】揭开事务消息的神秘面纱

【RocketMQ】揭开事务消息的神秘面纱 参考资料&#xff1a; 解析 RocketMQ 业务消息——“事务消息”—— 阿里云 RocketMQ事务消息, 图文、源码学习探究~ RocketMQ实战一&#xff1a;事务消息保证分布式事务的一致性 RocketMQ源码分析13&#xff1a;事务消息 《RocketMQ技术内…

Miniconda、Vscode下载和conda源、pip源设置

1、常用软件下载 1、Miniconda软件下载&#xff1a; windows网址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/?CS&OA 2、最新版Miniconda下载网址&#xff1a;https://docs.conda.io/projects/miniconda/en/latest/ 3、常用代码编辑器VsCode下…

haproxy 负载均衡

haproxy负载均衡 haproxy&#xff1a;基于C语言开发的开源软件 支持高性能的tcp和http负载均衡器&#xff0c;工作中用的版本1.5.9 haproxy功能&#xff1a;主要用于高并发的web站点&#xff0c;工作原理和nginx、lvs都一样 haproxy缺点: 单节点部署&#xff0c;单实例运行。代…

3DCAT+东风日产:共建线上个性化订车实时云渲染方案

近年来&#xff0c;随着5G网络和云计算技术的不断发展&#xff0c;交互式3D实时云看车正在成为一种新的看车方式。 与传统的到4S店实地考察不同&#xff0c;消费者可以足不出户&#xff0c;通过网络与终端设备即可实现全方位展示、自选汽车配色、模拟效果、快捷选车并进行个性…

ToLua使用原生C#List和Dictionary

ToLua是使用原生C#List 介绍Lua中使用原生ListC#调用luaLua中操作打印测试如下 Lua中使用原生DictionaryC#调用luaLua中操作打印测试如下 介绍 当你用ToLua时C#和Lua之间肯定是会互相调用的&#xff0c;那么lua里面使用List和Dictionary肯定是必然的&#xff0c;在C#中可以调用…

基本分段存储管理方式

与分页区别-离散分配时分配地址空间的基本单位不同 一、概述 1.分段 将进程地址空间按程序自身逻辑关系划分为若干个段&#xff0c;每个段都有段名&#xff0c;且从0开始编址 逻辑地址段号(段名)段内地址(段内偏移量) 程序中的段名会被翻译成对应段号&#xff0c;段内单元…