没有上下文的文字很难懂,这就是国外的编程语言为啥那么注重上下文这个概念,因为简单的东西没了它就不能懂了。
我这里说的就是简单的东西,虽然没有上下文,但我也需要记录这样一些历程啊。。。
视频地址:http://v.youku.com/v_show/id_XOTE0ODkwNDg4.html
回到话题,很简单,大概分两个步骤,1、我们要定义好一个missle的类,在其中放上一个属性叫速度,弹药的速度(所有的弹药类都应该运用多态来继承);于是我做了这样一个类 ,可以看到,cj是穿甲能力,wl是威力,后面两个是速度。
很重要的额,这里需要做出一个冲击的效果,现在就需要引入不同的速度,重点在于他们的起始速度相差不能太大,好,这样我能做出来福枪的效果了,就是射出去看上去就像一条线,再慢慢散开。
红色部分是每颗子弹自身的速度,一定要慢慢放大。
这里还有必要改一下弹药的威力
已经是强林弹雨了,所以威力要改小一点,不能一下就打死了,要看到敌人在弹雨中挣扎的样子。
由于我已经设计好了类,所以改起来还是比较简单滴。。
OK,剩下的事,就是怎样做出这“无数发炮弹了”:我用了这样的方法:
for (int i = 0; i < 40; i++) {
for (int j = 0; j < 8; j++) {
if (ptdir == Direction.d) {
x = -400 + this.x + W / 2 + r.nextInt(224) * i;
y = this.y - 14 + 8 * j + (r.nextInt(144) - 70);
}
if (ptdir == Direction.a) {
x = 400 + W + this.x - (W / 2 + r.nextInt(224) * i);
y = this.y - 14 + 8 * j + (r.nextInt(144) - 70);
}
if (ptdir == Direction.s) {
x = this.x - 14 + 8 * j + (r.nextInt(144) - 70);
y = this.y - 400 + H / 2 + (r.nextInt(124)) * i;
}
if (ptdir == Direction.w) {
x = this.x - 14 + 8 * j + (r.nextInt(144) - 70);
y = this.y + 400 + H / 2 - (r.nextInt(224)) * i;
}}
里面运用了很多随机来生成,当然,不用懂里面的意思。
看到敌人在里面挣扎还是很爽滴
Java 本身不适合用来开发游戏,因为诸如精灵的绘制,碰撞检测,这些早已有了无数的现成方案,但通过这个来学习也是不错的。