手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏06加载游戏背景

简介: 手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏06加载游戏背景

游戏背景


Background.java

package world;
import sprite.Sprite;
import java.awt.*;
public class Background {
    private Sprite _background;
    private Sprite _cloud;
    public Background(){
        _background = new Sprite("res/background/level1.png");
        _cloud = new Sprite("res/background/level1_back.png");
        _background.translate(-900, 120);
        _cloud.translate(0, 120);
        _background.scale(2, 2);
        _cloud.scale(2, 2);
    }
    public void update(Graphics2D g){
        _cloud.show(g);
        _background.show(g);
    }
}

level1.png(1026256)放大2倍后(2052512)

level1_back.png(513240)放大2倍后(1026480)

我们的屏幕大小是:(640*480)

DisplayMode(640, 480, 32, 0)

我们先来看一下水平方向(x轴方向)

_background.translate(-900, 120);

level1.png被向左平移了900个像素,还剩下2052-900=1150个像素,大约是640的2倍。

_cloud.translate(0, 120);

level1_back.png被直接放到了x=0的点,还剩下1026像素,大约是640的2倍。

level1.png和level1_back.png覆盖在了一起,构成了最终的背景效果。

将来随着player的向右移动,背景会向左平移,造成一种player向前走的效果。

将来,我们会另外准备2张背景图片,交替反复的贴到屏幕上。

再来看一下垂直方向(y轴方向)

_background.translate(-900, 120);
_cloud.translate(0, 120);

屏幕高度是480,背景图片高度240,我们先移动到偏移120的位置,然后放大2倍,垂直方向上正好填满整个屏幕。


主窗体加载背景

public GameApp(){
        try{
            background = new Background();
        ......
}

private void _gameLoop(){
        background.update(g);
        ......
}

如果您迷路了,请参考完整源码:


项目源码


项目源码

目录
相关文章
|
1天前
|
Java 开发者
Java中三种Set的实现类的用法和区别
Java中三种Set的实现类的用法和区别
|
1天前
|
消息中间件 安全 Java
在Spring Bean中,如何通过Java配置类定义Bean?
【4月更文挑战第30天】在Spring Bean中,如何通过Java配置类定义Bean?
7 1
|
1天前
|
Java 索引
Java String应用与开发
Java String应用与开发
8 0
|
2天前
|
Java
Java对象和类研究
Java对象和类研究
6 0
|
2天前
|
XML Java 测试技术
Java异常处理神器:Guava Throwables类概念与实战
【4月更文挑战第29天】在Java开发中,异常处理是保证程序稳定性和可靠性的关键。Google的Guava库提供了一个强大的工具类Throwables,用于简化和增强异常处理。本篇博客将探讨Throwables类的核心功能及其在实战中的应用。
9 2
|
2天前
|
存储 安全 Java
【Java EE】CAS原理和实现以及JUC中常见的类的使用
【Java EE】CAS原理和实现以及JUC中常见的类的使用
|
2天前
|
安全 Java 开发者
构建高效微服务架构:后端开发的新范式Java中的多线程并发编程实践
【4月更文挑战第29天】在数字化转型的浪潮中,微服务架构已成为软件开发的一大趋势。它通过解耦复杂系统、提升可伸缩性和促进敏捷开发来满足现代企业不断变化的业务需求。本文将深入探讨微服务的核心概念、设计原则以及如何利用最新的后端技术栈构建和部署高效的微服务架构。我们将分析微服务带来的挑战,包括服务治理、数据一致性和网络延迟问题,并讨论相应的解决方案。通过实际案例分析和最佳实践的分享,旨在为后端开发者提供一套实施微服务的全面指导。 【4月更文挑战第29天】在现代软件开发中,多线程技术是提高程序性能和响应能力的重要手段。本文通过介绍Java语言的多线程机制,探讨了如何有效地实现线程同步和通信,以及如
|
3天前
|
存储 安全 Java
聊聊Java中的常用类String
聊聊Java中的常用类String
7 0
|
Java 开发工具 git
Java开发初级6.24.3
5.在Git使用过程中,进行Git配置的操作命令是哪个() A. config B. config -g C. config -a D. git config 相关知识点: 在git中,经常使用git config 命令用来配置git的配置文件,git配置级别主要有:仓库级别 local 【优先级最高】、用户级别 global【优先级次之】、系统级别 system【优先级最低】 正确答案:D 10.RDBMS是什么? A. Rela Database Management Systems B. Relational Database Management Systems C. Relation
104 0
|
SQL 前端开发 JavaScript
Java开发初级6.24.2
3.Java网站src/main/java目录保存的是什么资源? A. Java源代码文件 B. 测试代码 C. JavaScript、CSS等文件 D. 图片资源 正确答案:A 4.什么是索引Index? A. SQL数据库里的表管理工具 B. SQL数据库里的查询工具 C. SQL数据库里的目录工具 D. SQL数据库用来加速数据查询的特殊的数据结构 正确答案:D
112 0