0

私は最近、PyGame スプライトと呼ばれるものに出会い、私のプロジェクトに非常に役立つので、Pygame スプライトの作成を学びたいと思っています。

これが私のコードです:

import pygame
import sys
from pygame.locals import *

white = (255,255,255)
black = (0,0,0)

objs = []

MAIN_BUTTON = 1

class Pane(pygame.sprite.Sprite):
    def __init__(self):
        pygame.init()
        self.font = pygame.font.SysFont('Arial', 25)
        pygame.display.set_caption('Box Test')
        self.screen = pygame.display.set_mode((600,400), 0, 32)
        self.screen.fill((white))
        pygame.display.update()

    def addRect(self):
        self.rect = pygame.draw.rect(self.screen, (black), (175, 75, 200, 100), 2)
        pygame.display.update()

    def addText(self):
        self.screen.blit(self.font.render('Hello', True, (black)), (250, 115))
        pygame.display.update()

    def delText(self):
        self.screen = pygame.display.set_mode((600,400), 0, 32)
        self.screen.fill((white))
        pygame.display.update()

    def mousePosition(self): #Ignore this.
        global clickPos
        global releasePos
        for event in pygame.event.get():
            if event.type == MAIN_BUTTON:
                self.Pos = pygame.mouse.get_pos()
                return MAIN_BUTTON
            else:
                return False
    def groupSp(self):
        pygame.sprite.Sprite.__init__(self, group)

if __name__ == '__main__':
    Pan3 = Pane()
    Pan3.addRect()
    Pan3.addText()
    Pan3.mousePosition()
    group = pygame.sprite.Group(Pan3.addRect(), Pan3.addText())
    Pan3.groupSp()
    group.sprites()
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                 pygame.quit(); sys.exit();

addRect(self) と addText(self) の両方をスプライトとしてグループ化できるかどうか疑問に思っていましたか? もしそうなら、画面上にランダムに配置できる方法はありますか? または、これを行うより良い方法はありますか?

よろしくお願いいたします。:)

4

1 に答える 1

1

pygame.display.update()ゲーム ループごとに 1 回だけ呼び出します。(現在、2 つのペインを作成し、それぞれで addText() を 2 回呼び出すと、ループごとに 4 回の更新になります。)

addRect(self) と addText(self) の両方をスプライトとしてグループ化できるとしたら?

それらを同じサーフェスにレンダリングして、後で画面に描画できます。

もしそうなら、画面上にランダムに配置できる方法はありますか?

ランダムに配置するには、 https://stackoverflow.com/a/10667252/341744 を使用random.randint()ます

pygame.sprite.Sprite.__init__(自己、グループ)

これはコンストラクターで呼び出す必要がありますPane.__init__

于 2013-10-15T03:44:53.110 に答える