Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 8, 2011 18:14:17

Shecspi
От:
Зарегистрирован: 2009-01-01
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

PyGame - подскажите алгоритм

Пишу что-то отдалённо похожее на тетрис, смысл в другом, но принцип такой-же. Также фигуры падают сверху. При достижении низа фигуры должны фиксироваться на месте и выпадает новая фигура. Собственно, вопрос состоит в том, как зафиксировать фигуру и переключиться на следующую?

# -*- coding: utf-8 -*-

import sys
import pygame

class Tetris(object):
size = width, height = 210 , 300
speed_default = [0, 1]
speed_right = [20, 0]
speed_left = [-20, 0]
black = 0, 0, 0

def movement(self, course):
"""Метод передвигает фигуру в указанном направлении.

Направления передвижения:

1 - влево
2 - вправо
3 - вниз с начальной скоростью
4 - вниз моментально
"""

if course == 1:
speed = self.speed_left
if self.imagerect.left > 0:
self.imagerect = self.imagerect.move(self.speed_left)
elif course == 2:
if self.imagerect.right < self.width:
self.imagerect = self.imagerect.move(self.speed_right)
elif course == 3:
if self.imagerect.bottom < self.height:
self.imagerect = self.imagerect.move(self.speed_default)
elif course == 4:
self.speed_increased = [0, self.height - self.imagerect.bottom]
self.imagerect = self.imagerect.move(self.speed_increased)

self.screen.fill(self.black)
self.screen.blit(self.image, self.imagerect)
pygame.display.flip()

def screen(self):
self.screen = pygame.display.set_mode(self.size)
pygame.display.set_caption('Какая-то игра')

self.image = pygame.image.load('data/1.bmp')
self.imagerect = self.image.get_rect()

while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
self.movement(1)
elif keys[pygame.K_RIGHT]:
self.movement(2)
elif keys[pygame.K_DOWN]:
self.movement(4)

clock = pygame.time.Clock()
clock.tick(30)
self.movement(3)

if __name__ == '__main__':
pygame.init()

tetris = Tetris()
tetris.screen()



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version