python中关于pygame载入图片的问题

tinghdr 2015-09-03 02:32:54
下面代码的作用应该是能载入一个图片,并且有动态效果,为什么运行后,只显示白色屏幕,没显示载入的图片?,求大神赐教,感谢。文件图片名就是weight.png,和代码放在了一个目录下。



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, FULLSCREEN)
pygame.mouse.set_visible(0)

weight_image = pygame.image.load('weight.png')
weight_image = weight_image.convert()

sprites = pygame.sprite.RenderUpdates()
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)

...全文
730 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
梦想橡皮擦 2019-01-09
  • 打赏
  • 举报
回复
代码中有些地方写的略微有点BUG吧,2楼给的是正解
星夜Zn 2019-01-07
  • 打赏
  • 举报
回复
我用IDLE打开也不行,但是用pycharm打开就行了。或者你把pygame先卸载掉,再用pip的方式装一遍,再用pycharm打开试试
panghuhu250 2015-09-05
  • 打赏
  • 举报
回复
1. 最后四句应该在while循环中, 才会不断更新画面 2. init和_init_都应该是__init__(两个下划线)

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, FULLSCREEN)
pygame.mouse.set_visible(0)

weight_image = pygame.image.load('weight.png')
weight_image = weight_image.convert()

sprites = pygame.sprite.RenderUpdates()
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)

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧