2014-02-24 43 views
0

我有兩個腳本,我剛剛開始的一個遊戲,一個是主遊戲,另一個是在第一個腳本運行時顯示3個圖像,所以當我運行第一個腳本(mainGame .py)它應該使用類和函數運行第二個腳本(startUp.py),然後啓動將顯示帶有遊戲標題的圖像和由屏幕創建的圖像,然後我將它轉到遊戲菜單。但當然它不工作,這是我的主要遊戲代碼:對於第二個腳本(startUp.py)使用python和pygame的類

import pygame, random, math, sys, os, time 
import startUp 
from pygame.locals import * 
pygame.init() 

while True: 

    #quit button 
    for event in pygame.event.get(): 
     if event.type == QUIT: 
      pygame.quit() 
      sys.exit() 

    startUp.Begin.Run() 

代碼:

import pygame, time 
from pygame.locals import * 
pygame.init() 

class Begin(self): 

    def __init__(self): 
     self.screenA = "createdbyscreen.png" 
     self.screenB = "powerdbyscreen.png" 
     self.screenC = "gamelogoscreen.png" 
     self.blackscreen = "blackSreen.png" 

     self.screen = pygame.display.set_mode((1440, 720), 0, 32) 

     self.startscreenA = pygame.image.load(screenA).convert() 
     self.startscreenB = pygame.image.load(screenB).convert() 
     self.startscreenC = pygame.image.load(screenC).convert() 
     self.blackscreen = pygame.image.load(blackscreen).convert() 

    def Run(self): 
     while True: 
      #starting imagers 
      self.screen.blit(blackscreen, (0, 0)) 
      self.timeLeft = pygame.time.get_ticks() 
      print(self.timeLeft) 
      if self.timeLeft < 3500: 
       self.self.screen.blit(self.startscreenA, (480, 120)) 
      if self.timeLeft > 4000 and self.timeLeft < 7500: 
       self.screen.blit(self.startscreenB, (480, 120)) 
      if self.timeLeft > 8000 and self.timeLeft < 11150: 
       self.screen.blit(self.startscreenC, (480, 120)) 

      pygame.display.update() 

然後,如果有幫助,然後這裏有錯誤信息:

第一腳本:

Traceback (most recent call last): 
    File "C:\Users\claude\Desktop\game\dnagame.py", line 2, in <module> 
    import startUp 
    File "C:\Users\claude\Desktop\game\startUp.py", line 5, in <module> 
    class Begin(self): 
NameError: name 'self' is not defined 

和第二:

Traceback (most recent call last): 
    File "C:/Users/claude/Desktop/game/startUp.py", line 5, in <module> 
    class Begin(self): 
NameError: name 'self' is not defined 

謝謝你的時間和幫助!

回答

2
class Begin(self): 

你應該繼承object

class Begin(object): 

你也需要做出一個實例

begin = startUp.Begin() 
begin.Run() 
+0

我把自己改成了對象,而我剛剛得到一個錯誤,說Run()缺少1所需的位置參數:'object' – user3342999

+0

@ user3342999再看一次 –

+0

恩,是的。同樣的錯誤 – user3342999

0

類必須從object繼承,而不是self

class Begin(object): 

self是用於實例方法的第一個參數的約定名稱,它是對實例本身的引用。

+0

請不要在你的代碼片段中包含'^'。它令人困惑 –