游戏的本质,实际上可以理解为图像的显示和图像的移动,所以问题就是怎么显示图片和怎么控制图片动起来。
基础部分:窗体显示、图片绘制、图片移动、窗体监听、相交判定
设计部分:游戏实例分析、元素抽象、服务封装、元素生成器、注解定义、游戏行为交互
怎么显示图片?
显示图片需要用到javax.swing包下的JPanel类与JFrame类。
JPanel提供了一个面板,显示图片,相当于在画板上把图片画出来。通过重写JPanel中的绘制方法 void paint(Graphics g)其参数Graphics 相当于为我们提供了“一支画笔”,我们可以通过调用它的画图方法drawImage在面板上画任何东西。在 drawImage 方法调用之前,我们应该先准备好一个Image图片对象,直接使用 ImageIcon 中的 getImage 方法。
drawImage的各个参数:
Image:画啥?x,y:在哪画?width,height:画多大?ImageObserver:谁关心我?
新建一个自己的DemoPlane类来继承JPanel,最终重写它的paint方法
JFrame提供了一个窗体,面板被放到窗体上,最终显示到屏幕上。
如何控制图片动起来?
创建DemoPlane类的同时,传入Demo对象,利用循环不断改变Demo坐标,但是Jpanel对象的paint方法,只在窗体显示时调用一次,也就是说,我峨嵋你不断改变坐标的同时,需要不断重新绘制面板内容,以达到画面的刷新,所以JPanel还为我们提供了一个刷新的方法,repaint( )即重新绘制。在DeomFrame类的构造函数中加入循环,实现图片的移动。
接下来通过监听事件完成人为的控制
窗体对象调用addKeyListener(KeyListener l)方法,即可在窗体上添加键盘监听,KeyListener是一个监听器的接口,要添加有按键操作时,按下某键时,松开某键时的源代码。KeyEvent类中为我们提供了许多与键盘事件相关的方法。
也可以使用JPanel 面板的实例,在面板上添加鼠标监听,调用addMouseMotionListener方法实现对鼠标运动的监听,调用addMouseListener方法实现对鼠标动作的监听。
未完待续。。。。。。