重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
this.barrelDir = this.dir;
创新互联主要从事网站设计制作、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务思茅,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
假设坦克向右行驶,这时——
this.barrelDir = this.dir = “R”
它们的值都指向了R。
当坦克停止时,校验
if(this.dir != Direction.STOP)
无法通过,所以不会重置 barrelDir 的值,也就是说它仍然等于R。
这时你发射子弹,barrelDir 值不为STOP,所以它就可以往右边飞出去了。
你提供的代码不完全,无法深入分析,但是照你说的有显示“进入画图”,那么,很可能if(g.drawImage(image1, b.x, b.y, 30, 30, this))这个返回值为false,我刚查了下API,它的返回值说明Returns:
false if the image pixels are still changing; true otherwise.另外这个方法有这么样的说明This method returns immediately in all cases, even if the entire image has not yet been scaled, dithered, and converted for the current output device. If the current output representation is not yet complete, then drawImage returns false. 也就是说,现行输出未完成,图像像素仍在变化的时候,你就调用了这方法,那么会返回false。你检查一下代码,在你调用这段代码前,你的初始化工作做好了没。另外,最好就是像1楼说的,把图画到一个bufferImage里,再把bufferImage画到屏幕上
"创建爆炸对象"和“画出爆炸对象”是两码事。创建了之后并未“画出”,也就是未显示。只有在paint函数里调用drawImage函数时才显示,而此时传了新的坐标参数,就是当前击中的坦克的坐标。我也刚学,希望能帮助到你。