当前位置: 首页 > news >正文

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&#xff1a;虽然流水线级数越来越多&#xff0c;但都是在三级流水线的基础上进行了细分 PC的作用&#xff08;取指&#xff09; …...

Stable Diffusion AI绘画学习指南【本地环境搭建win+mac】

一、硬件配配置要求 系统&#xff1a;windows 10 / Mac os 硬盘&#xff1a;C 盘预留 15GB 以上&#xff0c;其他盘 50GB 以上,Stable Ddiffusion的很多大模型都是以 GB 起步。 显卡&#xff1a;4GB 以上&#xff0c;建议 8GB, 效率高&#xff0c;能玩大尺寸的图 CPU&…...

Unity 3D ScrollRect和ScrollView回弹问题的解决

你是否是这样&#xff1f; Content高度 < 全部Cell加在一起的总高 他就认为你的全部Cell加起来就跟Content一样大&#xff0c;所以才出现了这种完全回弹 我该怎么办&#xff1f; 很简单&#xff0c;改变Content的长度跟所有Cell的和一样大 void RefreshSize(){float allD…...

python编写小程序有界面,python编写小程序的运行

大家好&#xff0c;小编为大家解答python编写小程序怎么看代码的的问题。很多人还不知道python编写小程序的运行&#xff0c;现在让我们一起来看看吧&#xff01; Python第一个简单的小游戏 temp input("请猜一猜姐姐的幸运数字是&#xff1a; ") guess int(temp) …...

【中断机制】什么是中断?使用中断的原因、注意事项

目录 一、为什么需要中断 二、什么是中断 1、中断的概念 2、中断的分类 3、中断的处理流程 三、中断处理程序要少用延时的原因 一、为什么需要中断 以网卡为例&#xff0c;CPU 如果要从网卡获取数据&#xff0c;不可能时时盯着网卡啥时候会有数据。当网卡收到数据时&…...

C++20 协程(coroutine)入门

文章目录 C20 协程&#xff08;coroutine&#xff09;入门什么是协程无栈协程和有栈协程有栈协程的例子例 1例 2 对称协程与非对称协程无栈协程的模型无栈协程的调度器朴素的单线程调度器让协程学会等待Python 中的异步函数可等待对象M:N 调度器——C# 中的异步函数 小结 C20 中…...

2023.8.6

2022河南萌新联赛第&#xff08;三&#xff09;场&#xff1a;河南大学\区间操作.cpp //题意&#xff1a;定义一个f[x]函数表示一个数分解质因数后各个质因子的幂次和&#xff0c;给定一个长度为n的数组&#xff0c; //有m个操作&#xff0c;第一种操作是输出[l, r]范围内的a…...

kubernetes网络之网络策略-----Network Policies - Default

默认情况下&#xff0c;如果名称空间中没有配置 NetworkPolicy&#xff0c;则该名称空间中&#xff0c;所有Pod的所有入方向流量和所有出方向流量都是被允许的。 那么如果我们想改变名称空间中默认的网络策略&#xff0c;又该怎么做呢&#xff1f; 默认拒绝所有的入方向流量 …...

奥威BI系统|秒分析,更适合分析大数据

根据以往的经验&#xff0c;当数据量多到一定程度就容易导致系统卡顿、崩溃。这种现象给企业级数据分析造成了极大的困扰。随着业务发展扩大和分析需求精细化&#xff0c;企业需要一套能秒分析大数据的系统。而奥威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接口&#xff0c;连接到NGINX&#xff0c;然后NGINX反向到M个网关。 网关根据[服务注册与发现],进行转发请求到具体的微服务上。 由于网关可编码&#…...

该选择WPF 还是 Winform?

WPF和WinForms都是.NET平台下的桌面应用程序开发框架&#xff0c;它们各有特点&#xff0c;适用于不同的场景和需求。下面是对WPF和WinForms的一些比较和优劣势&#xff1a;WPF&#xff08;Windows Presentation Foundation&#xff09;&#xff1a;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种设计模式之 代理模式

关注我&#xff0c;学习Rust不迷路&#xff01;&#xff01; 代理模式是一种结构型设计模式&#xff0c;它允许通过代理对象来控制对真实对象的访问。以下是代理模式的优点和使用场景&#xff1a; 优点&#xff1a; 控制访问&#xff1a;代理模式可以控制对真实对象的访问&a…...

【nlp pytorch】基于标注信息从句子中提取命名实体内容

基于标注信息从句子中提取实体内容 1 需求2 代码实现3 代码封装1 需求 给定一个句子和已经通过模型训练标注好的信息,从而提取出句子中的实体内容,如下 输入: (1)句子信息 每个糖尿病患者,无论是病情轻重,不论是注射胰岛素,还是口服降糖药,都必须合理地控制饮食。(2)…...

图为科技加入深圳市智能交通行业协会 ,打 …

图为科技加入深圳市智能交通行业协会&#xff0c;打造智能交通新生态&#xff01; 交通是国民经济发展的“大动脉”&#xff0c;交通拥堵、事故频发等问题不仅影响了人们的出行体验&#xff0c;也对经济的发展产生了负面影响。安全、高效、便捷的出行&#xff0c;一直是人们的…...

大模型排行榜及相关基础技术

大模型排行榜 测试集CEval中文多个学科测试集排名MMLU大规模多任务语言理解英文排名&#xff0c;介绍斯坦福排行榜 强人工智能AGI相关基础技术 标题简介分类稳定扩散模型The Illustrated Stable Diffusion图示化讲解Jay讲解Stable Diffusion计算机技术资料Transformer图示化讲解…...

Python入门【​try和except结构、常见异常、with上下文管理 、traceback模块和生成异常日志、自定义异常类】(十八)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…...

windows脚本获取管理员权限修改host

很多时候我们常常需要通过管理员权限执行脚本&#xff0c;脚本可能涉及到一些受保护信息的访问&#xff0c;我们写个简单的脚本来更改host文件&#xff0c;host文件就是需要管理员权限才能访问的启动脚本时先检查是否有管理员权限&#xff0c;如果没有就调用授权脚本进行管理员…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

DAY 45 超大力王爱学Python

来自超大力王的友情提示&#xff1a;在用tensordoard的时候一定一定要用绝对位置&#xff0c;例如&#xff1a;tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾&#xff1a; tensorboard的发展历史和原理tens…...

FTXUI::Dom 模块

DOM 模块定义了分层的 FTXUI::Element 树&#xff0c;可用于构建复杂的终端界面&#xff0c;支持响应终端尺寸变化。 namespace ftxui {...// 定义文档 定义布局盒子 Element document vbox({// 设置文本 设置加粗 设置文本颜色text("The window") | bold | color(…...

初探用uniapp写微信小程序遇到的问题及解决(vue3+ts)

零、关于开发思路 (一)拿到工作任务,先理清楚需求 1.逻辑部分 不放过原型里说的每一句话,有疑惑的部分该问产品/测试/之前的开发就问 2.页面部分(含国际化) 整体看过需要开发页面的原型后,分类一下哪些组件/样式可以复用,直接提取出来使用 (时间充分的前提下,不…...