Pixi.js学习 (六)数组

news2024/11/15 12:14:26

目录

前言

一、数组

1.1 定义数组

1.2 数组存取与删除

1.3 使用数组统一操作敌机

二、实战

例题一:使用数组统一操作敌机

例题一代码:

总结


前言

为了提高作者的代码编辑水品,作者在使用博客的时候使用的集成工具为 HBuilderX。

下文所有截图使用此集成工具,读者随意。

此系列文章需要:HTML ,JavaScript 基础知识

操作系统:

版本    Windows 11 家庭中文版
版本    23H2
安装日期    ‎2024/‎5/‎28
操作系统版本    22631.3593
体验    Windows Feature Experience Pack 1000.22700.1003.0


一、数组

用来存储多个数据(变量)的容器,存储在数组中的数据称为数组的元素。

优点:便于集中统一处理某些数据

例:定义多个变量表示学生的成绩,不便于同一维护

var stu1 = 59;
var stu2 = 60;
var stu3 = 70;
var stu4 = 80;
var stu5 = 45;
var stu6 = 50;
var stu7 = 55;
var stu8 = 61;
//.....100名学生就要定义 100个变量
//如何同时为每位同学的成绩加十分?
//如何计算班级平均分?
//如何将不及格的学生成绩改为及格?

1.1 定义数组

定义数组语法

var 数组名称 = [];

var as = [];

创建数组时添加数据语法

var as = [数据1,数据2,数据3...]

var as = [59 , 60 , 70 , 80 , 45 , 50 , 55 , 61];
//在控制台输出as中的内容
console.log( as );

此时as 就表示了一组数据

运行效果:

1.2 数组存取与删除

有些时候数组由系统创建 或 无法在创建时得到数据并存入数据 此时必须通过数组提供的函数,当得到数据时再存入数组中

1.2.1、添加元素(数据 )

语法

数组名称.push( 数据 );

例:向数组中添加数据

//定义数组
var as = [];
//向数组中添加一个元素10
as.push( 10 );
//向数组中添加一个元素20
as.push( 20 );
as.push( 30 );
as.push( 40 );
as.push( 50 );
//在控制台中输出 as
console.log( as );

运行效果:

1.2.2、获取元素(数据)

数组为每个元素都进行了编号,编号表示该元素在数组中的位置 在程序中我们称该编号为数组的下标 下标从0开始到数组长度-1结束,通过下标可以获取数组中的元素

语法

数组名称[下标];

			var as = [50,10,800];
			as[0];//数组中的第 1 个元素
			as[1];//数组中的第 2 个元素
			as[2];//数组中的第 3 个元素
			var a1 = as[0];//提取数组中的第 1 个元素
			var a2 = as[1];//提取数组中的第 2 个元素
			var a3 = as[2];//提取数组中的第 3 个元素
			//输出数组中的第 1 个元素
			console.log( "输出数组中的第 1 个元素:"+as[0] );
			//输出数组中的第 2 个元素
			console.log( "输出数组中的第 2 个元素:"+as[1] );
			//输出数组中的第 3 个元素
			console.log( "输出数组中的第 3 个元素:"+as[2] );

运行效果:

使用循环遍历数组【重点】

遍历数组:获取数组中的每一个元素

例:当数组元素很多时不便于统一操作

var as = [50,10,800];
//输出数组中的第 1 个元素
console.log( as[0] );
//输出数组中的第 2 个元素
console.log( as[1] );
//输出数组中的第 3 个元素
console.log( as[2] );

(重复的步骤放到循环中,不重复的步骤放到循环之外,有规律的变量想办法用循环变量替代)

例:使用循环遍历【重点】

var as = [50,10,800];
//已知as数组长度为3,下标范围0~2
//使用循环变量i充当下标,控制下标范围区间在0~2
//每次循环可以获取数组中的一个元素,直到最后一个元素
for(var i=0; i<3; i++){
//输出数组中的某个元素
console.log( as[i] );
}

1.2.3、获取数组长度

数组的长度等于数组中的元素个数 在程序中可以动态的获取数组长度,以便在数组元素个数改变时,依然能够正确遍历

动态获取数组长度

数组名.length;
例如
var as = [10,20,30];
as.length;//获取as数组长度,结果为:3

使用数组长度增强遍历

//遍历数组
for( var i = 0; i<数组名.length; i++){
//获取数组中的某个数据
var a = as[i]);
//输出到控制台中
console.log( a );
}

1.2.4、删除元素(数据 )

语法

数组名称.splice(下标 , 个数);
个数:从下标位置开始(含下标位置的元素)删除几个元素

例:删除数组中的某一个元素

			var as = [100,200,300,400,500];
			//删除数组中的某一个元素 数组名称.splice(下标 , 1);
			//2:下标
			//1:删除1个元素
			as.splice(2,1);
			//结果:[100,200,400,500];
			console.log( as );

例:删除数组中的多个元素

			var as = [100,200,300,400,500];
			//输出as数组中的元素
			//从下标0开始删除3个元素 0、1、2元素将被删除
			as.splice(0,3);
			//结果[400,500];
			console.log( as );

运行



二、实战

例题一:使用数组统一操作敌机

  • 1. 创建一个名为 app 的应用,宽:500,高:700
  • 2.用数组创建敌机,实现敌机的移动,超过窗口回到起始位置。

示范图:

例题一代码:

		<script type="text/javascript">
			
			var app=new PIXI.Application(500,700);
			
			document.body.appendChild(app.view);																							

			function add(img,x,y){
				//创建图片元素
				var a=new PIXI.Sprite.fromImage(img);
				//将元素添加到页面中
				app.stage.addChild(a);
				//调整位置
				a.x=x
				a.y=y 
				
				//对当前元素直接开启监听
				a.interactive=true;
				
				return a;
			}


			var bg = add("img/bg2.jpg",0,0); 

			//创建用于存储敌机元素的数组【关键步骤】
			var enemys = [];

			//循环添加5架敌机
			for(var i=1; i<=5; i++){
				var enemy = new PIXI.Sprite.fromImage("img/enemy1.png");
				//i变量的值不同,所生成的敌机位置也不同
				enemy.x = i*60;
				enemy.y = i*70;
				//将飞机元素保存到数组中【关键步骤】
				enemys.push( enemy );
				app.stage.addChild(enemy);
			}

			//自定义帧频函数
			function animate(){
				//遍历数组获取每个敌机元素【关键步骤】
				for(var i=0; i<enemys.length; i++){
				//提取数组中的敌机元素【关键步骤】
				var e = enemys[i];
				//敌机元素下移
				e.y += 2;
				//当敌机元素超出边界时,返回顶部
				if( e.y >= 700) e.y = -74;
				}
			}

			//添加帧频函数
			app.ticker.add( animate );

				
					
					
		</script>

运行效果:

Pixi.js学习 (六)数组 源码以及图片地址:https://download.csdn.net/download/qq_56376552/89423325


总结

本文 数组 就此结束,

如有错误或者网址更新,步骤更改,代码错误欢迎私信作者进行更正,

感谢您的观看。

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

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

相关文章

LabVIEW故障预测

在LabVIEW故障预测中&#xff0c;振动信号特征提取的关键技术主要包括以下几个方面&#xff1a; 时域特征提取&#xff1a;时域特征是直接从振动信号的时间序列中提取的特征。常见的时域特征包括振动信号的均值、方差、峰值、峰-峰值、均方根、脉冲指数等。这些特征能够反映振动…

如何在Python中向Word文档插入图片

如何在Python中向Word文档插入图片 向Word文档插入图片添加前和添加后 在这篇博客文章中&#xff0c;我们使用Python向Word文档插入图片。通过本文&#xff0c;您将学习如何在文档中插入图片&#xff0c;并调整其大小和位置。 向Word文档插入图片 from docx import Document …

Redis脑裂问题详解及解决方案

Redis脑裂问题 Redis脑裂问题是指在主从集群中同时存在两个主节点&#xff0c;这会导致不同客户端往不同的主节点写入数据&#xff0c;最终导致数据不一致&#xff0c;甚至数据丢失。 哨兵主从集群脑裂 场景描述 假设有三台服务器&#xff1a;一台主服务器&#xff0c;两台…

据阿谱尔统计显示,2023年全球电动汽车充电设备市场价值为62.1亿美元

根据阿谱尔 (APO Research&#xff09;的统计及预测&#xff0c;2023 年全球电动汽车充电设备市场价值为 62.1 亿美元&#xff0c;预计到 2030 年将达到 391.1 亿美元&#xff0c;预测期内&#xff08;2024-2030 年&#xff09;复合年增长率为 31.47%。 电动汽车 (EV) 充电设备…

如何有效处理服务器后台密码暴露

服务器后台密码的暴露是信息安全领域中的严重事件&#xff0c;它可能引发未经授权的数据访问、恶意软件植入或系统功能滥用等一系列问题。本文将探讨几种处理服务器后台密码暴露的有效策略&#xff0c;包括紧急响应步骤、密码安全增强措施及长期预防机制&#xff0c;并提供实际…

Unity射击游戏开发教程:(27)创建带有百分比的状态栏

创建带有弹药数和推进器百分比的状态栏 在本文中,我将介绍如何创建带有分数和百分比文本的常规状态栏。 由于 Ammo Bar 将成为 UI 的一部分,因此我们需要向 Canvas 添加一个空的 GameObject 并将其重命名为 AmmoBar。我们需要一个文本和两个图像对象,它们是 AmmoBar 的父级。…

如何使用 Vue.js 和 Java 开发一个完整的 Web 应用

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

测试基础12:测试用例设计方法-边界值分析

课程大纲 1、定义 经验发现&#xff0c;较多的错误往往发生在输入或输出范围的边界上&#xff0c;因为边界值是代码判断语句的点&#xff0c;一般容易出问题&#xff08;数值写错、多加或丢失等号、写错不等号方向…&#xff09;。所以增加对取值范围的边界数据的测试&#xff…

使引用作为函数参数将变量i和j的值互换

C之所以增加引用机制&#xff0c;主要是把它作为函数参数&#xff0c;以扩充函数传递数据的功能。 解题思路&#xff1a; 传递变量的地址。形参是指针变量&#xff0c;实参是一个变量的地址&#xff0c;调用函数时&#xff0c;形参&#xff08;指针变量&#xff09;得到实参变…

AI大模型时代:程序员如何面对“焦虑”并抓住“风口”

前言 最近&#xff0c;我和不少程序员朋友聊起了全网都在热议的大模型&#xff0c;如ChatGPT、GPT-4、文心一言等。大家的反应出乎我意料&#xff0c;普遍感到焦虑和迷茫。 这些大模型的出现&#xff0c;确实令人兴奋&#xff0c;仿佛一夜之间&#xff0c;AI就能做很多事情&…

专家解读 | NIST网络安全框架(3):层级配置

NIST CSF在核心部分提供了六个类别的关键功能和子功能&#xff0c;并围绕CSF的使用提供了层级&#xff08;Tier&#xff09;和配置&#xff08;Profile&#xff09;两种工具&#xff0c;使不同组织和用户更方便有效地使用CSF&#xff0c;本文将深入探讨CSF层级和配置的主要内容…

【deepin 产品面对面】玲珑入门教程:从源代码开始构建玲珑格式应用

内容来源&#xff1a;deepin&#xff08;深度&#xff09;社区 请首先阅读玲珑官方文档 ll-builder 简介 | 玲珑&#xff0c;本文以构建 desktop-entry-editor 为例&#xff0c;该项目依赖较为简单&#xff0c;仅需玲珑官方文档中默认提供的基础运行环境即可成功构建运行。 第一…

web基础htTP协议

web基础 域名概述&#xff1a; 域名空间结构 网页的概念 HTML概述 DNS解析的三种方式 /etc/hosts 在Linux系统中&#xff0c;/etc/hosts 文件负责快速解析&#xff0c;它包含了IP地址与主机名的映射关系。在没有DNS服务器的情况下&#xff0c;可以使用本地/etc/hosts 文件完成…

用户管理与服务器远程管理

用户管理 服务器系统版本介绍 windows服务器系统&#xff1a;win2000 win2003 win2008 win2012 linux服务器系统&#xff1a;Redhat Centos 用户管理 用户概述 &#xff08;1&#xff09;每一个用户登录系统后&#xff0c;拥有不同的操作权限。 &#xff08;2&#xff09;…

【实例分享】访问后端服务超时,银河麒麟服务器操作系统分析及处理建议

1.服务器环境以及配置 【机型】 处理器&#xff1a; Intel 32核 内存&#xff1a; 128G 整机类型/架构&#xff1a; x86_64虚拟机 【内核版本】 4.19.90-25.22.v2101.kylin.x86_64 【OS镜像版本】 kylin server V10 SP2 【第三方软件】 开阳k8s 2.问题现象描述 …

三十二、 数据跨境传输场景下的 PIA 与数据出境风险自评估是一回事吗?

PIA 与数据出境风险自评估并不相同。PIA 是《个人信息保护法》第五十五条明确提出要求企业在向境外提供个人信息前应当开展的自评估工作&#xff0c;而数据出境风险自评估则是《评估办法》第五条提出的要求符合数据出境安全评估申报情形的企业在申报前应当开展的自评估工作。 换…

使用 SPICE 模型模拟 MOSFET 电流-电压特性

绘制漏极电流与漏极电压的关系图 我们首先绘制漏极电流 ( I D ) 与漏源电压 ( V DS ) 的基本图。为此&#xff0c;我们将栅极电压设置为远高于阈值电压的固定值&#xff0c;然后执行直流扫描模拟&#xff0c;其中V DD的值逐渐增加。图 1 显示了我们将使用的原理图。 LTspice N…

❎35岁程序员,转行了么?

新职业 在Boss直聘、智联等招聘网站中&#xff0c;您是否遇见过这样的职位邀请&#xff1f;它的名字叫做LORA模型训练师。 从图上我们可以看出其需要的技能大致是下面的样子&#xff1a; Stable Diffusion: 机器学习、神经网络、模型训练的知识&#xff1b;Lora: 训练Lora模型…

css系列:音频播放效果-波纹律动

介绍 语音播放的律动效果&#xff0c;通俗来说就是一个带动画的特殊样式的进度条&#xff0c;播放的部分带有上下律动的动画&#xff0c;未播放的部分是普通的灰色竖状条。 实现中夹带了less变量、继承和循环遍历&#xff0c;可以顺带学习一下。 结果展示 大致效果如图所示…

在调用接口上map与forEach的区别

在场景&#xff1a;一个表格数据需要上传&#xff0c;每行表格需要上传图片->这就需要在提交时对数据也就是数组进行处理&#xff08;先将每个元素图片上传拿到图片id 这种情况我刚开始就用的map处理&#xff0c;然后问题来了&#xff0c;提交的接口调用了&#xff0c;但是…