初学1之坦克要求(我方坦克炮筒方向,颜色,四边移动)+(敌方坦克绘制,只先绘制出敌方坦克颜色,炮筒方向,暂时不考虑敌方坦克移动)

我们在设置坦克游戏的时候,需要想好我们要设置我方坦克+敌方坦克(此时就需要两个类class--MyTank(我方坦克)+EnemyTank(敌方坦克))

【第一步】:为了避免它二位打架,直接写一个父类封装好所有要求,让我方坦克+敌方坦克去继承即可。父类坦克所需的属性和方法如下:

紧接着写我方坦克(Class MyTank)

 【第二步】: 开始先写我方坦克,因为我方坦克就一个,方便简单些。首先我们需要一个坦克画板类(class TankPanel),画板要绘制坦克画,必须得继承java给定的一个Jpanel你才能调出它的绘画方法paint(Graphics g)--可以把这里的g当成是绘画方法里面的一直画笔

 【注】如果只画一个简单的圆或者其他,可以直接在paint()方法里添加绘画即可,但是此时是画坦克有左右两个矩形柱子+正方形身体+圆圈+炮筒,画的实在是太多,所以可以在TankPanel类里面重新写一个drawTank()的方法,定义好参数,既画出我方坦克也可以画出敌方坦克,根据颜色和方向

 

 此时可以检测出我方坦克柱子画的是否符合要求--后面身体圆形炮筒也是以此类推 

 

【第三步】:让我方坦克移动

想一想:需要按键才能移动,无论你输入WSAD或者↑↓←→代表 移动,需要让MyPanel去实现一个时间监听功能接口KeyLinstener,并且实现它里面的KeyPress()的方法,在里面输入你的要求即可。

  

 【第四步】:设置敌方坦克数量(先定3个)同一坦克,它是实例,可以放入集合内,选择Vector,因为ArrayList线程不安全,导致你打了A敌方坦克,结果B敌方坦克灭了,A坦克还在!!!并且同时也要在画板里画敌方坦克

【注】出现了一个bug,就是敌方炮筒和我方炮筒长度不同。还有一个就是我方炮筒会随方向的移动而变长变短。暂时我这会儿看不出来为什么。没准以后就看出来了,哈哈哈!!!

【解答】在事件监听那里,必须要把方向也写上,否早炮筒不会改变方向

还有方向最好从上右下左顺序 90度来弄。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值