java坦克大战小游戏
文章平均质量分 80
从0到1手搓坦克大战代码,欢迎大家建议
喜欢写代码的小唐
这个作者很懒,什么都没留下…
展开
-
java坦克大战1.0——敌人坦克发射子弹+敌人消失+爆炸
因为我们设置的坦克是矩形的也就说他是一个规则的形状,那么在判断子弹和坦克的接触时,我们可以判断坦克的方向获得坦克的坐标然后和子弹的坐标相匹配。从而得到子弹是否进入了我们坦克的区域然后标记我们的坦克和子弹,并将坦克移除集合。在初始化的时候,增加了一个bombs集合来存储爆炸的效果,以及设置一次爆炸所需要的gif图片,当然也可以是两个,三个去做这个爆炸效果。我们在MyPanel类里面的 paint方法里面加了判断子弹,以及绘制子弹动画并移除的语句。我们在初始化敌人坦克的时候,我们加入一颗子弹。原创 2024-04-26 16:27:10 · 1181 阅读 · 1 评论 -
java坦克大战1.0——实现上右下左+绘制敌人坦克
设置画布的大小,以及可视化方法setVisble(true),我们这里说一下setVisble和dispose在我们使用dispose()和setVisble(false)的时候,我们会发现结果都是一样的,但是对于dispose来说,他是对资源直接破坏并且释放资源到内存里去,而setVisble只是隐藏。然后再通过监听事件,去实现改变hero里面direct的值,从而改变坦克的方向。主要改动在于,我们利用Vetor集合去存敌人的坦克,利用for循环绘制敌方坦克。继承tank类,封装tank类。原创 2024-04-17 17:40:54 · 578 阅读 · 0 评论 -
java坦克大战1.0——发射子弹
在画板类里面我们增加了一个监听按键,以及监听j的按键为了启动子弹的线程。并在画板上面建立一个线程为了绘制子弹。这个线程是为了让画板在执行。因为如果不去为了画板开一个线程,那么子弹就会画了一次就结束了,后面线程虽然还在运行。因为这个子弹相对于坦克其实是相对独立的,所以我们把他单独一个类,并且做个线程处理。在run方法里面我们根据坦克的方向绘制出子弹的运动方向和轨迹。我们对于hero增加了一个方法,把坦克的参数传到子弹类里面去。并开启了shot的线程。在主进程里面加一个画板的进程开启就行了。原创 2024-04-20 15:09:58 · 710 阅读 · 0 评论 -
JAVA坦克大战1.0——绘图入门和机制
但这里和平时不同的是,我们这里继承了一个JFrame类,这里的JFrame类是一个框架,所以我们这里理解起来就不要从底层代码来理解他这样会增加我们理解的难度。而我们的画板就是刚刚我们定义的MyPanel类,但是我们平时写代码并不会写公开类的构造函数(当然,这有可能是因为我之前写的代码比较简单),但这里为了把画板嵌入到框架里面去,我这里先定义了一个类对象指向画板,让通过this.add()把画板嵌入,然后用setSize()定义画框的大小,然后用setVisble(true)让内容可视化。原创 2024-03-28 16:12:31 · 1028 阅读 · 2 评论 -
java坦克大战1.0——java绘图技术
这个方法可以在画板上画一条斜线,x1,y1和x2,y2分别是指起点和终点的坐标,以java坐标系为参考对象,例子如下。这个方法可以画出一个矩形边框,参数和画椭圆一样,x,y代表距离x轴y轴的宽度width和height表示宽和高。在绘制的过程中,我们一般默认边框或是填充的颜色都是黑色,我们通过这个方法可以改变颜色。用来绘制矩形填充图形,参数和上面矩形边框差不多。画个字符串,str是要输出的字符串,x,y是位置。椭圆填充函数,参数列表参考画椭圆边框。原创 2024-03-28 20:43:17 · 393 阅读 · 2 评论 -
java坦克大战1.0——小球移动案例+事件处理机制
当事件发生时,产生事件的对象,会把此“信息”传递给“事件的监听者”处理,这里的信息就是java.awt.event事件类库里某个类所创建的对象,把它称为“事件的对象”对于tank游戏来说,第一个需要实现的功能就是移动,怎么让tank移动起来是我们首先要解决的问题,这里为了直观并易于理解我们用小球来举例,在移动小球的处理来说我们在这里引用了一个事件监听器叫做Keylistener。3.事件:事件就是承载事件源状态改变时的对象,比如键盘事件,鼠标事件,窗口事件等等。当一个组件隐藏,移动,改变大小时发生。原创 2024-04-06 22:18:29 · 571 阅读 · 1 评论