飞机大战1.1
任务一:
- 游戏窗口可以使用鼠标调大小。
 
不允许窗口的大小可调。setResizable(false)
- 设置窗口的位置在屏幕的正中间
 
setLocationRelativeTo(null);
- 设置窗口的大小为400*600,这样的方式后期修改很困难。
 
把这两个数据存在变量中,后期修改变量的值就行了。
存放大小的变量定义到一个专门存放游戏需要修改的数据的类GameData类中。
任务二:
在游戏窗口中包含一个游戏面板。
思路:
- 创建游戏面板的类
 
继承于一个面板的父类,javax.swing包中的JPanel
初始化大小和背景色
setSize();
setBackground(Color.RED);
- 创建游戏面板的对象
 
GamePanel gamePanel; 类体中声明对象
在GameWindow构造方法中产生对象
gamePanel = new GamePanel();
- 把游戏面板的对象放入游戏窗口对象中。
 
this.add(gamePanel);
任务三: 为了验证游戏面板的大小是不是400*600
在游戏面板中画一个椭圆400*600。
?谁画的游戏面板,谁画的游戏窗口
游戏面板,游戏窗口都从他们的父类那里继承了一个paint()方法,这个方法就是绘制组件的方法。
如果我们想画其他的内容,需要重写这个方法。
在GamePanel类中,鼠标右击

(1)、GameData类
package dsj; public class GameData { // 设置游戏宽度和高度 public static int GameWidth = 400; public static int GameHeight = 600; }
(2)、GamePanel类
package dsj; import java.awt.Color; import java.awt.Graphics; import javax.swing.JPanel; public class GamePanel extends JPanel { public GamePanel() { //初始化大小 this.setSize(GameData.GameWidth, GameData.GameHeight); //设置背景色 this.setBackground(Color.CYAN); } @Override public void paint(Graphics g) { // TODO 自动生成的方法存根 super.paint(g); //绘制一个椭圆 g.fillOval(0, 0, GameData.GameWidth, GameData.GameHeight); } }
(3)、GameWindow类
package dsj; import javax.swing.JFrame; public class GameWindow extends JFrame { GamePanel gamePanel; // 写窗口类的构造方法,初始化窗口对象 public GameWindow() { // 设置窗口大小 this.setSize(GameData.GameWidth,GameData.GameHeight); // 窗口的可见性 this.setVisible(true); // 设置标题 this.setTitle("飞机大战"); //设置窗口的位置在上层组件或屏幕的中间。 this.setLocationRelativeTo(null); //产生GamePanel的对象 gamePanel = new GamePanel(); //在当前的窗口对象中添加这个GamePanel的对象 this.add(gamePanel); } }
效果展示

                    
                
                
            
        
浙公网安备 33010602011771号