Java 音乐类(完结)
package com.arvin;import javazoom.jl.decoder.JavaLayerException;import javazoom.jl.player.Player;import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;/** * 背景音乐类 */public class Music { // 空参构造 public Music() throws FileNotFoundException, JavaLayerException { Player player; // 播放音乐 String str = System.getProperty("user.dir") + "/src/Music/music.wav"; BufferedInputStream name = new Buffered ...
Java 敌人类
代码演示package com.arvin;import java.awt.image.BufferedImage;/** * 敌人类 */public class Enemy implements Runnable { // 存储当前坐标 private int x,y; // 存储敌人类型 private int type; // 判断敌人运动的方向 private boolean face_to = true; // 用于显示敌人的当前图像 private BufferedImage show; // 定义一个背景对象 private BackGround backGround; // 食人花运动的极限范围 private int max_up = 0; private int max_down = 0; // 定义一个线程对象 实现敌人的运动 private Thread thread = new Thread(this); // 定义当前的图片的状态 privat ...
Java 马里奥类
代码演示package com.arvin;import java.awt.image.BufferedImage;/** * 马里奥类 */// 利用马里奥类实现 Runnadle 接口 重写其中的抽象方法public class Mario implements Runnable { // 用于表示(存储)横纵坐标 private int x, y; // 用于表示马里奥当前状态 private String status; // 显示当前状态对应的图像 private BufferedImage show = null; // 定义一个 BackGround 对象用来获取障碍物信息 private BackGround backGround = new BackGround(); // 用来实现马里奥动作 线程对象 private Thread thread = null; // 马里奥的移动速度 private int xSpeed; // 马里奥的跳跃速度 private int ...
【無憂樹洞】但行好事,莫问前程「暴力兔」
您好,我是陆弦,我又写信了。
这篇文章是2020年5月23日写的,今天是2020年7月17日。祝朋友们,内心平和柔软,外表无坚不摧。
但行好事 莫问前程
原创 陆弦 一路弦歌 5月23日
赠人玫瑰,手留余香。5.20买的影星玫瑰。
这首歌的名字是《我的希望在路上》
(词:诗人小招,曲:独立音乐人白羽,演唱:佩佩、白羽)
曾经有一段时间,我的微信签名就是:
但行好事,莫问前程。(现在的签名是:怕什么真理无穷,进一寸有进一寸的欢喜。)
但行好事,莫问前程。百度的解释:多多地做善事,过好当下,先不要去问前程如何。
我的理解是:做善良之人,行善良之事,无论未来如何,做好当下。
那么,如何做一个善良之人呢?
首先,有向善之心。
养成善意的视角,不以恶意揣测他人。
相处时与人为善,将自己的善意传达给他人时,必将也会收到他人回馈的善意,这个世界将消弥多少纷争与矛盾。
其次,培养善良的特质。不苛求他人,控制情绪,学会聆听。
一个善良的人,大多是性情温和的,因为他们会将心比心,不会说出伤害他人的话,也不会做出伤害他人的事。
最后,就是行动起来。多微笑,多关爱他人,力所能及地帮助他人。只有行动起来,才能帮 ...
Java 超级玛丽障碍物类
代码演示package com.arvin;import java.awt.image.BufferedImage;/** * 障碍物类 */public class Obstacle implements Runnable{ // 用于表示当前坐标 private int x; private int y; // 用于记录障碍物类型 private int type; // 用于显示图像 private BufferedImage show = null; // 定义当前场景对象 private BackGround BackGround = null; // 定义一个线程对象 用于完成我们旗子下落的过程 private Thread thread = new Thread(this); // 构造函数 public Obstacle (int x, int y, int type, BackGround BackGround) { this.x = x; ...
Java 超级玛丽窗口
说明首先要基于:Java 创建窗口
其次基于:Java 超级玛丽常量类
搭配文件:Java 超级玛丽背景类
代码演示package com.arvin;import javazoom.jl.decoder.JavaLayerException;import javax.swing.*;import java.awt.*;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.io.FileNotFoundException;import java.util.ArrayList;import java.util.List;/** * 窗口框架类 */public class WindowsFrame extends JFrame implements KeyListener,Runnable { // 用于存储所有的背景 private List<BackGround> AllBackground = new ArrayList<>(); ...
Java 超级玛丽背景类
配合文件:Java 超级玛丽窗口
代码演示:package com.arvin;import java.awt.image.BufferedImage;import java.util.ArrayList;import java.util.List;/** * 背景类 */public class BackGround { /* 调用BufferedImage 该对象用于显示当前场景的图片 */ private BufferedImage bgImage = null; /* 记录当前是第几个场景(关卡) */ private int sort; /* 判断是否是最后一个场景 */ private boolean flag; /* 用于存放我们所有的障碍物 */ private List<Obstacle> ObstacleList = new ArrayList<>(); /* 用于存放我们所有的敌人 */ private List<Enemy> enemyList = ne ...
Minecraft 类游戏地形生成算法
Minecraft 类游戏地形生成算法噪声算法
为什么要有噪声?
随机数 VS 噪声
随机数:随机生成一个噪点不一的黑白图,但因为过于随机生成的图看起来特别不舒服。
噪声:具有随机性、可哈希的、平滑性。
Value 噪声算法
Noise2D(pos) = lerp(顶点A,顶点B,s(t)),t∈[0,1]
定义若干个顶点,且每个顶点含有一个随机值(以顶点坐标为参数,通过 Hash 运算得到)
顶点会对周围坐标产生影响,越靠近顶点,则越容易受该顶点的随机值影响
某个坐标的噪声值 = 该坐标附近的所有顶点所造成的影响之和
Perlin 噪声 (柏林噪声)
定义若干个顶点,且每个顶点含有一个随机向量(以顶点坐标作为参数,通过 Hash 运算)
顶点会对周围坐标产生影响,和顶点随机向量的夹角越小,则得到的值越大
某个坐标的噪声值 = 该坐标附近的所有顶点所造成的影响值之和
Simplex 噪声 (高维制作常用)
Perlin 噪声在晶格结构上是正多胞,在 N 维下有 2^N 个顶点,一次噪声计算需要计算 2^N 个顶点的势能影响
Simpl ...
Java 超级玛丽常量类
package com.arvin;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.List;/** * 常量类 (初始化图片) */public class StaticValue { /** * 定义所需的所有变量 */ public static BufferedImage BackgroundImage_Noe = null; // 背景 1 public static BufferedImage BackgroundImage_Two = null; // 背景 2 public static BufferedImage Jump_Left = null; // 马里奥向左跳 public static BufferedImage Jump_Right ...
Java 创建窗口
Java 窗口绘制
创建窗口我们需要继承 JFrame 类
向窗口对象添加键盘监听器 需要该类实现 KeyListener 接口 并重写抽象方法
代码演示package com.arvin;import javax.swing.*;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;/** * 窗口框架类 */public class WindowsFrame extends JFrame implements KeyListener { // 空参构造 public WindowsFrame(){ // 设置窗口的大小为 800 * 600 this.setSize(800, 600); // 设置窗口居中显示 this.setLocationRelativeTo(null); // 设置窗口的可见性 this.setVisible(true); // 创建点击窗口上的关闭 ...