Python 在同一方向上以四个为一组移动矩形

Python 在同一方向上以四个为一组移动矩形,python,pygame,Python,Pygame,我做了一些矩形,它们都朝着同一个方向(向左)移动。当第一个矩形经过一定量的提升时,我制作了一个新的矩形,这个过程没有结束 我想做一组矩形。因此,当制作四个矩形时,程序必须暂停制作矩形,但是已经存在的矩形必须继续移动,并且在一段时间后,程序必须再制作四个矩形 有人能帮我吗 import pygame, sys, time, random import tkinter as tk import numpy as np from pygame.locals import * # box-size b

我做了一些矩形,它们都朝着同一个方向(向左)移动。当第一个矩形经过一定量的提升时,我制作了一个新的矩形,这个过程没有结束

我想做一组矩形。因此,当制作四个矩形时,程序必须暂停制作矩形,但是已经存在的矩形必须继续移动,并且在一段时间后,程序必须再制作四个矩形

有人能帮我吗

import pygame, sys, time, random
import tkinter as tk
import numpy as np
from pygame.locals import *

# box-size
bh = 30
bw = 30
# box-position
xb = 1355
yb = 663

### Function to generate different boxes
def random_box():
   box = [GREEN,PINK,BLUE]
   random.shuffle(box)
   return box
while(true):

    w = random_box()
    CB = random.choice(w)
    CB = [CB]

    boxpos = [[xb,yb]]

    for i in range(0,len(boxpos)):

        pygame.draw.rect(DISPLAYSURF,CB[i], [boxpos[i],(bh,bw)])
        J = random.choice(w)
        CB.append(J)         

     for i in range(0,len(boxpos)):
        boxpos[i][0] = boxpos[i][0] - 10     

     for i in range(0,len(boxpos)):
        if boxpos[i] == [(xb-bw-10),yb]:
            boxpos.append([xb,yb])

我将采取的步骤是:首先在游戏中添加一个
frame\u number
变量,以便一次生成方框4:

#preamble
...
frame_number = 0
while(true):
    frame_number +=1
    ...
    #other stuff
这样,您就可以让循环每隔
n
帧执行一次操作,如下所示:

if frame_number % 10 == 0:
    #do a thing that you want done every 10 frames
假设你的盒子大小为30,每帧速度为10,你需要每4*30/10=12帧添加4个盒子。因此,您需要在检查后生成方框,以确保我们处于要生成方框的框架中:

if frame_number % 12 == 0:
    for _ in range(4):
        J = random.choice(w)
        CB.append(J) 

您的缩进已关闭,因为您的代码现在处于静止状态,可能会出现缩进错误。您能确保您的代码缩进与您运行的代码相同吗?这可以通过复制粘贴到此问题中快速完成,突出显示所有代码并按
CTRL+K
{}
按钮您在哪里定义了颜色?看来你还没有开始使用颜色。