项目——超级马里奥——Day(1)

前言:

等国庆之后我就要给新生讲超级马里奥这个项目,所以特地来记录一下思想,顺便也整理一下应该怎么讲解比较好,同时也可以巩固一下知识,然后就是觉得csdn上边对于马里奥的项目怎么全是要钱的啊?所以特来此开源一下素材和代码

今天需要用的知识:

1.类与对象

2.面向对象程序设计的概念

3.继承

4.接口 --->重写方法

5.this关键字

超级马里奥游戏制作思路:

1.游戏窗口的继承:

马里奥的人物在哪里移动呢?所以我们制作java游戏的第一步就是制作一个窗口,然而窗口应该怎么绘制,他是运用什么样的代码才能让我们在屏幕上看到这个代码,我们不需要管,但是如果我们不管它的话,你又会问了?那我们怎么办?你又不交我们又不要我们管?

所以这就引出了今天的第一个知识点:类与继承

我们可以这样思考,继承就是把别人已经写好的函数,变量等直接拿过来用就行了,就比如你爸爸买的房子,买的车,你直接用就好了,从他那继承过来

于是你自己的MyFrame直接继承JFrame即可,在JFrame里边别人已经为你写好了函数,你只需要学习我如何使用它就好了,其中继承关键词为extends

public class MyFrame extends JFrame {

}

2.游戏窗口的功能的实现:

1)设置窗口的大小为800*600
this.setSize(800,600);
2)设置窗口的居中显示
//设置窗口的居中显示
this.setLocationRelativeTo(null);
3)设置窗口的可见性
//设置窗口的可见性
this.setVisible(true);
4)设置点击窗口上的关闭键,结束程序
//设置点击窗口上的关闭键,结束程序
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
5)设置窗口大小不可变
//设置窗口大小不可变
this.setResizable(false);
6)向窗口对象添加键盘监听器
//向窗口对象添加键盘监听器
this.addKeyListener(this);
7)设置窗口名称
//设置窗口名称
this.setTitle("超级玛丽");
讲解思路: 

首先我们玩一个游戏,首先得有的东西是什么,就是窗口吧,那窗口它有什么样的规定呢,这个窗口它得有多大?

那这个窗口能随意被玩的人改变么?那目前肯定不行,因为这个背景图片都是我们按比例设置好的,所以改变的话,这个缺点不就暴露了

然后我们再来观察一下这个游戏窗口哈,它相对于我们整个屏幕来说是不是保持在居中水平,

然后还有一点关键的,我们是不是能看见它?要是不能看见窗口,这游戏还咋玩?当然还有当我们点击这个右上角的关闭键的时候,可以结束程序,这个也是我们程序员需要控制的

之后这个窗口左上角应该叫什么名字,这个游戏叫啥?我们得设置是吧

还有当我们按下键盘的时候,这个小人会移动,这就涉及到我们另一个类——监听键盘类,这个我们待会讲

3.支撑知识点讲解:

1.this关键字

this:代表本类对象,可以访问本类的属性、方法、构造。

它的出现主要为了区分成员变量和局部变量,以及调用本类构造器。

通过this访问成员时,先从本类中查找,如果找不到再从直接父类找,如果还找不到,继续往上追溯找间接父类,直到找到为止!

2.接口

显示窗口之后,我们对于在键盘上边的操作还应该连接到这个窗口里边,但是这个连接的方法与窗口如何实现一样,我们无需理解究竟怎么样实现的,有人已经帮我们创建好了,我们只需要去调用这个类的方法就行了,所以为何java为面向对象编程语言的好处就在这里了

所以我们运用下一个类——KeyListener

但是我们并不能直接像继承JFrame一样,继承KeyListener,因为其实继承这里就像父亲和儿子一样,他们是有相似之处的,所以才会继承过来,父窗口和子窗口他俩之间都叫窗口,但是窗口还需要有KeyListener监听键盘的功能,但是又不是监听类,那怎么办呢?

所以这里就涉及到接口

我们只需要implements,就可以把别人的功能给自己,相当于extends是天生的,但是implements确实后天学习过来的,但是一般,学习过来的东西,我们还得去消化它把它变成自己的东西,所以我们java里边又涉及到一个知识点——方法的重写

3.方法重写  ||  抽象方法

接口由于是我们学习过来的东西,而学来的知识一般都很抽象,所以接口里边的函数方法都是抽象函数,什么是抽象函数,相当于是没有方法体的函数,具体怎么去运用这个函数,还是得我们自己去写,而我们学习过来之后,最终目的就是要把接口里边的抽象方法重写

代码:
  @Override
    public void keyTyped(KeyEvent e) {

    }

    @Override
    public void keyPressed(KeyEvent e) {

    }

    @Override
    public void keyReleased(KeyEvent e) {

    }
4.创建对象

类可以看作只是我们的一个模板

但是我们每一个人还得有自己的对象,比如A的窗口对象,B的窗口对象

也就是说我们刚才其实只是在雕刻出整个模具,具体你用粘土做出来的还得自己做

而我们创建对象的关键词为new

即new MyFrame()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值