如何解决黑屏pygame:
我目前正在关注youtube上的侧滚式教程,该教程提供了入门文件。对于Youtuber,所有的精灵都显示在窗口上,但是当我运行文件时,它将显示一个空白屏幕。有人可以帮我吗? 这是启动文件的代码:
import pygame
from pygame.locals import *
import os
import sys
import math
pygame.init()
W,H = 800,447
win = pygame.display.set_mode((W,H))
pygame.display.set_caption('Side Scroller')
bg = pygame.image.load(os.path.join('images','bg.png')).convert()
bgX = 0
bgX2 = bg.get_width()
clock = pygame.time.Clock()
class player(object):
run = [pygame.image.load(os.path.join('images',str(x) + '.png')) for x in range(8,16)]
jump = [pygame.image.load(os.path.join('images',str(x) + '.png')) for x in range(1,8)]
slide = [pygame.image.load(os.path.join('images','S1.png')),pygame.image.load(os.path.join('images','S2.png')),'S3.png')),'S4.png')),'S5.png'))]
jumpList = [1,1,2,3,4,-1,-2,-3,-4,-4]
def __init__(self,x,y,width,height):
self.x = x
self.y = y
self.width = width
self.height = height
self.jumping = False
self.sliding = False
self.slideCount = 0
self.jumpCount = 0
self.runcount = 0
self.slideUp = False
def draw(self,win):
if self.jumping:
self.y -= self.jumpList[self.jumpCount] * 1.2
win.blit(self.jump[self.jumpCount//18],(self.x,self.y))
self.jumpCount += 1
if self.jumpCount > 108:
self.jumpCount = 0
self.jumping = False
self.runcount = 0
elif self.sliding or self.slideUp:
if self.slideCount < 20:
self.y += 1
elif self.slideCount == 80:
self.y -= 19
self.sliding = False
self.slideUp = True
if self.slideCount >= 110:
self.slideCount = 0
self.slideUp = False
self.runcount = 0
win.blit(self.slide[self.slideCount//10],self.y))
self.slideCount += 1
else:
if self.runcount > 42:
self.runcount = 0
win.blit(self.run[self.runcount//6],self.y))
self.runcount += 1
我没有做任何更改,我已经将所有sprites与实际代码保存在同一目录中。
解决方法
我相信答案在于以下事实:1)您没有任何while循环可以捕获玩家输入,而2)您从未创建类对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。