超级玛丽之背景绘制
【摘要】 超级玛丽之背景绘制 窗口 图片加载 总结 超级玛丽之背景绘制想必大家都玩过超级玛丽,超级玛丽伴随了我们整个童年,我们作为java程序员不开发一个超级玛丽很难说得过去其实java游戏用到的技术是JFrame,我们上大学的时候不学这一块,真正工作中基本也用不到,因为现在都是B/S架构,也就是说基于浏览器和服务器之间交互的的,废话少说,我们进入游戏开发吧 窗口首先我们需要弄一个窗口出来,显然需要...
超级玛丽之背景绘制
想必大家都玩过超级玛丽,超级玛丽伴随了我们整个童年,我们作为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();
}
这样一个窗口就创建好了,有了窗口我们才能绘制背景等一系列的操作,这里是对窗口的一些参数的设置,比如窗口名称,可见性,窗口大小,相对位置等等一些属性,最后我们使用main()函数来进行加载。
图片加载
这些属性设置完后我们初始化一些图片和游戏元素,然后就是绘制背景了:
首先读取我们需要的图片,像这样:
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架构的超级玛丽游戏的背景开发,基本都是图片元素的加载和堆积,通过开发能让我们更加理解游戏的结构,让我们看到了花里胡哨的游戏界面原来是这么简单的开发思路,之前我的文章我有对超级玛丽游戏的主人翁的加载,感兴趣的可以看看。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)