2017-05-30 98 views
1

我試圖從pygame屏幕中的文本文件顯示遊戲說明。在這一點上,我已經編碼:如何從文本文件顯示文本到pygame屏幕上?

def instructions(): 
    screen.fill(TEAL) 
    with open("pongInstructions.txt", encoding = 'utf-8') as f: 
     for line in f: 
      instructText = instructionsFont.render(line, True, WHITE) 
      screen.blit(instructText, ((400 - (instructText.get_width()/2)),(300 - (instructText.get_height()/2)))) 
      pygame.display.update() 

當我呼籲說明功能,什麼也沒有發生。有人有一個想法,爲什麼?任何幫助是極大的讚賞!

編輯:

#Imports and Initialize Pygame Screen 
import pygame 
import sys 
import time 
import random 
import codecs 

pygame.init() 
screenSize = (800,600) 
screen = pygame.display.set_mode((screenSize),0) 
pygame.display.set_caption("Tasnim's Pong") 

instructionsFile = [line.strip('\n') 
    for line in open('pongInstructions.txt', 'r', encoding = 'utf-8').readlines()] 
font = pygame.font.SysFont("americantypewriter", 16) 

def instructions(screen): 
    screen.fill(TEAL) 
    for n, line in enumerate(instructionsFile): 
     text = font.render(line, 1, WHITE) 
     text_rect = text.get_rect() 
     text_rect.centerx = screenSize[0]//2 
     text_rect.centery = n*25 + 50 
     screen.blit(text, text_rect) 
     pygame.display.update() 

#Define Colours 
WHITE = (255,255,255) 
BLUE = (0,0,255) 
BLACK = (0,0,0) 
GRAY = (128, 128, 128) 
MAROON = (128, 0, 0) 
NAVYBLUE = (0, 0, 128) 
OLIVE = (128, 128, 0) 
PURPLE = (128, 0, 128) 
TEAL = (0,128,128) 
PINK = (226,132,164) 
MUTEDBLUE = (155,182,203) 
PLUM = (221,160,221) 

#All Fonts 
startscreenTitleFont = pygame.font.SysFont("americantypewriter", 120) 
startscreenPlayerChoiceFont = pygame.font.SysFont("americantypewriter", 60) 
startscreenQuitFont = ("americantypewriter", 60) 
startscreenCreditsFont = ("americantypewriter", 60) 
instructionsFont = pygame.font.SysFont("americantypewriter",60) 
quitFont = pygame.font.SysFont("americantypewriter",60) 
maingameP1ScoreFont = pygame.font.SysFont("americantypewriter",70) 
maingameP2ScoreFont = pygame.font.SysFont("americantypewriter",70) 
maingamePlayerOneFont = pygame.font.SysFont("americantypewriter",50) 
maingamescoreFont = pygame.font.SysFont("americantypewriter",25, bold = True) 
winnerFont = pygame.font.SysFont("americantypewriter",25) 

instructionsFile = [line.strip('\n') 
    for line in open('pongInstructions.txt', 'r', encoding = 'utf-8').readlines()] 
font = pygame.font.SysFont("americantypewriter", 16) 



#Introduction Screen 
def startscreen(): 
    go = True 
    choice = 1 

    screen.fill(MUTEDBLUE) 

    pygame.display.update() 
    pongTitle = startscreenTitleFont.render("Pong", True, WHITE) 
    screen.blit(pongTitle,((400 - (pongTitle.get_width()/2)),0)) 

    playerchoiceTitle = startscreenPlayerChoiceFont.render("Two Player Game", True, WHITE) 
    screen.blit(playerchoiceTitle, ((400 - (playerchoiceTitle.get_width()/2)),160)) 

    playerchoice2Title = startscreenPlayerChoiceFont.render("One Player Game", True, WHITE) 
    screen.blit(playerchoice2Title, ((400 - (playerchoice2Title.get_width()/2)),275)) 

    instructionsTitle = instructionsFont.render("How To Play", True, WHITE) 
    screen.blit(instructionsTitle, ((400 - (instructionsTitle.get_width()/2)),390)) 

    quitgameTitle = quitFont.render("Quit", True, WHITE) 
    screen.blit(quitgameTitle, ((400 - (quitgameTitle.get_width()/2)),495)) 


    pygame.display.update() 

#Choices for Introduction Screen 
    while go: 
     for event in pygame.event.get(): 
      if event.type == pygame.QUIT: 
       go = False 

      elif event.type == pygame.KEYDOWN: 
       if event.key == pygame.K_UP: 
        if choice != 1: 
         choice = choice - 1 
       elif event.key == pygame.K_DOWN: 
        if choice != 4: 
         choice = choice + 1 

       elif event.key == pygame.K_RETURN: 
        if choice == 1: 
         playTwoPlayer() 
        elif choice == 2: 
         playOnePlayer()       
        elif choice == 3: 
         instructions() 
        elif choice == 4: 
         quitGame() 

     if choice == 1: 
      screen.fill(MUTEDBLUE) 

      pongTitle = startscreenTitleFont.render("Pong", True, WHITE) 
      screen.blit(pongTitle,((400 - (pongTitle.get_width()/2)),0)) 

      playerchoiceTitle = startscreenPlayerChoiceFont.render("Two Player Game", True, NAVYBLUE) 
      screen.blit(playerchoiceTitle, ((400 - (playerchoiceTitle.get_width()/2)),160)) 

      playerchoice2Title = startscreenPlayerChoiceFont.render("One Player Game", True, WHITE) 
      screen.blit(playerchoice2Title, ((400 - (playerchoice2Title.get_width()/2)),275)) 

      instructionsTitle = instructionsFont.render("How To Play", True, WHITE) 
      screen.blit(instructionsTitle, ((400 - (instructionsTitle.get_width()/2)),390)) 

      quitgameTitle = quitFont.render("Quit", True, WHITE) 
      screen.blit(quitgameTitle, ((400 - (quitgameTitle.get_width()/2)),495)) 

     elif choice == 2: 
      screen.fill(MUTEDBLUE) 

      pongTitle = startscreenTitleFont.render("Pong", True, WHITE) 
      screen.blit(pongTitle,((400 - (pongTitle.get_width()/2)),0)) 

      playerchoiceTitle = startscreenPlayerChoiceFont.render("Two Player Game", True, WHITE) 
      screen.blit(playerchoiceTitle, ((400 - (playerchoiceTitle.get_width()/2)),160)) 

      playerchoice2Title = startscreenPlayerChoiceFont.render("One Player Game", True, NAVYBLUE) 
      screen.blit(playerchoice2Title, ((400 - (playerchoice2Title.get_width()/2)),275)) 

      instructionsTitle = instructionsFont.render("How To Play", True, WHITE) 
      screen.blit(instructionsTitle, ((400 - (instructionsTitle.get_width()/2)),390)) 

      quitgameTitle = quitFont.render("Quit", True, WHITE) 
      screen.blit(quitgameTitle, ((400 - (quitgameTitle.get_width()/2)),495)) 

     elif choice == 3: 
      screen.fill(MUTEDBLUE) 

      pongTitle = startscreenTitleFont.render("Pong", True, WHITE) 
      screen.blit(pongTitle,((400 - (pongTitle.get_width()/2)),0)) 

      playerchoiceTitle = startscreenPlayerChoiceFont.render("Two Player Game", True, WHITE) 
      screen.blit(playerchoiceTitle, ((400 - (playerchoiceTitle.get_width()/2)),160)) 

      playerchoice2Title = startscreenPlayerChoiceFont.render("One Player Game", True, WHITE) 
      screen.blit(playerchoice2Title, ((400 - (playerchoice2Title.get_width()/2)),275)) 

      instructionsTitle = instructionsFont.render("How To Play", True, NAVYBLUE) 
      screen.blit(instructionsTitle, ((400 - (instructionsTitle.get_width()/2)),390)) 

      quitgameTitle = quitFont.render("Quit", True, WHITE) 
      screen.blit(quitgameTitle, ((400 - (quitgameTitle.get_width()/2)),495)) 

     if choice == 4: 
      screen.fill(MUTEDBLUE) 

      pongTitle = startscreenTitleFont.render("Pong", True, WHITE) 
      screen.blit(pongTitle,((400 - (pongTitle.get_width()/2)),0)) 

      playerchoiceTitle = startscreenPlayerChoiceFont.render("Two Player Game", True, WHITE) 
      screen.blit(playerchoiceTitle, ((400 - (playerchoiceTitle.get_width()/2)),160)) 

      playerchoice2Title = startscreenPlayerChoiceFont.render("One Player Game", True, WHITE) 
      screen.blit(playerchoice2Title, ((400 - (playerchoice2Title.get_width()/2)),275)) 

      instructionsTitle = instructionsFont.render("How To Play", True, WHITE) 
      screen.blit(instructionsTitle, ((400 - (instructionsTitle.get_width()/2)),390)) 

      quitgameTitle = quitFont.render("Quit", True, NAVYBLUE) 
      screen.blit(quitgameTitle, ((400 - (quitgameTitle.get_width()/2)),495)) 

      pygame.display.update() 

     pygame.display.update() 

#Two Player Game 
def playTwoPlayer(): 
    screen.fill(MUTEDBLUE) 
    play = True 
    startballSPACE = True 

#Two Player Game- Set Variables 
    playeroneScore = 0 
    playertwoScore = 0 

    ballx = 400 
    bally = 350 
    balldx = 0 
    balldy = 0 
    xOne = 775 
    yOne = 275 
    xTwo = 0 
    yTwo = 275 
    dyOne = 0 
    dyTwo = 0 
    heightPaddleoneandtwo = 150 
    paddleheight = 150 

    go = True 
    while go: 

     if playeroneScore == 3: 
      winnerPlayerOne() 

     if playertwoScore == 3: 
      winnerPlayerTwo() 

     balldxdir = random.choice([-5,5]) 
     balldydir = random.choice([-5,5]) 

     for event in pygame.event.get(): 

      if event.type == pygame.QUIT: 
       quitGame() 

      elif event.type == pygame.KEYDOWN: 

#Controls for player one- Up and Down key    
       if event.key == pygame.K_UP: 
        dyOne = -10 
        directiony = 3 
       elif event.key == pygame.K_DOWN: 
        dyOne = 10 
        directiony = 4 

#Controls for player two- W and S key 
       elif event.key == pygame.K_w: 
        dyTwo = -10 
        directionyTWO = 2 
       elif event.key == pygame.K_s: 
        dyTwo = 10 
        directionyTWO = 1 
#Controls to quit 
       elif event.key == pygame.K_q: 
        startscreen() 

#Controls to start game (press space bar) 
       elif startballSPACE == True: 
        if event.key == pygame.K_SPACE: 
         play = True 
         balldx = balldxdir 
         balldy = balldydir 
         startballSPACE = False 

      if event.type == pygame.KEYUP: 

       if event.key == pygame.K_UP or event.key == pygame.K_DOWN: 
        dyOne = 0 
        directiony = 0 

       elif event.key == pygame.K_w or event.key == pygame.K_s: 
        dyTwo = 0 
        directionyTWO = 0 

     screen.fill(MUTEDBLUE) 

#Paddle Positioning 
     yOne = yOne + dyOne 
     yTwo =yTwo + dyTwo 

#Screen Top and Bottom Collision Check  
     if yOne > (600 - heightPaddleoneandtwo) and directiony == 4: 
      dyOne = 0 
      yOne = (600 - heightPaddleoneandtwo) 

     if yOne < 100 and directiony == 3: 
      dyOne = 0 
      yOne = 100 

     if yTwo > (600 - heightPaddleoneandtwo) and directionyTWO == 1: 
      dyTwo = 0 
      yTwo = (600 - heightPaddleoneandtwo) 

     if yTwo < 100 and directionyTWO == 2: 
      dyTwo = 0 
      yTwo = 100 

#Makes Ball Bounce in opposite direction 
     if play == True: 
      if ballx == xOne and bally <= (yOne + heightPaddleoneandtwo) and bally >= yOne: 
       balldx = -balldx 

#Makes Paddle Shorter on collisions with ball (makes game tougher) 
       if heightPaddleoneandtwo >= 10: 
        heightPaddleoneandtwo = heightPaddleoneandtwo - 7 
       else:     
        heightPaddleoneandtwo = heightPaddleoneandtwo 

#Makes Ball Bounce in opposite direction    
      elif bally >= 580: 
       balldy = -balldy 
      elif ballx == (xTwo + 25) and bally <= (yTwo + heightPaddleoneandtwo) and bally >= yTwo: 
       balldx = -balldx 

#Makes Paddle Shorter on collisions with ball (makes game tougher) 
       if heightPaddleoneandtwo >= 10: 
        heightPaddleoneandtwo = heightPaddleoneandtwo - 7 
       else: 
        heightPaddleoneandtwo = heightPaddleoneandtwo 

      elif bally <= 110: 
       balldy = -balldy 

      elif ballx<0 or ballx>800: 

#Adds score if ball passes paddle     
       if ballx>800: 
         playeroneScore = playeroneScore + 1 
         startballSPACE = True 
       elif ballx < 0: 
         startballSPACE = True 
         playertwoScore = playertwoScore + 1 
       ballx = 400 
       bally = 350 
       balldx = 0 
       balldy = 0 
       yOne = 275 
       y2Two = 275 
       heightPaddleoneandtwo = 150 
       play = False 

      ballx = ballx + balldx 
      bally = bally - balldy 

#Draw all screen components 
     pygame.draw.rect(screen, WHITE,(xOne, yOne, 25, heightPaddleoneandtwo),0) 
     pygame.draw.rect(screen, WHITE,(xTwo, yTwo, 25, heightPaddleoneandtwo),0) 

     pygame.draw.circle (screen, WHITE, (ballx,bally), 10, 0) 

     textScore = maingamescoreFont.render("Score", True, WHITE) 
     screen.blit(textScore, (((800/2)-(textScore.get_width()/2),0))) 

     textPlayeroneScore = maingameP1ScoreFont.render(str(playeroneScore), True, WHITE) 
     screen.blit(textPlayeroneScore, (0,0)) 

     textPlayertwoScore = maingameP2ScoreFont.render(str(playertwoScore), True, WHITE) 
     screen.blit(textPlayertwoScore, ((800 - textPlayertwoScore.get_width()),0)) 

     pygame.draw.rect (screen, WHITE, (0,90,800,10),0) 

     pygame.draw.rect (screen, WHITE, (395,112,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,162,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,212,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,262,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,312,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,362,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,412,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,462,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,512,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,562,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,612,10,25),0) 

     pygame.draw.rect (screen, WHITE, (45,0,3,100),0) 
     pygame.draw.rect (screen, WHITE, (752,0,3,100),0) 

     playerOneText = maingamePlayerOneFont.render("Player 1", True, WHITE) 
     playerTwoText = maingamePlayerOneFont.render("Player 2", True, WHITE) 
     screen.blit(playerOneText, (70,15)) 
     screen.blit(playerTwoText, (525,15)) 

     pygame.display.update() 

def instructions(): 
    screen.fill(TEAL) 
    for n, line in enumerate(instructionsFile): 
     text = font.render(line, 1, WHITE) 
     text_rect = text.get_rect() 
     text_rect.centerx = screenSize[0]//2 
     text_rect.centery = n*25 + 50 
     screen.blit(text, text_rect) 
     pygame.display.update() 

def winnerPlayerOne(): 
    screen.fill(TEAL) 
    winnerP1Message = winnerFont.render("Congrats Player 1. You Win! Press 'c' to continue", True, WHITE) 
    screen.blit(winnerP1Message, ((400 - (winnerP1Message.get_width()/2)),(300 - (winnerP1Message.get_height()/2)))) 
    pygame.display.update() 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      quitGame()    
     elif event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_c: 
       startscreen() 

def winnerPlayerTwo(): 
    screen.fill(TEAL) 
    winnerP2Message = winnerFont.render("Congrats Player 2. You Win! Press 'c' to continue", True, WHITE) 
    screen.blit(winnerP2Message, ((400 - (winnerP2Message.get_width()/2)),(300 - (winnerP2Message.get_height()/2)))) 
    pygame.display.update() 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      quitGame()    
     elif event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_c: 
       startscreen() 

def CPUwinner(): 
    screen.fill(TEAL) 
    computerWinner = winnerFont.render("Better luck next time... The computer has won! Press 'c' to continue", True, WHITE) 
    screen.blit(computerWinner, ((400 - (computerWinner.get_width()/2)),(300 - (computerWinner.get_height()/2)))) 
    pygame.display.update() 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      quitGame()    
     elif event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_c: 
       startscreen() 

def quitGame(): 
    pygame.quit() 
    sys.exit() 

def playOnePlayer(): 
    screen.fill(MUTEDBLUE) 
    play = True 
    startballSPACE = True 

#One Player Game- Set Variables 
    playeroneScore = 0 
    playertwoScore = 0 

    ballx = 400 
    bally = 350 
    balldx = 0 
    balldy = 0 
    xOne = 775 
    yOne = 275 
    xTwo = 0 
    yTwo = 275 
    dyOne = 0 
    dyTwo = 0 
    heightPaddleoneandtwo = 150 
    paddleheight = 150 

    go = True 
    while go: 

     if playeroneScore == 3: 
      winnerPlayerOne() 

     if playertwoScore == 3: 
      CPUwinner() 

     balldxdir = random.choice([-5,5]) 
     balldydir = random.choice([-5,5]) 

     for event in pygame.event.get(): 

      if event.type == pygame.QUIT: 
       quitGame() 

      elif event.type == pygame.KEYDOWN: 

#Controls for player one- Up and Down key    
       if event.key == pygame.K_UP: 
        dyTwo = -10 
        directiony = 3 
       elif event.key == pygame.K_DOWN: 
        dyTwo = 10 
        directiony = 4 

#Controls to quit 
       elif event.key == pygame.K_q: 
        startscreen() 

#Controls to start game (press space bar) 
       elif startballSPACE == True: 
        if event.key == pygame.K_SPACE: 
         play = True 
         balldx = balldxdir 
         balldy = balldydir 
         startballSPACE = False 

      if event.type == pygame.KEYUP: 
       if event.key == pygame.K_UP or event.key == pygame.K_DOWN: 
        dyTwo = 0 
        directionyTWO = 0 

     screen.fill(MUTEDBLUE) 

#Paddle Positioning 
     yTwo = yTwo + dyTwo 
     yOne = bally - (heightPaddleoneandtwo/2) 

#Screen Top and Bottom Collision Check  
     if yOne > (600 - heightPaddleoneandtwo): 
      dyOne = 0 
      yOne = (600 - heightPaddleoneandtwo) 

     if yOne < 100: 
      dyOne = 0 
      yOne = 100 

     if yTwo > (600 - heightPaddleoneandtwo) and directiony == 4: 
      dyTwo = 0 
      yTwo = (600 - heightPaddleoneandtwo) 

     if yTwo < 100 and directiony == 3: 
      dyTwo = 0 
      yTwo = 100 

#Makes Ball Bounce in opposite direction 
     if play == True: 
      if ballx == xOne and bally <= (yOne + heightPaddleoneandtwo) and bally >= yOne: 
       balldx = -balldx 

#Makes Paddle Shorter on collisions with ball (makes game tougher) 
       if heightPaddleoneandtwo >= 10: 
        heightPaddleoneandtwo = heightPaddleoneandtwo - 7 
       else:     
        heightPaddleoneandtwo = heightPaddleoneandtwo      

#Makes Ball Bounce in opposite direction       
      elif bally >= 580: 
       balldy = -balldy 

      elif ballx == (xTwo + 25) and bally <= (yTwo + heightPaddleoneandtwo) and bally >= yTwo: 
       balldx = -balldx 

#Makes Paddle Shorter on collisions with ball (makes game tougher)     
       if heightPaddleoneandtwo >= 10: 
        heightPaddleoneandtwo = heightPaddleoneandtwo - 7 
       else: 
        heightPaddleoneandtwo = heightPaddleoneandtwo 

      elif bally <= 110: 
       balldy = -balldy 

      elif ballx<0 or ballx>800: 

#Adds score if ball passes paddle     
       if ballx>800: 
         playeroneScore = playeroneScore + 1 
         startballSPACE = True 
       elif ballx < 0: 
         startballSPACE = True 
         playertwoScore = playertwoScore + 1 
       ballx = 400 
       bally = 350 
       balldx = 0 
       balldy = 0 
       yOne = 275 
       y2Two = 275 
       heightPaddleoneandtwo = 150 
       play = False 

      ballx = ballx + balldx 
      bally = bally - balldy 


#Draw all screen components 
     pygame.draw.rect(screen, WHITE,(xOne, yOne, 25, heightPaddleoneandtwo),0) 
     pygame.draw.rect(screen, WHITE,(xTwo, yTwo, 25, heightPaddleoneandtwo),0) 

     pygame.draw.circle (screen, WHITE, (ballx,bally), 10, 0) 

     textScore = maingamescoreFont.render("Score", True, WHITE) 
     screen.blit(textScore, (((800/2)-(textScore.get_width()/2),0))) 

     textPlayeroneScore = maingameP1ScoreFont.render(str(playeroneScore), True, WHITE) 
     screen.blit(textPlayeroneScore, (0,0)) 

     textPlayertwoScore = maingameP2ScoreFont.render(str(playertwoScore), True, WHITE) 
     screen.blit(textPlayertwoScore, ((800 - textPlayertwoScore.get_width()),0)) 

     pygame.draw.rect (screen, WHITE, (0,90,800,10),0) 

     pygame.draw.rect (screen, WHITE, (395,112,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,162,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,212,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,262,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,312,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,362,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,412,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,462,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,512,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,562,10,25),0) 
     pygame.draw.rect (screen, WHITE, (395,612,10,25),0) 

     pygame.draw.rect (screen, WHITE, (45,0,3,100),0) 
     pygame.draw.rect (screen, WHITE, (752,0,3,100),0) 

     playerOneText = maingamePlayerOneFont.render("Player 1", True, WHITE) 
     playerTwoText = maingamePlayerOneFont.render("CPU", True, WHITE) 
     screen.blit(playerOneText, (70,15)) 
     screen.blit(playerTwoText, (630,15)) 

     pygame.display.update() 

startscreen() 

回答

1

就快,但需要screen.blit矩形對象旁邊的textsprite,這個對象是用來定義精靈的大小和位置。此外,您需要給每條線自己設置x或y座標(否則它們將全部繪製在彼此之上)解決此問題的一種方法是使用for n, line in enumerate(f)這將爲您提供每行的索引值,稱爲n 。 如果用枚舉並刪除當前screen.blit發言,並與該塊替換它應該工作:

text_rect = instructText.get_rect() 
    text_rect.centerx = SCREENSIZE[0]//2 
    text_rect.centery = n*25 + 50 
    screen.blit(text, text_rect) 

在這裏您可以通過調用它的get_rect()方法獲取文本精靈一個矩形對象,然後設置其中心x座標作爲屏幕的中心(我使用容器來保持屏幕尺寸),然後將其中心y座標設置爲25 *陣列中的線位置+ 50像素的填充,最後將其繪製到屏幕上,並使用screen.blit(text, text_rect)

我做了一個使用自定義字體的實例,你可以看到它here

在以前的項目,我也做了這樣的任務,這個對象,歡迎您使用或複製它,如果你願意,你可以找到它here

不管怎麼說,我希望它的幫助下,快樂編碼。

編輯:

剛接手在你的代碼,並從我可以看到你的代碼,目前什麼也不做:) 您在sartscreen()函數定義你想要的行爲,但從來沒有調用的函數,因此沒有發生,這是你的主要思想,幸運的是它是一個簡單的解決方案,只需在你的文檔底部調用函數就可以了。startscreen(screen)

但是等一下?你會注意到我已經添加了屏幕對象到這個函數調用中,這是因爲你需要把你的函數作爲屏幕對象的引用,否則它不知道你在說什麼「屏幕對象」,你需要用任何使用屏幕對象的函數來做到這一點,但是你也需要告訴你的函數期望一個參數,所以當你定義你的startscreen函數和指令函數時,你也需要像這樣添加屏幕對象def startscreen(screen):def instructions(screen):現在你的函數知道你在說什麼叫screen.fill(COLOR)screen.blit(text, text_rect)

除此之外,它只是一個小的細節問題時什麼,但應用這兩個更改後您的菜單似乎爲我工作的蟒蛇3.5,不過我建議你看看Clock object以及限制你的幀率(否則遊戲將在超級計算機上運行速度超快)

+0

我已將你的代碼合併到我的主代碼中,但它仍然不顯示。這可能是我放置代碼的地方存在的一個問題 - 就像我在一個單獨的文件中運行它時一樣完美。你介意檢查一下嗎?我在原始帖子中添加了一部分代碼作爲修改。非常感謝你的幫助! – Student

+0

我看了你的代碼並編輯了我的初始答案,評論太長了,我試着在應用上述兩個修復程序後運行你的代碼,現在它似乎正在工作。 – Molex4

+0

Ahah我確實調用了函數,但這只是我的代碼的一部分 - 具有指令功能的部分,這就是爲什麼它看起來不完整但非常感謝。不過,我的整個菜單都起作用,它只是指示部分,而不是。如果您想看到它,我已經添加了我的整個代碼,因爲它似乎仍然沒有提示說明。 – Student