<p>下面是我要做的:</p>
<p>首先,使用变量x、y和size定义一个类:</p>
<pre><code>class GreenBall: # Your class
def __init__(self, x, y, size): # The function that creates a ball at a given x and y position
self.x = x
self.y = y
self.size = size
def grow(): # Every time this function is called, your ball will grow
self.size += 1
def render():
pygame.draw.circle(gameSurface, (0,255,0), (self.x,self.y), size)
</code></pre>
<p>每次要创建新的绿球时,都可以调用如下函数:</p>
<pre><code>ballList = []
def newBall(x, y): # Initialize a new greenBall at x and y
global ballList
ballList.append( GreenBall( x, y, 1 ) )
</code></pre>
<p>现在,要绘制每个刻度的圆,我们需要让它们自己渲染</p>
<pre><code>for i in ballList:
i.render()
</code></pre>
<p>希望这些代码块能有所帮助</p>
<hr/>
<p><strong>编辑:</strong>
在胡闹了一会儿之后,我想出了这个计划:</p>
<pre><code>import pygame
import random
import math
import sys
pygame.init()
clock = pygame.time.Clock()
gameSize = (1200,800)
gameSurface = pygame.display.set_mode(gameSize)
pygame.display.set_caption('Green Balls!')
class GreenBall: # Your class
def __init__(self, x, y, size): # The function that creates a ball at a given x and y position
self.x = x
self.y = y
self.size = size
def grow(self): # Every time this function is called, your ball will grow
self.size += 1
def render(self):
pygame.draw.circle(gameSurface, (0,255,0), (self.x,self.y), (self.size))
ballList = []
def newBall(x, y): # Initialize a new greenBall at x and y
global ballList
ballList.append( GreenBall( x, y, 1 ))
timer = 0
spawnBallTime = 30
while True: #game loop
gameSurface.fill((0,0,0))
for i in ballList:
i.grow()
i.render()
if timer == spawnBallTime:
newBallX = random.randint(100, gameSize[0]-100)
newBallY = random.randint(100, gameSize[1]-100)
newBall(newBallX, newBallY)
spawnBallTime -= 1
timer = 0
timer += 1
clock.tick(20)
pygame.display.update()
event = pygame.event.get()
for e in event:
if e.type == pygame.QUIT:
pygame.display.quit()
sys.exit()
</code></pre>
<p>我不想破坏你编写有趣游戏的乐趣,但这里是我创建的一个基本设置。请随时向我提问,这意味着什么:D</p>