会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132462个问题
JAVA 全系列/第十三阶段:分布式文件存储与数据缓存/Nginx 12601楼

微信图片_20230920154102.png

老师这个代码是按照视频打的

我不知道为什么会运行不成功

Python 全系列/第一阶段:Python入门/控制语句 12602楼

问题和BUG:

        飞机死了以后,还在一直进行碰撞检测,而且还有爆炸的效果伴随,想了半天也不知道怎么解决;请问老师,这个问题该怎么解决?

核心代码:

 public void paint(Graphics g) {
  // TODO Auto-generated method stub
  super.paint(g);//如果画出来的窗口是黑色的,请加上此行代码;
  count++;
  g.drawImage(bg, 0, 0, null);   //画出背景
  
  
   plane2.drawSelf(g);   
  
  
  for(int a=0;a<shells.length;a++) {
   Color c = g.getColor();
   shells[a].drawSelf(g);//将所有Shell对象全部画出来,利用 for循环
   
   //检测每个shell对象有没有和plane对象相交
   
   boolean intersect=shells[a].getRect().intersects(plane2.getRect());    
    if(intersect) {  //判断是否相交
     
     System.out.println("相交了............");
     plane2.live=false;  //相交了,则表示飞机死了
     intersect =false;
     if(explode==null) { // 如爆炸对象是null,则创建爆炸对象
      explode = new Explode(plane2.x,plane2.y);
      endTime = new Date();  // 飞机死的时候则时间结束    
      period = (endTime.getTime()-startTime.getTime())/1000;
     }
     explode.draw(g); //画出爆炸对象    
    }
    //计算时间,给出游戏提示
    if(!plane2.live) { //飞机死了,则打印游戏时长
     g.setColor(Color.red); //设置字体颜色
     Font  f= new Font("宋体",Font.BOLD,30);
     g.setFont(f);
     g.drawString("时间:"+period+"秒", Constant.GAME_WIGTH/2-100,
       Constant.GAME_HEIGHT/2); //画出所玩游戏时长    
    }
    g.setColor(c); 
  }
 }

源码如下:

MyPlaneGame.zip


JAVA 全系列/第一阶段:JAVA 快速入门/飞机大战小项目训练 12604楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 12605楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 12608楼

<!DOCTYPE html><html>	<head>		<meta charset="utf-8">		<title></title>		<style>			body,div,h1,h2,h3,h4,h5,h6,li,ol,ul{margin:0px; padding:0px;}			body{text-align: center; font-size:14px;}			a{text-decoration:none;}			li{list-style:none;}						.nav{				height: 30px;				background-color: #f1f1f1;							}						.wrap{				width: 1000px;				margin:0px auto;			}						.nav_ul1, .nav_ul2 li{				float: left;							}						.nav_ul1 li{				float: left;				line-height:30px;				margin-right: 20px;							}						.nav_ul1 a, .nav_ul2 a, .nav_ul2 span{				font-size: 12px;				color: gray;			}						.nav_ul2{				float: right;			}						.nav_ul2 li,.nav_ul2 span{				line-height: 30px;				margin-left: 10px;			}						.nav a:hover{				color: red;			}						/*搜索开始*/			.search{				margin-top: 20px;			}						.search img{				/*clear: both = 清除之前样式*/				clear: both;				float: left;			}						.search_div{				float: right;				margin-top: 25px;				margin-right: 315px;			}						.search_text{				width: 265px;				height: 21px;				border: 3px solid #c91623;				position: relative;				left: 4px;				top:-1px							}						.search_button{				width: 51px;				height: 29px;				background-color: #c91623;				border: 0px;				color: #ffffff;			}						/*搜索结束*/						/*标题开始*/						.title{				margin-top: 180px;			}			.title h3{				float:left;				font-size: 23px;				color: #C91623;			}			.title div{				float: right;				font-size: 14px;				color: gray;			}									/*标题结束*/						/*显示菜单开始*/						.tips{				width: 1000px;				height: 50px;				background-color: #f1f1f1;				margin-top: 210px;				border: 1px solid #e9e9e9;							}			.tips li{				float: left;				line-height: 50px;				font-size: 12px;				color: gray;							}						.tips li:nth-child(1){width: 90px;border-top:3px solid #C91623;}			.tips li:nth-child(2){margin-left:80px;}			.tips li:nth-child(3){margin-left:430px;}			.tips li:nth-child(4){margin-left:70px;}			.tips li:nth-child(5){margin-left:110px;}			.tips li:nth-child(6){margin-left:50px;}									/*显示菜单结束*/						/*商品详情开始*/						.info{				width: 1000px;				height: 125px;				background-color:#fff4e8;				border:1px solid gray;				margin-top: 30px;				border-top: 3px solid gray;							}						.info li{				float: left;				margin-top: 20px;			}						.info a{				font-size:12px;				color: #333333;			}						.info_1{				margin-left: 23px;			}						.info_2{				margin-left: 15px;				border: 1px solid gray;							}						.info_3{				width: 250px;				height: 20px;			}						.info_4{				margin-left: 20px;				font-size:12px			}						.info_5{				margin-left: 120px;			}						.info_6{				margin-left: 40px			}						.info_6 input{				width:30px;				height:12px;				position: relative;				text-align: center;				top:-2px;				left:-5px;			}						.info_6 button{				width: 45px;				height: 18px;				position: relative;				left:-3px;			}						.bot{				position: relative;				left:-10px;							}						.input_7 {				margin-left: 50px;			}						/*商品详情结束*/						/*结算开始*/						.balance{				width: 1000px;				height: 50px;				border: 1px solid gray;				margin-top: 30px;							}						.balance_ul1, .balance_ul1>li,.balance_ul2>li{				float: left;				line-height: 50px;				margin-left: 14px;			}						.balance_ul2{				float: right;							}						.butt{				width: 100px;				height: 50px;				background-color: #C91623;				border:0px;				color: #FFFFFF;				font-size: 20px;				font-weight: bold;			}						.balance span{				font-size: 25px;				color: #C91623;				font-weight: bold;							}			/*结算结束*/		</style>		<script>			//判断是否全选//				var fav=document.getElementsByName("fav");			function checkTest1(th){				var flag=th.checked;								if(flag){					for(var i in fav){						fav[i].checked=true;					}				}else{					for(var i in fav){						fav[i].checked=false;					}				}			}						//单选决定全选操作//			function checkTest2(){				var flag=true;				for(var i=1; i<fav.length-1; i++){					if(!fav[i].checked){						flag=false;						break;					}				}				//决定框是否勾选//				fav[0].checked=flag;				fav[fav.length-1].checked=flag;								//价格是否统计//				var zong =0;				var num=0;				var spNum=0;				for(var i=1; i<fav.length-1; i++){					if(fav[i].checked){						num++;						var par=fav[i].parentNode.parentNode;						var li=par.getElementsByTagName("li");												//单个商品总价格//						var li[6].innerText.split("¥")[1];												//获得所有商品的总价格//						zong+=Number(z);						document.getElementById("zongz").innerText=zong;												//获得商品的数量//						var z2=li[5].getElementsByTagName("input");						var num2=z2[0].value;						spNum+=Number(num2);												//获得商品数量统计的对象//						document.getElementById("snum").innerText=spNum;					}				}				if(num==0){					document.getElementById("zongz").innerText=0;				}			}						//控制数量+-//			function checkTest3(th,sig){				var pre;				if(sig=="1"){				pre=th.nextElementSibling;				if(Number(pre.value)>0){				pre.value=Number(pre.value)-1;				}				}else{pre=th.previousElementSibling;				pre.value=Number(pre.value)+1;				}				//计算每一个商品总价格//				var val=pre.parentNode.previousElementSibling.innerHTML;								//计算总价格//				var zong=Number(val)*Number(pre.value);								//把总的价格赋值给指定对象//				pre.parentNode.nextElementSibling.innerHTML="¥"+zong;			}									//删除指定节点//			function checkTest4(th){				var div=th.parentNode.parentNode.parentNode;				div.remove()			}		</script>	</head>	<body>		<!--导航开始-->		<div class="nav">			<div class="wrap">				<ul class="nav_ul1">					<!--@=icon标签码-->					<li><a href=""><i class="iconfont">@</i>京东首页</a></li>					<li><a href="">配送到:北京</a></li>									</ul>				<ul class="nav_ul2">					<li><a href="">洋洋宝贝</a><span>|</span></li>					<li><a href="">我的订单</a><span>|</span></li>					<li><a href="">我的京东</a><span>|</span></li>					<li><a href="">京东会员</a><span>|</span></li>					<li><a href="">企业采购</a><span>|</span></li>					<li><a href="">京东手机</a><span>|</span></li>					<li><a href="">关注京东</a><span>|</span></li>					<li><a href="">客户服务</a><span>|</span></li>					<li><a href="">网站导航</a><span>|</span></li>				</ul>							</div>		</div>				<!--导航结束-->				<!--搜索开始-->		<div class="search">			<div class="wrap">				<img src="https://misc.360buyimg.com/mtd/pc/index_2019/1.0.0/assets/sprite/header/sprite.png">			</div>			<div class="search_div">				<input class="search_text" type="text">				<input class="search_button" type="button" value="搜索">			</div>		</div>		<!--搜索开始-->				<!--标题开始-->		<div class="title wrap">			<h3>全部商品</h3>			<div>				<span>配送到</span>				<select name="" id="">					<option value="">昌平区</option>					<option value="">顺义区</option>					<option value="">大兴区</option>					<option value="">朝阳区</option>					<option value="">昌平区</option>				</select>			</div>		</div>		<!--标题结束-->				<!--显示菜单开始-->		<div class="tips wrap">			<ul>				<li>					<input type="checkbox" id="all" name="fav" onclick="checkTest1(this), checkTest2()" />全选				</li>				<li>商品</li>				<li>单价</li>				<li>数量</li>				<li>小计</li>				<li>操作</li>			</ul>		</div>				<!--显示菜单结束-->		<!--商品详情开始-->				<div class="info wrap">			<ul>				<li class="info_1"><input type="checkbox" name="fav" onclick="checkTest2()"/></li>				<li class="info_2"><img src="https://img0.baidu.com/it/u=1045489836,2502408267&fm=26&fmt=auto" width="65px"></li>				<li class="info_3"><a href="">desha春季衣服</a></li>				<li class="info_4">颜色: 灰色+粉红</li>				<li class="info_5">182.5</li>				<li class="info_6">					<button onclick="checkTest3(this,1),checkTest2()">-</button>					<input type="text" value="1">					<button onclick="checkTest3(this,2),checkTest2()">+</button>				</li>				<li class="info_7">¥182.5</li>				<li class="info_8">					<a href="javascript:void(0)" onclick="checkTest4(this),checkTest2()">删除</a><br />					<a href="">移到我的关注</a>				</li>			</ul>					</div>				<!--商品详情结束-->				<!--结算开始-->		<div class="balance wrap">			<ul class="balance_ul1">				<li>					<input type="checkbox" name="fav" onclick="checkTest1(this),checkTest2()" />全选				</li>				<li><a href="">删除选中商品</a></li>				<li><a href="">移到我的关注</a></li>				<li><a href="">清除下柜物品</a></li>			</ul>						<ul class="balance_ul2">				<li>以选择<span id="snum">0</span>件商品</li>				<li>总价 <span id="zongz">¥0</span></li>				<li><button class="butt">去结算</button></li>			</ul>		</div>		<!--结算结束-->	</body></html>啦老师,不知道为什么一开始本来好好的,但是加入如下图那一块之后,JS 的功能就没法运行了。

Python 全系列/第七阶段:网页编程基础/JavaScript 12611楼
WEB前端全系列/第十一阶段:前端工程化/Webpack 12612楼

'''#新增功能 添加事件 1.点击关闭 关闭窗口 2.按下键盘,判断按下的是什么键,分别对不同的键做处理'''#导入pygame模块import pygameSCREEN_WIDTH=700SCREEN_HEIGHT=500BG_COLOR=pygame.Color(0,0,0)class MainGame(): window=None def __init__(self): pass #开始游戏 def startGame(self): #加载主窗口 #初始化窗口 pygame.display.init() #设置窗口的大小及显示 MainGame.window=pygame.display.set_mode([SCREEN_WIDTH,SCREEN_HEIGHT]) #设置标题的窗口 pygame.display.set_caption('坦克大战1.03') while True: #给窗口设置填充色 MainGame.window.fill(BG_COLOR) #获取事件 self.getEvent() pygame.display.updata() #结束游戏 def endGame(self): print('谢谢使用,欢迎再次使用') exit() #获取事件 def getEvent(self): #获取所有事件 eventList=pygame.event.get() #遍历事件 for event in eventList: #判断按下的键是关闭还是键盘按下 #如果按下的是退出,关闭窗口 if event.type == pygame.QUIT: self.endGame()class Tank(): def __init__(self): pass #射击 def shot(self): pass #展示坦克的方法 def dispayTank(self): pass#我方坦克class MyTank(Tank): def __init__(self): pass#敌方坦克class EnemyTank(Tank): def __init__(self): pass#子弹类class Bullet(): def __init__(self): pass #移动 def move(self): pass #展示子弹的方法 def displayBullet(self): passclass Wall(): def __init__(self): pass #展示墙壁的方法 def displayWall(self): passclass Explode(): def __init__(self): pass #展示爆炸效果的方法 def displayExplode(self): passclass Music(): def __init__(self): pass #播放音乐 def play(self): passif __name__=='__main__': MainGame().startGame()Traceback (most recent call last): File "E:\Pycharm.Lee\mytanc\tanc__04.py", line 96, in MainGame().startGame() File "E:\Pycharm.Lee\mytanc\tanc__04.py", line 30, in startGame pygame.display.updata()AttributeError: module 'pygame.display' has no attribute 'updata'老师,这打开直接闪退,这是怎么回事

Python 全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 12613楼
Python 全系列/第十五阶段:Python 爬虫开发/爬虫基础 12615楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637