超级玛丽之背景绘制
超级玛丽之背景绘制
想必大家都玩过超级玛丽,我们作为java程序员不开发一个超级玛丽很难说得过去
其实java游戏用到的技术是JFrame,我们上大学的时候不学这一块,真正工作中基本也用不到,因为现在都是B/S架构,也就是说基于浏览器和服务器之间交互的的,废话少说,我们进入游戏开发吧
窗口首先我们需要弄一个窗口出来,显然需要继承JFrame类,
public MarioFrame() extends JFrame implements KeyListener{
this.setTitle("超级玛丽");
this.setSize(900,700);
this.setVisible(true);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
this.addKeyListener(this);
}
public static void main(String[] args) {
MarioFrame marioFrame = new MarioFrame();
}
这样一个窗口就创建好了,有了窗口我们才能绘制背景等一系列的操作,这里是对窗口的一些参数的设置,比如窗口名称,可见性,窗口大小,相对位置等等一些属性
图片加载这些属性设置完后我们初始化一些图片和游戏元素,然后就是绘制背景了:
首先读取我们需要的图片,像这样:
public static BufferedImage bg = ImageIO.read(new File(path + "bg.png"));
我们把这样的资源设置为静态变量,大家都知道被static修饰的变量可以被所有的对象共享,在类的第一次加载的时候,静态变量就会初始化了,加载完所有图片后调用repaint();方法进行绘制,这里需要重写paint()方法:
private Image offScreenImage = null;
@Override
public void paint(Graphics g) {
if (offScreenImage == null) {
offScreenImage = createImage(800,600);
}
Graphics graphics = offScreenImage.getGraphics();
graphics.fillRect(0,0,800,600);
graphics.drawImage(nowBg.getBgImage(),0,0,this);
g.drawImage(offScreenImage,0,0,this);
}
这个方法中我们把需要加载的图像绘制到窗口中,包括背景、障碍物、敌人等等图片元素和分数。
这样整个游戏的场景布置就差不多这样了
总结这篇文章主要是对基于C/S架构的超级玛丽游戏的背景开发,基本都是图片元素的加载和堆积,让我们看到了花里胡哨的游戏界面,之前我的文章我有对超级玛丽游戏的主人翁的加载,感兴趣的可以看看。
版权声明
本文仅代表作者观点,不代表博信信息网立场。