Java超级玛丽小游戏制作过程讲解 第三天 创建并完成常量类02
public class StaticValue {//背景public static BufferedImage bg=null;public static BufferedImage bg2=null;//马里奥向左跳跃public static BufferedImage jump_L=null;//马里奥向右跳跃public static BufferedImage jump_R=null;//马里奥向左站立public static BufferedImage stand_L=null;//马里奥向右站立public static BufferedImage stand_R=null;//城堡public static BufferedImage tower=null;//旗杆public static BufferedImage gan=null;//障碍物,因为数量有很多,所以定义一个列表public static List<BufferedImage> obstacle=newArrayList<>();//马里奥向左跑(同样是有两张图片)public static List<BufferedImage> run_L=new ArrayList<>();//马里奥向右跑public static List<BufferedImage> run_R=new ArrayList<>();//蘑菇敌人(两张走路图像,一张死亡图像)public static List<BufferedImage> mogu =new ArrayList<>();//食人花敌人public static List<BufferedImage> flower =new ArrayList<>();//路径的前缀,方便后续调用public static String path = System.getProperty("user.dir")+"/src/images/";public static void init(){}}
今天我们继续完成常量类的创建!
定义了一个名为`obstacle`的静态变量,它的类型是`List<BufferedImage>`,即一个存储`BufferedImage`对象的列表。
//障碍物,因为数量有很多,所以定义一个列表
public static List<BufferedImage> obstacle=newArrayList<>();
- `obstacle`:这是一个列表(List)类型的变量,用于存储多个障碍物的图像。列表是一种数据结构,可以容纳多个元素,并且具有动态扩展的能力。在这里,`obstacle`列表用于存储多个`BufferedImage`对象,每个对象代表一个障碍物的图像。
- `BufferedImage`:`BufferedImage`是Java中表示图像的类,在这里用于存储障碍物的图像。它提供了多种方法和属性来操作和处理图像。
- `new ArrayList<>()`:这段代码创建了一个空的`ArrayList`实例,并将其赋值给`obstacle`变量。`ArrayList`是Java集合框架中的一种实现,它实现了`List`接口,并提供了一组方法来操作列表。通过`new`关键字和构造函数,我们创建了一个新的空列表。
通过定义`obstacle`变量为`List<BufferedImage>`类型,我们可以在游戏中使用`obstacle`来存储和管理多个障碍物的图像。可以通过列表的方法来添加、删除、获取、遍历等操作,从而方便地处理障碍物相关的图像资源。
这段代码定义了一个名为`path`的静态变量,并将其初始化为包含图片资源文件夹路径的字符串。
//路径的前缀public static String path = System.getProperty("use.dir")+"/src/images/";
具体解释如下:
- `path`:这是一个字符串类型的变量,用于存储图片资源文件夹的路径。在这个例子中,`path`被定义为静态变量,意味着它可以在类的任何地方被访问和使用。
- `System.getProperty("user.dir")`:这是一个Java系统属性,用于获取当前工作目录的路径。在这里,通过调用`System.getProperty("user.dir")`,我们可以获取当前正在执行 Java 程序的工作目录路径。
- `"/src/images/"`:这是一个字符串,表示图片资源文件夹的相对路径,即`src`文件夹下的`images`子文件夹。这里使用斜杠(`/`)作为目录分隔符,在不同操作系统上都可以正确识别。
通过将`path`初始化为当前工作目录路径和图片资源文件夹相对路径的拼接结果,我们可以方便地获得完整的图片资源文件夹的路径。
这个路径可以在后续代码中使用,例如加载图像资源文件时可以直接拼接该路径和文件名,以便找到正确的图片文件并加载到程序中。这样,无论我们将程序放在哪个工作目录下,都能正确访问到图片资源文件夹。
public static void init(){}
(这是一个方法,用于初始化这些图像资源。具体的初始化逻辑需要根据实际情况来实现。)
在Java中,方法声明包括方法的返回类型和方法名。返回类型表示方法在执行完毕后将返回的数据类型。而"void"是一种特殊的返回类型,它表示该方法在执行完毕后不返回任何值。
`public void init()`是一个方法声明,其中:
- `public`是访问修饰符,表示该方法可以从程序的任何地方被访问。
- `void`是返回类型,表示该方法没有返回值。
- `init`是方法名,用于标识这个方法。
加上`void`关键字的作用是指定该方法不返回任何值,它只负责执行某些操作而不会产生结果。这种类型的方法通常被用作初始化方法,在对象创建时执行必要的初始化操作,但不需要返回任何结果。
如果方法有返回值,我们需要使用其他合适的数据类型(如整数、字符串等)来作为返回类型,并且在方法执行完毕后返回对应的值。例如,如果方法返回整数类型的结果,我们可以使用`int`作为返回类型。如果方法没有返回值,我们使用`void`来表示。
声明:小游戏源码来自b站视频(up:编程学习会员Q),本文仅根据源码做知识性补充与注解。如存在不当使用的情况,请随时联系删除。
http://【【Java项目】不到两小时用Java做出超级玛丽小游戏_手把手教你开发游戏_超详细保姆级教程_Java编程_Java游戏开发-Java基础-Java练手项目】https://www.bilibili.com/video/BV1DZ4y1Y73M?p=4&vd_source=70e680aaeedc45cb797fd52fdd25367c
相关文章:
Java超级玛丽小游戏制作过程讲解 第三天 创建并完成常量类02
public class StaticValue {//背景public static BufferedImage bgnull;public static BufferedImage bg2null;//马里奥向左跳跃public static BufferedImage jump_Lnull;//马里奥向右跳跃public static BufferedImage jump_Rnull;//马里奥向左站立public static BufferedImage…...
ARM微架构
一、流水线 二、指令流水线 指令流水线 指令流水线 指令流水线 ARM指令流水线 ARM7采用3级流水线 ARM9采用5级流水线 Cortex-A9采用8级流水线 注1:虽然流水线级数越来越多,但都是在三级流水线的基础上进行了细分 PC的作用(取指) …...
Stable Diffusion AI绘画学习指南【本地环境搭建win+mac】
一、硬件配配置要求 系统:windows 10 / Mac os 硬盘:C 盘预留 15GB 以上,其他盘 50GB 以上,Stable Ddiffusion的很多大模型都是以 GB 起步。 显卡:4GB 以上,建议 8GB, 效率高,能玩大尺寸的图 CPU&…...
Unity 3D ScrollRect和ScrollView回弹问题的解决
你是否是这样? Content高度 < 全部Cell加在一起的总高 他就认为你的全部Cell加起来就跟Content一样大,所以才出现了这种完全回弹 我该怎么办? 很简单,改变Content的长度跟所有Cell的和一样大 void RefreshSize(){float allD…...
python编写小程序有界面,python编写小程序的运行
大家好,小编为大家解答python编写小程序怎么看代码的的问题。很多人还不知道python编写小程序的运行,现在让我们一起来看看吧! Python第一个简单的小游戏 temp input("请猜一猜姐姐的幸运数字是: ") guess int(temp) …...
【中断机制】什么是中断?使用中断的原因、注意事项
目录 一、为什么需要中断 二、什么是中断 1、中断的概念 2、中断的分类 3、中断的处理流程 三、中断处理程序要少用延时的原因 一、为什么需要中断 以网卡为例,CPU 如果要从网卡获取数据,不可能时时盯着网卡啥时候会有数据。当网卡收到数据时&…...
C++20 协程(coroutine)入门
文章目录 C20 协程(coroutine)入门什么是协程无栈协程和有栈协程有栈协程的例子例 1例 2 对称协程与非对称协程无栈协程的模型无栈协程的调度器朴素的单线程调度器让协程学会等待Python 中的异步函数可等待对象M:N 调度器——C# 中的异步函数 小结 C20 中…...
2023.8.6
2022河南萌新联赛第(三)场:河南大学\区间操作.cpp //题意:定义一个f[x]函数表示一个数分解质因数后各个质因子的幂次和,给定一个长度为n的数组, //有m个操作,第一种操作是输出[l, r]范围内的a…...
kubernetes网络之网络策略-----Network Policies - Default
默认情况下,如果名称空间中没有配置 NetworkPolicy,则该名称空间中,所有Pod的所有入方向流量和所有出方向流量都是被允许的。 那么如果我们想改变名称空间中默认的网络策略,又该怎么做呢? 默认拒绝所有的入方向流量 …...
奥威BI系统|秒分析,更适合分析大数据
根据以往的经验,当数据量多到一定程度就容易导致系统卡顿、崩溃。这种现象给企业级数据分析造成了极大的困扰。随着业务发展扩大和分析需求精细化,企业需要一套能秒分析大数据的系统。而奥威BI系统就是这样一款可以秒分析大数据的商业智能系统。 奥威BI…...
安全作业-Race竞争型漏洞、原型链污染
1.race漏洞一直卡在虚拟机安装上(待研究) 2.原型链污染 一、第一题js代码 const express require(express) var hbs require(hbs); var bodyParser require(body-parser); const md5 require(md5); var morganBody require(morgan-body); const app express(); var use…...
对微服务网关的一些总结
对微服务网关的一些总结 一. 什么是网关 网关是位于NGINX(或没有)与真实微服务间的转发服务。 用户通过HTTP接口,连接到NGINX,然后NGINX反向到M个网关。 网关根据[服务注册与发现],进行转发请求到具体的微服务上。 由于网关可编码&#…...
该选择WPF 还是 Winform?
WPF和WinForms都是.NET平台下的桌面应用程序开发框架,它们各有特点,适用于不同的场景和需求。下面是对WPF和WinForms的一些比较和优劣势:WPF(Windows Presentation Foundation):WPF具有强大的图形渲染能力&…...
概念解析 | ChatGPT技术概览
注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:ChatGPT技术概览 参考资料:Deng J, Lin Y. The benefits and challenges of ChatGPT: An overview[J]. Frontiers in Computing and Intelligent Systems, 2022, 2(2): 81-83. …...
用Rust实现23种设计模式之 代理模式
关注我,学习Rust不迷路!! 代理模式是一种结构型设计模式,它允许通过代理对象来控制对真实对象的访问。以下是代理模式的优点和使用场景: 优点: 控制访问:代理模式可以控制对真实对象的访问&a…...
【nlp pytorch】基于标注信息从句子中提取命名实体内容
基于标注信息从句子中提取实体内容 1 需求2 代码实现3 代码封装1 需求 给定一个句子和已经通过模型训练标注好的信息,从而提取出句子中的实体内容,如下 输入: (1)句子信息 每个糖尿病患者,无论是病情轻重,不论是注射胰岛素,还是口服降糖药,都必须合理地控制饮食。(2)…...
图为科技加入深圳市智能交通行业协会 ,打 …
图为科技加入深圳市智能交通行业协会,打造智能交通新生态! 交通是国民经济发展的“大动脉”,交通拥堵、事故频发等问题不仅影响了人们的出行体验,也对经济的发展产生了负面影响。安全、高效、便捷的出行,一直是人们的…...
大模型排行榜及相关基础技术
大模型排行榜 测试集CEval中文多个学科测试集排名MMLU大规模多任务语言理解英文排名,介绍斯坦福排行榜 强人工智能AGI相关基础技术 标题简介分类稳定扩散模型The Illustrated Stable Diffusion图示化讲解Jay讲解Stable Diffusion计算机技术资料Transformer图示化讲解…...
Python入门【try和except结构、常见异常、with上下文管理 、traceback模块和生成异常日志、自定义异常类】(十八)
👏作者简介:大家好,我是爱敲代码的小王,CSDN博客博主,Python小白 📕系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 📧如果文章知识点有错误…...
windows脚本获取管理员权限修改host
很多时候我们常常需要通过管理员权限执行脚本,脚本可能涉及到一些受保护信息的访问,我们写个简单的脚本来更改host文件,host文件就是需要管理员权限才能访问的启动脚本时先检查是否有管理员权限,如果没有就调用授权脚本进行管理员…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 在字幕生成方面…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
