求大佬帮忙看看
pygame吧
全部回复
仅看楼主
level 1
[图片][图片][图片][图片][图片][图片][图片][图片]程序运行没问题就是看不到左上角绘制的文本和放进去的坦克图片,后面发现改不了color(小白猜测是这个问题)pygame.color后面无论把数字改成什么yanse窗口yanse都不会变,第一个pygame.color后面格式错了是刚改的忘改过来了 之前把窗口颜色改成pygame.Color(255,0,0)窗口yanse还是黑的都没变,求大佬给小白解答下
2022年06月11日 00点06分 1
level 6
???屏幕颜色不是用screen.fill(255,0,0)吗?pygame.color和这有什么关系?迷惑行为[汗]
2022年06月15日 05点06分 2
不不不,screen.fill((255,0,0))
2022年06月15日 05点06分
pygame开发文档就是这个呀,跟着教程写的,教程也是这个
2022年06月15日 12点06分
@染塵CL 有时间开电脑试下,谢谢解答
2022年06月15日 12点06分
@染塵CL 报错了大佬,说screen没有定义,screen是改整个屏幕的颜色吗?我要改文本呢?用pygame.Color程序是可以运行的
2022年06月16日 12点06分
level 6
啊啊啊 文本你也不说一声 文本颜色这个东西渲染之后改不了的 文本像这样
pygame.font(字体名, 字号).render(字符串, True, 颜色)
改颜色就把那个颜色换成(R,G,B)就行了不用写pygame.color
另外screen不是都这么用吗 就是创建窗口时你实例的那个对象
screen = pygame.display.set_mode((宽, 高))
你自己在程序里看有没有这一行 把screen换成等号前面那个东西就行了
我看你是不是没有刷新画面
要pygame.display.update()
2022年06月18日 16点06分 6
文本渲染那一段一般长这样 text = pygame.font(字体名, 字号).render('XXX', True, 颜色) text_rect = text.get_rect() text_rect[0] = ... text_rect[1] = ... screen.blit(text, text_rect)
2022年06月18日 16点06分
@染塵CL 文本应该没错,我感觉就是颜色这里没改掉,我照你说的把pygame.Color删掉直接写的(R,G,B)报错了,诶,主要贴吧总是把我发的代码图片吞了,就很烦
2022年06月19日 11点06分
@改个昵称呗👀😹 ???怎么可能 一直都是这样啊 这个函数就是获取颜色列表然后转换成color对象再渲染啊 你看下是不是import有点问题或者干脆直接百度网盘发代码 指定是你代码的问题 pygame.color这用法我从来没用过
2022年06月21日 04点06分
@改个昵称呗👀😹 你看一下是不是只import了pygame一部分的类[汗]
2022年06月21日 04点06分
level 6
问题:

class MainGame:
def ksgame(self):
while True:

if MainGame.TANK_P1 and not MainGame.TANK_P1.stop:
MainGame.TANK_P1.move()
time.sleep(0.02)
#窗口的持续刷新
pygame.display.update
^此处pygame.display.update缺少了()
应该为
time.sleep(0.02)
#窗口的持续刷新
pygame.display.update()
2022年06月23日 05点06分 7
我现看的 这个没有报错吗 回去我运行一下再找别的问题
2022年06月23日 05点06分
level 6
问题(规范性):

file

COLOR_BLACK = pygame.Color(0,0,0)
COLOR_RED = pygame.Color(255,0,0)
^不需要使用pygame.Color
应该为
COLOR_BLACK = (0,0,0)
COLOR_RED = (255,0,0)
注意:
此类变量没有必要作为全局变量使用
如果一定要这样做请在需要使用该变量的函数中使用
global COLOR_BLACK, COLOR_RED
2022年06月23日 05点06分 8
level 6
问题(规范性):

class MainGame:

window = None
SCREEN_HEIGHT=600
SCREEN_WIDTH=1000
#创建我方坦克
TANK_P1=None
^这些变量应该放在
def __init__(self):

并且改为
self.window = None
self.SCREEN_HEIGHT=600
self.SCREEN_WIDTH=1000
#创建我方坦克
self.TANK_P1=None
在后续调用时使用
self.window=pygame.display.set_mode([self.SCREEN_WIDTH,self.SCREEN_HEIGHT])
而不是
MainGame.window=pygame.display.set_mode([MainGame.SCREEN_WIDTH,MainGame.SCREEN_HEIGHT])
从而优化性能并且方便重写
2022年06月23日 05点06分 9
level 6
你如果有需要的话我可以把代码优化一下再给你
2022年06月23日 05点06分 11
1