2012-01-07 28 views
1

我试图做一个基本的(马里奥风格)游戏,但我的精灵(水管工)没有出现,它可能隐藏在背景后面?我不完全确定,我也没有得到任何错误。你如何让一个精灵出现在pygame/python中?

import pygame 
import sys 
import itertools 
import pygame 
from pygame.sprite import Sprite 

cloud_background = pygame.image.load('clouds.bmp') 
brick_tile = pygame.image.load('brick_tile.png') 

pink = (255, 64, 64) 
w = 640 
h = 480 
screen = pygame.display.set_mode((w, h)) 
running = 1 

def setup_background(): 
    screen.fill((pink)) 
    screen.blit(cloud_background,(0,0)) 
    brick_width, brick_height = brick_tile.get_width(), brick_tile.get_height() 
    for x,y in itertools.product(range(0,640,brick_width), 
           range(390,480,brick_height)): 
     # print(x,y) 
     screen.blit(brick_tile, (x, y)) 
    pygame.display.flip() 

while running: 
    setup_background()  
    event = pygame.event.poll() 
    if event.type == pygame.QUIT: sys.exit() 

class plumber(sprite): 
    def __init__( 
     self, screen, img_filename, init_position, 
     init_direction, speed): 

     Sprite.__init__(self) 

     self.screen = screen 
     self.speed = speed 

     self.base_image = pygame.image.load(Mario_sideways_sprite_2xL.png).convert_alpha() 
     self.image = self.base_image 


     self.pos = 50,50 
+0

是的,我可以看到背景和砖图像。该程序正在运行它只是没有出现的水管工。 – enrique2334 2012-01-07 22:28:39

+0

抱歉意味着云彩。我看不到他们。我确实看到砖块 – joaquin 2012-01-07 22:55:08

+0

是的,我确实看到云彩,它只是精灵(水管工)不显示 – enrique2334 2012-01-07 23:26:52

回答

4

发现第一个问题是,你必须修改

pygame.image.load(Mario_sideways_sprite_2xL.png) 

喜欢的东西。

pygame.image.load("Mario_sideways_sprite_2xL.png") 

除此之外,代码有许多问题妨碍它的工作。例如,

  • 你没有实例化你的水管工类
  • class plumber(sprite)应该plumber(Sprite)(犹未Plumber(Sprite)

你需要的东西,如:

myplumber = Plumber() 
allsprites = pygame.sprite.RenderPlain((myplumber, ....)) 
clock = pygame.time.Clock() 

你可以看到here像你这样一个简单的程序的主要部分。

+0

,应该是一个语法错误.... – mpen 2012-01-07 22:12:32

+0

这并没有影响任何东西。 – enrique2334 2012-01-07 22:13:36

+0

没有说是唯一的,但这表明代码并非来自运行代码的剪切和粘贴,所以可以预期更多的惊喜。 – joaquin 2012-01-07 22:20:17

相关问题