如何从python中的类中的函数获取变量

时间:2014-11-24 16:20:10

标签: python class variables pygame

这里的问题是在titleScreen类中,在start方法中,我在屏幕上设置了开始文本的左上角。但为了做到这一点,我必须得到标题的大小,因为开始文本从标题文本下面开始。但是,当我尝试将y值赋给startPos时,我无法从title()方法引用titley变量。如何从title()方法获取titley的值并在另一个方法中使用它?

import pygame
from pygame import *
import math
import sys
#Presets for window
size=width,height=500,500
Ag=-9.80665
clock = pygame.time.Clock()
white=(255,255,255)
blue=(0,0,255)
gray_bgColor=(190,193,212)

pygame.init()
screen=pygame.display.set_mode(size)
pygame.display.set_caption("Flappy Kid")
score=0

title=True

class titleScreen():
    pygame.font.init()
    def title(self):
        self.titleText="Flappy Game"
        self.titlePos=(0,0)
        currentFont=pygame.font.SysFont("arialms",30,bold=True,italic=True)
        renderTitle=currentFont.render(self.titleText,1,blue,gray_bgColor)
        self.titlex,self.titley=currentFont.size(self.titleText)
        screen.blit(renderTitle,self.titlePos)
    def start(self):
        startText="Start Game"
        startPos=(0,self.title.titley)
        currentFont=pygame.font.SysFont("arialms",25,bold=False,italic=False)
        renderStart=currentFont.render(startText,1,blue,gray_bgColor)
        startx,starty=currentFont.size(startText)
        screen.blit(renderStart,startPos)

'''def detect_click():
    for event in pygame.event.get():
        if event.type==pygame.MOUSEBUTTONDOWN:
            x,y=pygame.mouse.get_pos()
            return x,y'''
titleC=titleScreen()

def main():
    vY,vX=0,0
    x,y=200,100
    while True:
        clock.tick(30)
        if not title:
            for event in pygame.event.get():
                if event.type==pygame.KEYDOWN:
                    if event.key==pygame.K_UP:
                        vY=-10
            if y>height-50:
                y=100
            vY+=1
            y+=vY
            x+=vX
        elif title:
            titleC.title()
            titleC.start()
        pygame.display.flip()

main()

0 个答案:

没有答案