可以去检查下产生爆炸的循环条件 我爆炸效果还没做 做后面打击多个坦克的时能打击第一个坦克后面的都不能打掉,查了很久发现在写if条件判断的时候多写了个;号 ,晕死
兄弟,好巧!我也和你遇到一样的问题,调了半天还是没结果,相当疑惑。
你所用的坦克图片,一般应该是方形或者是长方形的吧.如果是这样的话,就会非常简单.现有两具矩形:A,B. A比B小,那么如果A与B相交,或者被B包含,则A的一个顶点必然在B之内.(你可以列举出所有的情况,一定是这样的).所以,你在判断两矩形是否相交时,可以先判断A的四个顶点是否在B之内(或者边上),再反过来判断B.这样,两矩形是否重叠的问题,化成判断一点是否在一矩形之内的问题.至于这个问题,细心想一下,是很好判断的.
忍不住上来吐槽。你学java就是为了写个坦克大战?!!!我可以明确告诉你java做坦克大战那是绝对可行的,之所以你觉得难,第一、你的编程知识还不够,第二、开发游戏好像需要专门的模块还是函数什么的。反正你用刚学java那些基础的东西只能编编简易小程序,编不出复杂游戏的~
虽然这是好多年前的问题了~但我还是想回答一下。因为现在还有以后,有好多人会学习这教程视频,遇到这个问题。。。自学时我也遇到这问题了。。百度搜的时候也搜到这篇提问,但没有让新手看明白的答案。所以我就补充回答吧解决方案就是:把switch里的if语句最后的“;”(分号)去掉。
引入你引入了么?
java 作图 不一定要继承JFrame或者Frame,但是所有的组件必须放到顶层容器,Java Swing 有三种顶层容器 JFrame:用来设计类似于Windows系统中的窗口形式的应用程序。 ·JDialog:和JFrame类似,只不过JDialog是用来设计对话框。 ·JApplet:用来设计可以在嵌入在网页中的Java小程序。 而且你的代码 Kosese001既然继承了JFrame 那么他的构造就是个JFrame ,你下面又new JFrame("坦克大战");这样何必继承,直接在构造里面实现操作就可以把Kosese001中, 你的背景色没有显示出来,是由于JFrame 是顶层容器,它默认的布局会设置它的背景色,除非你在前面 加上 jfrmMain.setLayout(null);使得布局变成空布局,下面的jfrmMain.getContentPane().setBackground(Color.green); 才会生效,或者你可以通过设置JFrame上组件的背景色来完成同样的效果 比如 mypaint = new MyPaint(); mypaint.setBackground(Color.green); 还有啥不懂的 可以问我。
不难,你基础没打好才有这种感觉。坦克大战,so easy啊。
235 浏览 4 回答
319 浏览 6 回答
126 浏览 3 回答
342 浏览 7 回答
139 浏览 6 回答
161 浏览 4 回答
135 浏览 4 回答
306 浏览 4 回答
130 浏览 8 回答
94 浏览 6 回答
99 浏览 3 回答
339 浏览 5 回答
113 浏览 6 回答
115 浏览 5 回答
153 浏览 3 回答
170 浏览 2 回答
304 浏览 3 回答
184 浏览 7 回答
206 浏览 3 回答
202 浏览 5 回答
333 浏览 4 回答
185 浏览 2 回答
236 浏览 7 回答
278 浏览 4 回答