为你摘星辰

news2024/11/23 12:03:26

欢迎来到程序小院

为你摘星辰

玩法:鼠标控制人物方向,点击鼠标键上升人物,经过⭐️⭐️吃掉获得分数,共三次生命,碰到红色障碍物减去一次生命,
人物掉落底部游戏结束,看你获得多少分^^。

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

html

  <script type="text/javascript" src="js/lib/phaser.min.js"></script>
  <script type="text/javascript" src="js/lib/mt.helper.js"></script>
  <script type="text/javascript" src="js/lib/mt.data.js"></script>
  <script type="text/javascript" src="js/main.js"></script>
  <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

(function(){
 "use strict";
  var _loadFile = Phaser.Loader.prototype.loadFile;

 Phaser.Loader.prototype.loadFile = function(file){
  //var file = this._fileList[this._fileIndex];
  this.onFileStart.dispatch(this.progress, file.key, file.url);
  
  if(file.type == "font"){
   this.fontLoad(file, file.key, 'text', 'fileComplete', 'fileError');
   return;
  }
  
  if(file.type != "script"){
   _loadFile.call(this, file);
   return;
  }
  
  file.type = "unknown";
  this.scriptLoad(file, this.baseURL + file.url, 'text', 'fileComplete', 'fileError');
 };

 Phaser.Loader.prototype.scriptLoad = function (index, url, type, onload, onerror) {
  var script = document.createElement("script");
  script.src = url;
  var _this = this;
  script.onload = function(){
   window.setTimeout(function(){
    _this[onload](index);
   }, 0);
  };
  script.onerror = function(){
   return _this[onerror](index);
  };
  document.body.appendChild(script);
 };
 // end script loader
 
 // fix align by wordWrapWidth
 Phaser.Text.prototype.updateText = function () {
  if(!this || !this.texture){
   return;
  }
  this.texture.baseTexture.resolution = this.resolution;

  this.context.font = this.style.font;

  var outputText = this.text;

  if (this.style.wordWrap) {
   outputText = this.runWordWrap(this.text);
   maxLineWidth = this.wordWrapWidth;
  }

  //split text into lines
  var lines = outputText.split(/(?:\r\n|\r|\n)/);

  //calculate text width
  var lineWidths = [];
  var maxLineWidth = 0;
  var fontProperties = this.determineFontProperties(this.style.font);

  for (var i = 0; i < lines.length; i++)
  {
   var lineWidth = this.context.measureText(lines[i]).width;
   lineWidths[i] = lineWidth;
   maxLineWidth = Math.max(maxLineWidth, lineWidth);
  }

  var width = maxLineWidth + this.style.strokeThickness;

  this.canvas.width = (width + this.context.lineWidth) * this.resolution;

  //calculate text height
  var lineHeight = fontProperties.fontSize + this.style.strokeThickness;

  var height = lineHeight * lines.length + this.style.shadowOffsetY;

  this.canvas.height = height * this.resolution;

  this.context.scale(this.resolution, this.resolution);

  if (navigator.isCocoonJS)
  {
   this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);
  }

  this.context.fillStyle = this.style.fill;
  this.context.font = this.style.font;
  this.context.strokeStyle = this.style.stroke;
  this.context.textBaseline = 'alphabetic';
  this.context.shadowOffsetX = this.style.shadowOffsetX;
  this.context.shadowOffsetY = this.style.shadowOffsetY;
  this.context.shadowColor = this.style.shadowColor;
  this.context.shadowBlur = this.style.shadowBlur;
  this.context.lineWidth = this.style.strokeThickness;
  this.context.lineCap = 'round';
  this.context.lineJoin = 'round';

  var linePositionX;
  var linePositionY;

  this._charCount = 0;

  //draw lines line by line
  for (i = 0; i < lines.length; i++)
  {
   linePositionX = this.style.strokeThickness / 2;
   linePositionY = (this.style.strokeThickness / 2 + i * lineHeight) + fontProperties.ascent;

   if (this.style.align === 'right')
   {
    linePositionX += maxLineWidth - lineWidths[i];
   }
   else if (this.style.align === 'center')
   {
    linePositionX += (maxLineWidth - lineWidths[i]) / 2;
   }

   linePositionY += this._lineSpacing;

   if (this.colors.length > 0)
   {
    this.updateLine(lines[i], linePositionX, linePositionY);
   }
   else
   {
    if (this.style.stroke && this.style.strokeThickness)
    {
     this.context.strokeText(lines[i], linePositionX, linePositionY);
    }

    if (this.style.fill)
    {
     this.context.fillText(lines[i], linePositionX, linePositionY);
    }
   }
  }

  this.updateTexture();
 };
 // add scaleX/Y and anchorX/Y - so we can skip extra tweens
 Object.defineProperty(PIXI.Sprite.prototype, "scaleX", {
  set: function(val){
   this.scale.x = val;
  },
  get: function(){
   return this.scale.x;
  }
 });

 Object.defineProperty(PIXI.Sprite.prototype, "scaleY", {
  set: function(val){
   this.scale.y = val;
  },
  get: function(){
   return this.scale.y;
  }
 });

 Object.defineProperty(PIXI.Sprite.prototype, "anchorX", {
  set: function(val){
   this.anchor.x = val;
  },
  get: function(){
   return this.anchor.x;
  }
 });

 Object.defineProperty(PIXI.Sprite.prototype, "anchorY", {
  set: function(val){
   this.anchor.y = val;
  },
  get: function(){
   return this.anchor.y;
  }
 });

 Object.defineProperty(Phaser.Group.prototype, "scaleX", {
  set: function(val){
   this.scale.x = val;
  },
  get: function(){
   return this.scale.x;
  }
 });

 Object.defineProperty(Phaser.Group.prototype, "scaleY", {
  set: function(val){
   this.scale.y = val;
  },
  get: function(){
   return this.scale.y;
  }
 });

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

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

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

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

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

相关文章

Linux C基础(9)

1、指针的算术元素 总结&#xff1a; p n:pn对于p向地址增大的方向移动n个数据实际的变化&#xff1a;p sizeof(数据类型)*np - n:p-n对于p向地址减小的方向移动n个数据实际的变化&#xff1a;p - sizeof(数据类型)*np:p向地址增大的方向移动1个数据实际的变化&#xff1a;p …

【手把手教你】将python程序打包成exe可执行文件

1. 安装环境 pip install pyinstaller6.0.02. 打包文件 pyinstaller -D “要启动的文件名“.py比如我的命令就是&#xff1a;pyinstaller -D eval.py 执行完后&#xff0c;会生两个文件夹dist和bulib两个文件和一个xxx.spec文件 3. 删除生成的文件 删除生成的bulid和dist文…

Java实现调用openAI接口返回流式数据

一&#xff0c;添加依赖 <dependency><groupId>com.github.plexpt</groupId><artifactId>chatgpt</artifactId><version>4.0.7</version> </dependency>二&#xff0c;重写SseEmitter 改为UTF-8编码 import org.springframe…

TSINGSEE青犀智能分析网关工服识别算法,如何最大限度保障工人安全?

众所周知&#xff0c;TSINGSEE青犀智能分析网关算法繁多&#xff0c;大多数算法已经和大家讲解过了&#xff0c;今天就和大家聊一聊工服识别算法。工服识别算法一般应用于工地、化工、煤矿等场所&#xff0c;用来监督检测施工人员是否按照要求着工服&#xff0c;最大程度保障人…

助力网络安全攻防演练 | 中睿天下获国网蒙东电力数字化事业部感谢信

近日&#xff0c;中睿天下因积极协助和支撑国网蒙东电力数字化事业部在2023年国家网络安全专项演习期间的工作&#xff0c;有效保障了护网行动期间网络的安全稳定运行&#xff0c;因而获得了国网蒙东电力数字化事业部的高度认可&#xff0c;并向我司致书面表扬信&#xff0c;这…

Aria2 任意文件写入漏洞复现

漏洞描述 Aria2 是一款轻量级、多协议、多源下载工具&#xff08;支持 HTTP/HTTPS、FTP、BitTorrent、Metalink&#xff09;&#xff0c;内置 XML-RPC 和 JSON-RPC 接口。 我们可以使用 RPC 接口来操作 aria2 并将文件下载到任意目录&#xff0c;从而造成任意文件写入漏洞。 …

【CSS】transition、transform以及animation

1.CSS transition 介绍 通常当 CSS 的属性值更改后&#xff0c;浏览器会立即更新相应的样式。 在 CSS3 中加入了一项过渡功能&#xff0c;通过该功能&#xff0c;我们可以将元素从一种样式在指定时间内平滑的过渡到另一种样式&#xff0c;类似于简单的动画&#xff0c;但无需…

Android中Toast与Snack

1. Toast : 使用Toast类的makeText()方法创建Toast对象&#xff0c;makeText()方法有两个参数&#xff0c;第一个参数为显示Tosat的上下文环境&#xff0c;第二个参数为显示时长&#xff08; Toast.LENGTH_LONG 或 Toast.LENGTH_SHORT &#xff09;。 使用Toast类的show()方法…

lvgl 转换和使用新字体

一、背景 如果lvgl 提供的默认字体不符合我们的显示要求&#xff0c;我们可以在网上下载开源字体&#xff0c;或者利用系统自带&#xff08;注意版权问题&#xff09;的字体文件转换lvgl 能识别和调用的字体。 或者为了压缩存储空间&#xff0c;某些字体我们只需要个别字符&…

向量数据库:释放数据潜能,重塑信息世界

前言 想必各位开发者一定使用过关系型数据库MySQL去存储我们的项目的数据&#xff0c;也有部分人使用过非关系型数据库Redis去存储我们的一些热点数据作为缓存&#xff0c;提高我们系统的响应速度&#xff0c;减小我们MySQL的压力。那么你有听说过向量数据库吗&#xff1f;知道…

Docker本地部署Drupal并实现公网访问

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址 前言 Dupal是一个强大的CMS&#xff0c;适用于各种不同的网站项目&#xff0c;从小型个人博客到大型企业级门户网站。它的学习…

多篇论文介绍-Wiou

论文地址 目录 https://arxiv.org/pdf/2301.10051.pdf 01 CIEFRNet&#xff1a;面向高速公路的抛洒物检测算法 02改进 YOLOv5 的 PDC 钻头复合片缺损识别 03 基于SimAM注意力机制的DCN-YOLOv5水下目标检测 04 基于改进YOLOv7-tiny 算法的输电线路螺栓缺销检测 05 基于改…

用友U8定制版在集简云:无需API即可集成客服系统和用户运营

无代码开发的新时代 在这个信息化、自动化的时代&#xff0c;无代码开发已经成为一种新的趋势。集简云就是这样的一款工具&#xff0c;可以轻松连接用友U8 定制版与近千款软件系统&#xff0c;无需开发、无需代码知识就可以打通各种软件之间的数据连接&#xff0c;构建自动化与…

【代码随想录】算法训练计划16

【代码随想录】算法训练计划04 1、111. 二叉树的最小深度 题目&#xff1a; 给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明&#xff1a;叶子节点是指没有子节点的节点。 思路&#xff1a; 用递归&#xff0…

HashMap源码分析(一)

存储结构 说明&#xff1a;本次讲解的HashMap是jdk1.8中的实现&#xff0c;其他版本可能有差异 内部是由Node节点数组组成&#xff0c;Node节点之间又由链表或红黑树组成。 图是网上找的&#xff0c;实在不想画 属性介绍 //存储数据的数组&#xff0c;初次使用时初始化&…

Opencv for unity 下载

GitHub - EnoxSoftware/VideoPlayerWithOpenCVForUnityExample: This example shows how to convert VideoPlayer texture to OpenCV Mat using AsyncGPUReadback. OpenCV for Unity | Integration | Unity Asset Store

【原创】java+jsp+servlet简单图书管理系统设计与实现

摘要&#xff1a; 图书管理系统是一个专门针对图书馆管理而设计的系统&#xff0c;它可以帮助图书管理员有效的对图书进行管理&#xff0c;在图书管理系统的设计中&#xff0c;首先要考虑的是系统的需求分析&#xff0c;该系统的设计与实现涉及多个方面&#xff0c;包括数据库…

ubuntu系统黑屏,且光标不闪烁

选择第二个&#xff0c;进入恢复模式 选择第二个&#xff0c;进入恢复模式 选择root 输入&#xff1a; startx然后就可以进入文本界面或者图形化界面了&#xff0c;如果不行&#xff0c;报错&#xff0c;可能需要需要下载这个包&#xff0c;把这个错误到网上搜索一下就可以找…

【广州华锐互动】人造卫星VR互动科普软件带你探索宇宙世界

在科学的广阔领域中&#xff0c;卫星科学和遥感技术占据了重要的位置。这些科学领域的进步&#xff0c;让我们有机会窥视宇宙的深处&#xff0c;揭示那些隐藏在星际之间的秘密。今天&#xff0c;我们要介绍一种新型的教学工具&#xff0c;即人造卫星VR互动科普软件&#xff0c;…

【凡人修仙传】预计开播倒计时,线下举办超前观影活动,隆重期待

Hello,小伙伴们&#xff0c;我是小郑继续为大家深度解析国漫资讯。 深度爆料凡人最新资讯&#xff0c;《凡人修仙传》这部备受期待的动漫作品&#xff0c;终于在新年之际宣布了定档日期。据悉&#xff0c;该动漫将于11月25日&#xff0c;也就是周六上午11点&#xff0c;与广大…