python pygame运行问题
#-*-coding:cp936-*-importsys,pygamefrompygame.localsimport*fromrandomimportrandrangec...
# -*- coding: cp936 -*-
import sys,pygame
from pygame.locals import *
from random import randrange
class weight(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image=weight_image
self.rect=self.image.get_rect()
self.reset()
def reset(self):
"""
把秤砣移动到屏幕顶端的随机位置。
"""
self.rect.top = -self.rect.height
self.rect.centerx = randrange(screen_size[0])
def update(self):
"""
更新秤砣,显示下一帧
"""
self.rect.top += 1
if self.rect.top > screen_size[1]:
self.reset()
#初始化
pygame.init()
screen_size=800,600
pygame.display.set_mode(screen_size)
#pygame.mouse.set_visible(0)
#载入秤砣的图像
weight_image=pygame.image.load("weight.png")
weight_image=weight_image.convert()
#创建一个子图形组
sprites=pygame.sprite.RenderPlain()
sprites.add(weight())
#获取屏幕表面,并且填充
screen=pygame.display.get_surface()
bg=(255,255,255)
screen.fill(bg)
pygame.display.flip()
#用于清除子图形
def clear_callback(surf,rect):
surf.fill(bg,rect)
while True:
for event in pygame.event.get():
if event.type==QUIT:
sys.exit()
if event.type==KEYDOWN and event.key==K_ESCAPE:
sys.exit()
#清除前面位置
sprites.clear(screen,clear_callback)
#更新所有子图形
sprites.update()
#绘制所有子图形
updates=sprites.draw(screen)
#更新所需的显示部分
pygame.display.update(updates)
我运行这个怎么就是一个白屏幕呢?weight.png这个图片add不进去还是怎么回事? 展开
import sys,pygame
from pygame.locals import *
from random import randrange
class weight(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image=weight_image
self.rect=self.image.get_rect()
self.reset()
def reset(self):
"""
把秤砣移动到屏幕顶端的随机位置。
"""
self.rect.top = -self.rect.height
self.rect.centerx = randrange(screen_size[0])
def update(self):
"""
更新秤砣,显示下一帧
"""
self.rect.top += 1
if self.rect.top > screen_size[1]:
self.reset()
#初始化
pygame.init()
screen_size=800,600
pygame.display.set_mode(screen_size)
#pygame.mouse.set_visible(0)
#载入秤砣的图像
weight_image=pygame.image.load("weight.png")
weight_image=weight_image.convert()
#创建一个子图形组
sprites=pygame.sprite.RenderPlain()
sprites.add(weight())
#获取屏幕表面,并且填充
screen=pygame.display.get_surface()
bg=(255,255,255)
screen.fill(bg)
pygame.display.flip()
#用于清除子图形
def clear_callback(surf,rect):
surf.fill(bg,rect)
while True:
for event in pygame.event.get():
if event.type==QUIT:
sys.exit()
if event.type==KEYDOWN and event.key==K_ESCAPE:
sys.exit()
#清除前面位置
sprites.clear(screen,clear_callback)
#更新所有子图形
sprites.update()
#绘制所有子图形
updates=sprites.draw(screen)
#更新所需的显示部分
pygame.display.update(updates)
我运行这个怎么就是一个白屏幕呢?weight.png这个图片add不进去还是怎么回事? 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
展开全部
updates=sprites.draw(screen) 这是只画了屏幕,就是白色的部分,虽然加载图片了,但是并没有blit到screen上,试下screen.blit(weight_image,(0,0)),就会被添加到屏幕上了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把最后四行代码缩进下放到while块中就对了哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是放到当前目录吗?运行路径是可执行文件当前路径吗
追问
是的 我把它们都放一个目录下边了
追答
运行路径要是可执行文件当前路径,还有就是不要是中文路径
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询