我正在尝试用 Python 制作一个类似生态系统的模拟器,但我的问题是我不知道如何克隆它。
这是我的代码:
import os
import random
import pygame
import math
import sys
WIDTH = 1090
HEIGHT = 720
WINDOW_SURFACE = pygame.HWSURFACE|pygame.DOUBLEBUF
screen = pygame.display.set_mode((WIDTH, HEIGHT), WINDOW_SURFACE)
xwin = screen.get_width()
ywin = screen.get_height()
pygame.display.set_caption("Ecosystem")
clock = pygame.time.Clock()
class blob(pygame.sprite.Sprite):
def __init__(self):
self.rect = pygame.rect.Rect((64, 54, 16, 16))
def reproduce(self, surface):
pygame.sprite.Group.add(blob)
def movement(self):
randomish = random.randint(-10,10)
randomish2 = random.randint(-10,10)
randomish3 = random.randint(-10,10)
randomish4 = random.randint(-10,10)
self.rect.move_ip(randomish, randomish3)
self.rect.move_ip(randomish2, randomish4)
if self.rect.left < 0:
self.rect.left = 0
if self.rect.right > WIDTH:
self.rect.right = WIDTH
if self.rect.top <= 0:
self.rect.top = 0
if self.rect.bottom >= HEIGHT:
self.rect.bottom = HEIGHT
def draw(self, surface):
pygame.draw.rect(surface, (0, 0, 128), self.rect)
pygame.init()
blob = blob()
clock = pygame.time.Clock()
all_blobs_sprites = pygame.sprite.Group()
for i in range(1):
blob.reproduce
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((255, 255, 255))
blob.draw(screen)
blob.movement()
pygame.display.update()
clock.tick(40)
我试着分组并向其中添加斑点。
def reproduce(self, surface):
pygame.sprite.Group.add(blob)
我也尝试渲染新的矩形,但没有成功。
因为我已经知道生态系统的所有代码,但我现在唯一的问题是克隆。