首先汇报一下进度,本来预计到22号才照着视频写出第一个小游戏,但是我80号就写完了,比计划提前了一天。然后下一周再按照写一个就开始模仿写小游戏。
在写小游戏的过程中遇到的问题:
1、首先就是视频中用到了很多系统已经封装好的方法,但是前八章没有,比如JFrame就是创建窗口要继承的系统封装好的类,还有Image 要载入图片名=Tookit.getDefaultToolkit().getImage("照片路径");是用来在床口中加入图片用的。
2、一个小游戏代码中会用到很多方法,并且需要定义很多不同类型的变量,这就弄的很乱,写到最后甚至已经不知道视频中引用的变量和方法是什么了。
3、我写小游戏中遇到的一个不理解的问题就是本来已经写过成功条件了,但是在下一集这个成功条件又不能用了,但是最后全部写完后又可以用了。
本次写小游戏的感悟就是在写的过程中需要有很强的思维,在写小游戏的过程中要时刻注意之前写过的方法,避免重复定义,然后过程中要思路清晰,在一个地方做过修改后很可能其他地方也要修改,在有些时候甚至会把写过的程序再次剪切粘贴到if语句中。
以下是本次写小游戏的步骤和步骤所需的知识点,有的看着看着就懵了,然后没有记知识点 。
窗口绘制:
1、类要继承JFrame类,这样才有创建窗口、监听鼠标键盘事件的功能
2、lunch方法用来初始化窗口信息
3、设置窗口是否可见。格式:this.setVisble(true/false);
true是可见,false是不可见
4、设置窗口大小。格式:this.setSize(长,宽);
长和宽是数值。
5、设置窗口位置。格式:this.setLocationRelativeTo();
括号中填null表示居中。
6、设置窗口标题。格式:this.Title(“名字”);
括号中填入制作窗口的名字。
7、关闭窗口的方法。格式:setDefaultCloseOperation(EXIT_ON_CLOSE);
表示可以点击左上角叉号来关闭。
绘制图片:
8、将图片载入到程序。格式:
Image 要载入图片名=Tookit.getDefaultToolkit().getImage("照片路径");
图片路径指的是在idear中的路径,不是电脑上的。
该步骤放到窗口方法定义上面
9、绘制方法:paint函数,然后调用grawlmage就是绘制图片
10、绘制自己。格式:void paintSelf(传入画笔(Graphics g)){}在下面粘贴绘制方法
红线绘制:
红线摇摆:
11、在计算机中,直角坐标系x正方向向右,y正方向向下。
12、延时:Thread.sleep();
括号内单位为毫秒。(需要清理异常:使用try/catch环绕)
红线抓取:
13、定义点击事件
addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e){
super.mouseClicked(e);
}
});
14、鼠标左键是1,右键是3,滚轮是2。
创建金块:
双缓存技术:
抓取判定:
抓取返回:
多个金块:
15、产生随机位置:
格式:(int)(Math random()*x+a);(a<x)
表示位置产生在a~x,若a=0,则产生范围为0~x。
BUG金块消失:
16、标记为boolean类型,false表示不可移动,true表示可以移动
添加石块:
17、获得宽度:再父类中加入getWidth(),用来获得石块或者金块的宽度
拉取速度:
18、延时:thread sleep(参数);(sleep需要try/catch一下;参数大小决定速度)
多种金块:
物体堆叠:
19、获取矩形的方法:Rectangle
红线完善:
积分设置:
20、类名.setColor:设置颜色
21、类名.setFont:设置字体
打印字符串:
22、g.setColor(Color.BLACK);
g.setFont(new Font("仿宋",Font.BOLD,30));
g.drawString("积分:"+count,30,150);
力量与爆破:
关卡设置:
游戏状态:
计时效果:
23、System.currentTimeMillis();获取系统时间
24、打印字符串格式:drawWord(g,30,Color.black,"本关目标:"+goal,30,110);
失败状态:
成功状态:
重置状态:
进去商店:
网友评论