我的代码优化后,坦克就移动不了了
BG_COLOR = pygame.Color(255,255,255) TEXT_COLOR = pygame.Color(255,0,0) SCREEN_WIDTH = 800 SCREEN_HEIGHT = 600 class MainGame: ''' 游戏主窗口类 ''' window = None def __init__(self) -> None: pass def start_game(self) -> None: ''' 开始游戏 ''' pygame.display.init() MainGame.window = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) pygame.display.set_caption('TANK 1.0') while True: MainGame.window.fill(BG_COLOR) num = 6 text = self.get_text_surface(f"Enemy Tank {num}") MainGame.window.blit(text, (10,10)) pygmae.display.update() def get_text_surface(self, text:str): ''' 获取文字的图片 ''' # 初始化字体模块 pygame.font.init() # 获取可以使用的字体 # print(pygame.font.get_fonts()) # 创建字体 font = pygame.font.SysFont('kaiti',18) # 绘制文字信息 text_surface = font.render(text, True, TEXT_COLOR)
背景一直显示黑色,文字添加不显示,代码贴过来显示不全,连贴了三次,回答的是机器人?就知道回答“问技术老师,把你的代码不完全”
背景一直显示黑色,文字添加不显示
pygame.display.init() MainGame.window = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) pygame.display.set_caption() : MainGame.window.fill(BG_COLOR) num = text = .get_text_surface(num) MainGame.window.blit(text, (,)) pygmae.display.update() (, text:): pygame.font.init() font = pygame.font.SysFont(,) text_surface = font.render(text, , TEXT_COLOR) text_surface () -> :
pygame.display.init() MainGame.window = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) pygame.display.set_caption('TANK 1.0') while True: MainGame.window.fill(BG_COLOR) num = 6 text = self.get_text_surface(f"Enemy Tank {num}") MainGame.window.blit(text, (10,10)) pygmae.display.update() def get_text_surface(self, text:str): ''' 获取文字的图片 ''' # 初始化字体模块 pygame.font.init() # 获取可以使用的字体 # print(pygame.font.get_fonts()) # 创建字体 font = pygame.font.SysFont('kaiti',18) # 绘制文字信息 text_surface = font.render(text, True, TEXT_COLOR) # 将绘制的文字信息返回 return text_surface def end_game(self) -> None:
BG_COLOR = pygame.Color(,,) TEXT_COLOR = pygame.Color(,,) SCREEN_WIDTH = SCREEN_HEIGHT =
: MainGame.window.fill(BG_COLOR) num = text = .get_text_surface(num) MainGame.window.blit(text, (,)) pygmae.display.update() (, text:): pygame.font.init() font = pygame.font.SysFont(,) text_surface = font.render(text, , TEXT_COLOR) text_surface
上面那个同学的提问是对的,子弹里坦克目前没有指定自己坦克还是地方坦克,所以写出来代码会提供tank未定义,运行代码也没有坦克显示。其实老师就很简单的一句话可以说清楚的事儿,就是不说。
在数学计算那个简单的事情上绕绕绕半天,其它地方重要的环节每次都漏掉讲重要细节,是生怕讲课给我们学会了是吗?
每次一听到这个老师的课我就来气!!!啊啊啊啊
FileNotFoundError Traceback (most recent call last)
Cell In[14], line 1
----> 1 with open(r"D:\p.txt,'r",encoding = "utf-8") as f:
2 lines = f.readline()
3 lines2 = [line.rstrip()+" #"+str(index)+"\n" for index,line in zip(range(1,len(lines)+1),lines)]
老师,我这个文件图片不知道怎么弄
class AgeError(Exception): def __init__(self,errorInfo): Exception.__init__(self) self.errorInfo=errorInfo def __str__(self): return str(self.errorInfo)+"nianlingcuowu" if __name__=="__main__": age=int(input("shurunianling")) if(age<1 or age>150): raise AgeError(age) else: print("zhengchangdenianling",age)
这句话的含义是什么呢
if __name__=="__main__":
f = (,) s = f.write(s) f.close()
fndfkbnb;uiogjnlrguiergn
drgjnerg
之前是
"drdrgjnerg"报错,"f r"也没有了,以后要输入这些字母字母办
#循环展示敌方坦克
self.display_enemy_tank()
这段代码在课件中没有讲到吧,我说怎么按照课件写完之后不对。这个老师咋回事,怎么每次都课件内容和文档内容不一致。讲课也是风风火火,有的地方一闪而过,生怕我们看清楚是怎么的~
贴一些我对这个老师教学的意见吧,希望以后改进,既然收钱了,就麻烦有点责任心。
MainGame 类里既负责界面、又负责事件、又负责游戏逻辑,违反了“单一职责原则”。
MainGame
start_game() 方法又创建对象又画图又跑循环,过长、过杂,维护起来非常麻烦。
start_game()
EnemyTank 和 MyTank 继承了 Tank,但是构造函数完全重写,没有 super().__init__(),等于白继承。
EnemyTank
MyTank
Tank
super().__init__()
应该把公共部分提到 Tank 类中,只在子类中补充差异。
图片路径写死在代码中,应该抽象为常量或配置文件。
字体路径 '/System/Library/Fonts/STHeiti Light.ttc' 是系统依赖路径,移植性差。
'/System/Library/Fonts/STHeiti Light.ttc'
如 left * 100、enemy_top = 100、speed = 5 等都应封装成常量。
left * 100
enemy_top = 100
speed = 5
主循环中直接写 sleep(0.02),应使用 pygame.time.Clock() 控制帧率。
sleep(0.02)
pygame.time.Clock()
每次绘制都重新获取图片,不必要的重复操作,资源应在初始化时处理完。
remove 这个变量命名不够清晰,应叫 moving 或 is_moving 更直观。
remove
moving
is_moving
这个老师的文档怎么和课堂上的不一样啊,本来课堂讲的就又快又混乱了。文档还不一致了,增加了学习的难度,浪费时间。能不能提高一下教学水平!!
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637