碰撞到屏幕时块被删除

时间:2021-03-20 20:49:28

标签: python pygame

每次我移动方块时,只有其中一个会留在游戏中,而其余的会在与屏幕碰撞时消失。屏幕会让剩下的方块消失,只让一个方块停留和移动

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
    

0 个答案:

没有答案
相关问题