我最近开始使用python和pygame制作游戏,我有一个主脚本,其中导入了我的所有其他脚本,然后它全部运行,但我有两个主要问题。第一个是当我在主脚本中运行第一个脚本时,它似乎在该类之后停止,而不是继续使用另一个脚本。
我想让游戏做什么:
将这些图片显示为开场演职员表。 (工作)
然后一旦完成学分就启动一个菜单,此时这只是一个播放按钮和一个Rect,它将有一个碰撞响应来检测玩家是否点击了它。 (不工作)
这是我的脚本:
RUN.py(将所有内容组合在一起的主要游戏):
import pygame, random, math, sys, os, time
import startUp, Menu
from pygame.locals import *
pygame.init()
#classes setup
Begin = startUp.Begin()
Menu = Menu.HUD()
while True:
#quit button
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
#show 3 pics for the opening credits
Begin.Run()
#bring up the menu once the opening credits are done
Menu.Run()
然后是Menu.py(游戏菜单)
import pygame, time, random
from pygame.locals import *
pygame.init()
class HUD(object):
def __init__(object):
object.playButtonUp = "playButtonUp.png"
object.playButtonUpHover = "playButtonUpHover.png"
object.playButtonDown = "playButtonDown.png"
object.Black = (0, 0, 0)
object.Red = (0, 255, 0)
object.screen = pygame.display.set_mode((1440, 720), 0, 32)
object.playButtonUp = pygame.image.load(object.playButtonUp).convert_alpha()
object.playButtonUpHover = pygame.image.load(object.playButtonUpHover).convert_alpha()
object.playButtonDown = pygame.image.load(object.playButtonDown).convert_alpha()
def Run(object):
#object.screen.fill(object.Black)
#creat rects
object.playButtonRect = Rect(464, 232, 256, 128)
#blit imagers
object.screen.blit(object.playButtonUp, (464, 232))
没有错误消息,它似乎有效,但图像未显示在屏幕上。
谢谢你的时间和帮助!答案 0 :(得分:1)
您的结构不正确。您已合并了两种不同的方法。
你有一个Run脚本应首先显示3张图片,然后显示菜单。
现在,你有一个while循环调用Begin和Menu的run函数,直到你关闭游戏。
相反,文件应如下所示:
import pygame, random, math, sys, os, time
import startUp, Menu
from pygame.locals import *
pygame.init()
#classes setup
Begin = startUp.Begin()
Begin.run()
Menu = Menu.HUD()
Menu.run()
Menu.py
class HUD(object):
def run(object):
while True:
object.playButtonRect = Rect(464, 232, 256, 128)
object.screen.blit(object.playButtonUp, (464, 232))
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()