每次我移动方块时,只有其中一个会留在游戏中,而其余的会在与屏幕碰撞时消失。屏幕会让剩下的方块消失,只让一个方块停留和移动
import pygame
from pygame.sprite import Sprite
from greyspace import GreyBlock
class S_Tetrimnio:
def __init__(self, game):
super().__init__()
self.screen = game.screen
self.settings = game.settings
self.screen_rect = self.screen.get_rect()
self.straight_tetrimnio = pygame.sprite.Group()
self.lastime = pygame.time.get_ticks()
def add_tetrimnio(self):
for num in range(4):
orange_block = GreyBlock(self,"images/orangesquare.bmp")
center_position = self.settings.screen_block_face + 2
starting_position = self.screen_rect.topleft[0] + (center_position * orange_block.rect.width)
orange_block.rect.x = starting_position + (num * orange_block.rect.width)
orange_block.rect.y = self.settings.square_yposition
self.straight_tetrimnio.add(orange_block)
def movement(self):
current_time = pygame.time.get_ticks()
if current_time - self.lastime >= self.settings.cooldown:
self.lastime = current_time
if self.settings.right_movement:
for block in self.straight_tetrimnio:
if block.rect.x <= self.screen_rect.width - 100:
self.settings.can_move = True
if self.settings.can_move:
block.rect.x += self.settings.tetrimino_speed
else:
self.settings.can_move = False
if self.settings.left_movement:
for block in self.straight_tetrimnio:
block.rect.x += -self.settings.tetrimino_speed
if self.settings.down_movement:
for block in self.straight_tetrimnio:
block.rect.y += self.settings.tetrimino_speed
if self.settings.up_movement:
for block in self.straight_tetrimnio:
block.rect.y += -self.settings.tetrimino_speed