码在最前排:赵姗姗老师听课笔记和思路总结&&赵姗姗老师爱了爱了(手动比心)
贪吃蛇、俄罗斯方块、推箱子…是以前按键手机的常驻游戏。
写好样子:#忽略食物是花花
接下来我们来实现贪吃蛇。首当其冲,先复习JavaGUI.
JavaGUI界面
JFrame:窗口类,定义一个窗口
方法:setTittle(String):为窗口设置一个标题
setBounds(int x,int y,int width,int height):x,y代表窗口坐标(窗口左上角坐标),注意参考系不是常规数学上的那种坐标系,是左上角为原点,原点水平向右为x轴,原点垂直向下为y轴。width,height分别表示窗口的宽度和高度。
setDefaultCloseOperation(int):设置窗口关闭方式,常有参数:WindowConstants.EXIT_ON_CLOSE即关闭窗口即结束程序。
setResizable(boolean):设置窗口大小是否可调节。
setVisible(boolean):设置窗口是否可见。一般放程序最后。
贪吃蛇图片的封装
java是一门面向对象的语言,把图片封装好也方便使用。
提前准备好的图片:
创建一个images包(文件夹)把图片复制到该包。
图片的封装:获取每张图片路径,并封装为ImageIcon是为了方便在后来用画笔画出图片来。
public class Images {
/* 现在是面向对象的语言,面向对象的思维,,将图片封装为一个
* 对象,这样在开发过程中才能操控这个对象 */
//将图片所在的路径封装为一个对象
public static URL bodyURL=Images.class.getResource("/images/body.jpg");
//将这个图片封装为程序中的一个对象
public static ImageIcon bodyImg=new ImageIcon(bodyURL);
//将图片所在的路径封装为一个对象
public static URL downURL=Images.class.getResource("/images/down.jpg");
//将这个图片封装为程序中的一个对象
public static ImageIcon downImg=new ImageIcon(downURL);
//将图片所在的路径封装为一个对象
public static URL foodURL=Images.class.getResource("/images/food.jpg");
//将这个图片封装为程序中的一个对象
public static ImageIcon foodImg=new ImageIcon(foodURL);
//将图片所在的路径封装为一个对象
public static URL headerURL=Images.class.getResource("/images/header.jpg");
//将这个图片封装为程序中的一个对象
public static ImageIcon headerImg=new ImageIcon(headerURL);
//将图片所在的路径封装为一个对象
public static URL leftURL=Images.class.getResource("/images/left.jpg");
//将这个图片封装为程序中的一个对象
public static ImageIcon leftImg=new ImageIcon(leftURL);
//将图片所在的路径封装为一个对象
public static URL rightURL=Images.class.getResource("/images/right.jpg");
//将这个图片封装为程序中的一个对象
public static ImageIcon rightImg=new ImageIcon(rightURL);
//将图片所在的路径封装为一个对象
public static URL upURL=Images.class.getResource("/images/up.jpg");
//将这个图片封装为程序中的一个对象
public static ImageIcon upImg=new ImageIcon(upURL);
}
画一个窗口:用来放面板,之后我们在面板中添加元素;同时也是程序入口
代码:
public class StartGame {
public static void main(String[] args) {
JFrame jf = new JFrame();
//设置一个标题
jf.setTitle("贪吃不是一种错,偷吃才是,手动狗头");
//设置窗体弹出的坐标
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
jf.setBounds((width-800)/2, (height-800)/2, 800, 800);
//设置关闭方式,关闭窗口的同时,程序要随之关闭
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//设置窗体大小不可调节
jf.setResizable(false);
//默认状态下窗体是隐藏状态
jf.setVisible(true);
}
}
然后创建好它是这个Y子: