我通过帮助一位朋友为他的互动TicTacToe游戏制作菜单来学习游戏。这很简单,一个标题和两个按钮,开始和退出游戏。他已经完成了游戏,我只需要链接我的菜单到他的游戏。
在摆弄玩偶之后,我终于完成了在游戏窗口中出现的图片(我从没想过第一次在空白窗口看到文本会如此漂亮!)( T^T)我相信下一步是让图像像按钮一样调用另一个python文件。
下面是菜单的简单代码:
import pygame
from pygame.locals import *
from sys import exit
pygame.init()
resX, resY = 640, 480
windowObj = pygame.display.set_mode((resX,resY))
titleImg = pygame.image.load("title.png")
startImg = pygame.image.load("start.png")
exitImg = pygame.image.load("exit.png")
def width_center(img):
"""For horizontally setting an image."""
return resX/2 - x(img)/2
def height_center(img):
"""For vertically setting an image."""
return resY/2 - y(img)/2
def x(img):
"""Width of object."""
return img.get_width()
def y(img):
"""Height of object."""
return img.get_height()
while True:
pygame.display.update()
windowObj.fill((255,255,255))
windowObj.blit(titleImg,(width_center(titleImg), 30))
#This I want to link:
windowObj.blit(startImg,(width_center(startImg),height_center(startImg)-10))
windowObj.blit(exitImg,(width_center(exitImg),height_center(exitImg)+y(startImg)))
for i in pygame.event.get():
if i.type == QUIT:
exit()简单地说,我想知道如何让startImg调用TTTClick.py。他的TTTClick.py也应该有特定的格式吗?
谢谢:)
发布于 2013-08-22 22:04:13
如果是一个项目,你可以有‘标题屏幕’状态,和‘游戏’状态。
Psuedo代码:
class Game():
def __init__(self):
self.done = False
self.state = "title"
def game_draw(self):
# game draw
def game_update(self):
# game event handling, and physics
def title_draw(self):
# title draw
def title_update(self):
# on event click
self.state = "game"
def loop(self):
# main loop
while not self.done:
if state == 'title':
title_update()
title_draw()
elif state == 'game':
game_update()
game_draw()
if __name__ == "__main__":
game = Game()
game.loop()注:x,height_center等。已经存在于pygame.Rect中
# if Surface
titleImage.get_rect().width
# if Sprite
titleImage.rect.width还有更多,rect.center,rect.centerx,见http://www.pygame.org/docs/ref/rect.html的完整列表
https://stackoverflow.com/questions/18386198
复制相似问题