Antes que nada quiero agradecerles por la ayuda y el tiempo que me brinden, en verdad se los agradezco, mi duda supongo que es común en novatos, así que no creo que a ustedes les cueste esto, por mi parte estoy un poco desorientado. Desde ya muchas gracias por todo.
Estoy intentando hacer un juego de puzzle similar a Puyo Puyo y similares, es decir un juego al estilo Tetris donde cada jugador lucha con otro jugador y cada vez que uno elimina bloques de igual colores, el jugador contrario recibe una cantidad de bloques grises, algo así como piedras que el jugador contrario debe romper si o si para seguir jugando.
Cree una clase llamada "bloques" donde tiene las orden de caer, datos para la colisión y gráficos, con la intensión de luego crear varios bloques con la misma base. Pero ahora llegado el momento, no se me ocurre como crear nuevos objetos "al vuelo" por decirlo de alguna manera.
Esa es mi duda, que no se como crear nuevos bloques/objetos teniendo el programa corriendo, si ustedes saben algún método que sea mas sencillo, se los agradeceré, pues la verdad yo mismo no tengo mucha experiencia programando.
Aquí les pongo el código que hice hasta ahora, esta recién empezado:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Nombre: Puzzle attack!
# Licencia: GNU/GPL Version 3
import sys, pygame
# iniciando modulos de pygame
pygame.init()
# carga del joystick
pygame.joystick.init()
numero_joysticks = pygame.joystick.get_count()
print 'Usted tiene ' + str(numero_joysticks) + ' joysticks conectados.'
joystick_p1 = pygame.joystick.Joystick(numero_joysticks - 1)
joystick_p1.init()
# creación de la pantalla
ancho_pantalla = 854
alto_pantalla = 480
pantalla = pygame.display.set_mode((ancho_pantalla,alto_pantalla))
pygame.display.set_caption("Puzzle attack !")
# se oculta el mouse
pygame.mouse.set_visible(False)
# carga del fondo
fondo = pygame.image.load("./image/fondo.png")
# rectangulo de la ventana
rectangulo_ventana = pygame.Rect((0,alto_pantalla-10) , (ancho_pantalla,100))
# clases
class bloque_simple:
def __init__ (self):
self.bloque_simple_grafico = pygame.image.load("./image/bloque.png")
self.posy = 0
self.bloque_rectangulo = pygame.Rect((0, self.posy) , (50, 50))
def actualizar(self):
self.bloque_rectangulo = pygame.Rect((0, self.posy) , (50, 50))
self.posy_previa = self.posy
def caer(self):
self.posy += 10
def imprimir(self):
pantalla.blit(self.bloque_simple_grafico, (0,self.posy))
bloque = bloque_simple()
# se crea un reloj
clock = pygame.time.Clock()
while True:
time = clock.tick(60)
bloque.actualizar()
# se mira si hay colisión y sí lo hay detiene el bloque a una
# posición previa. sí no encuentra nada lo deja caer
if bloque.bloque_rectangulo.colliderect(rectangulo_ventana):
print 'colision'
bloque.posy = bloque.posy_previa
else:
bloque.caer()
# refresco de pantalla
pantalla.blit(fondo, (0,0),(0, 0, ancho_pantalla, alto_pantalla))
# se dibuja un bloque
bloque.imprimir()
# se muetra la pantalla
pygame.display.flip()
# fin del game loop
Bueno ese el código hasta ahora, espero haberme expresado bien. Desde ya les agradezco su ayuda. Saludos.