我将图像加载到项目中的方法在学校的Windows机器上工作,但是当我回家在OpenSUSE上以相同的格式编写一些代码时,我的图像加载不正确。你知道吗
import pygame
import os
pygame.init()
os.environ['SDL_VIDEODRIVER']='windib'
class game(object):
def __init__(self):
self._running = True
self._screen = pygame.display.set_mode((800,600))
self._background = pygame.Surface(self._screen.get_size())
self._background.fill((0,0,0))
pygame.display.set_caption('The Spice is Right')
self.scroller1 = pygame.image.load("scroller.png")
self.scroller2 = pygame.image.load("scroller.png")
self.playerCross = pygame.image.load("")
self.playerRect = self.playerCross.get_rect()
self.head = pygame.image.load("tyler.png")
self.headRect = self.head.get_rect()
self.title = pygame.image.load("spiceMain.png")
self.timer = 100
self.attack = False
self.spiceLevel = 0
self.headRight = False
self.headLeft = False
self.headUp = False
self.headDown = False
self.titleScreen = True
self.gameMode = False
self.bgy = 0
self.bgy2 = -600
def run(self):
while self._running:
self.handle_input()
pygame.display.flip()
self.bgMethod()
if self.titleScreen:
self.backgrounScroll()
if self.gameMode:
self.bgMethod()
self.headMethod()
self.player()
pygame.quit()
def handle_input(self):
for evt in pygame.event.get():
if evt.type == pygame.QUIT:
self._running = False
elif evt.type == pygame.KEYDOWN:
if evt.key == pygame.K_ESCAPE:
self._running = False
def bgMethod(self):
self._screen.blit(self._background,(0,0))
def backgroundScroll(self):
self._screen.blit(self.scroller1,(0,self.bgy))
self._screen.blit(self.scroller2,(0,self.bgy2))
self._screen.blit(self.title,(400,300))
self.bgy += 4
self.bgy += 4
if self.bgy >= 600:
self.bgy == 0
if self.bgy2 >= 600:
self.bgy2 == 0
def headMethod(self):
self._screen.blit(self.head(self.headRect.x,self.headRect.y))
if self.headRect.x <= 800:
self.headRight = True
if self.headRect.x >= 800:
self.headLeft = True
if self.headRect.x <= 0:
self.headRight = True
if self.headRect.x >= 0:
self.headLeft = True
if self.headRight:
self.headRect.x += 6
if self.headLeft:
self.headRect.x -= 6
if self.headRect.y <= 600:
self.headDown
if self.headRect.y >= 600:
self.headUp
if self.headRect.y <= 0:
self.headDown
if self.headRect.y >= 0:
self.headUp
if self.headUp:
self.rectHead.y -= 6
if self.headDown:
self.rectHead.y += 6
def player(self):
self._screen.blit(self.playerCross,(pygame.mouse.get_pos()))
def attackMethod(self):
if self.timer == 100:
if self.attack:
self.timer == 0
self.timer += 1
if self.timer == 100:
self.spiceLevel += 1
g= game()
g.run
不,我还不能在Windows机器上测试这个代码。你知道吗
删除此行。你知道吗
SDL_VIDEODRIVER
并不是真的需要,除非你正在做一些奇怪的事情。从this site可以看出,windib
指的是Win95/98/NT/2000 GDI (Win32)
。。。显然OpenSUSE上没有可用的东西。SDL(以及pygame)应该有合理的默认值,并为平台选择正确的视频驱动程序,因此不需要设置这个envvar。你知道吗相关问题 更多 >
编程相关推荐