美文网首页
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏06

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

作者: __豆约翰__ | 来源:发表于2021-12-29 13:39 被阅读0次

    游戏背景

    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);
            ......
    }
    

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

    项目源码

    项目源码

    相关文章

      网友评论

          本文标题:手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏06

          本文链接:https://www.haomeiwen.com/subject/tsipqrtx.html