Hola Tengo unas pequeñas dudas, estoy creando un juego de rompe bloques o rompe ladrillos.
Cuestión en las que tengo problemas con la colisión de eliminar ladrillo cuando la pelota choque con este, ademas que tambien tengo problema con la paleta que no empuja la pelota. Llevo varios dias investigando y probando cosas pero ya no se que hacer. Ayuda se los agradeceria muchisimo
Este es el codigo que use:
# coding: utf-8
import pilasengine
pilas=pilasengine.iniciar()
######################Escenas##################
def iniciar_juego():
pilas.escenas.PantallaJuego()
def salir_del_juego():
pilas.terminar()
#def como_jugar():
# pilas.engine.PantallaInstrucciones()
########################Pantalla menu##############
class PantallaMenu(pilasengine.escenas.Escena):
def iniciar(self):
self.f= pilas.fondos.Fondo()
self.f.imagen = pilas.imagenes.cargar("C:\pilastrabajos\KhousnoulinePilas\imagenes\menu.png")
self.f.escala=0.650
self.lista_de_opciones = pilas.actores.Menu([
("Comenzar", iniciar_juego),
# ("Instrucciones", como_jugar),
("Salir", salir_del_juego)
])
pilas.escenas.vincular(PantallaMenu)
pilas.escenas.PantallaMenu()
#########################Escena Juego###################
class PantallaJuego(pilasengine.escenas.Escena):
def crear_ladrillos(self,ladrillo,valores_x,y):
for x in valores_x:
crear_ladrillo(ladrillo,x,y)
def iniciar(self):
self.fondis=pilas.fondos.Fondo()
self.fondis.imagen= pilas.imagenes.cargar("C:\pilastrabajos\KhousnoulinePilas\imagenes\wnegro.jpg")
primero=pilas.actores.Heroe()
segundo= pilas.actores.Enemy()
pelota= pilas.actores.Wea()
pelotados=pilas.actores.WeaDos()
ladrillo=pilas.actores.Ladrillo()
ladrillos = pilas.actores.Grupo()
valores_x=[-290,-235,-180,-125,-70,-15,40,95,150,205,260]
self.crear_ladrillos(ladrillos,valores_x, 100)
self.crear_ladrillos(ladrillos,valores_x, 80)
self.crear_ladrillos(ladrillos,valores_x, 60)
self.crear_ladrillos(ladrillos,valores_x, 40)
self.crear_ladrillos(ladrillos,valores_x, 20)
self.crear_ladrillos(ladrillos,valores_x, 0)
self.crear_ladrillos(ladrillos,valores_x, -20)
self.crear_ladrillos(ladrillos,valores_x, -40)
#le restas 55
pilas.escenas.vincular(PantallaJuego)
###########################Paleta Azul###########
class MiActor(pilasengine.actores.Actor):
def constructor(self, x, y, esc, img):
self.imagen=pilas.imagenes.cargar('C:\pilastrabajos\KhousnoulinePilas\imagenes' +img)
self.escala=esc
self.y=y
self.x=x
class Heroe(MiActor):
def iniciar(self):
self.constructor(0, -200, 0.120, "\primero.png")
self.aprender(pilas.habilidades.MoverseConElTeclado)
self.figura_de_colision = pilas.fisica.Rectangulo(0, 0, 116, 10, False)
def empujar_pelota(Heroe, pelota):
pelota.empujar((pelota.x - Heroe.x) / 0, -10)
pilas.actores.vincular(Heroe)
#####################Paleta Verde#################
class Enemy(MiActor):
def iniciar(self):
self.constructor(0,200,0.200,"\segundo.jpg")
self.figura_de_colision = pilas.fisica.Rectangulo(0, 0, 116, 10, False)
####################Teclado para segundo###########
nuevasteclas={pilas.simbolos.a:'izquierda',
pilas.simbolos.d:'derecha',}
mando=pilas.control.Control(nuevasteclas)
self.aprender(pilas.habilidades.MoverseConElTeclado,control=mando)
pilas.actores.vincular(Enemy)
##########################Pelotas#################
class Wea(pilasengine.actores.Actor):
def iniciar(self):
self.imagen=pilas.imagenes.cargar("C:\pilastrabajos\KhousnoulinePilas\imagenes\pelota.png")
self.escala=0.150
self.y=-150
self.aprender(pilas.habilidades.RebotarComoPelota)
# self.figura_de_colision= pilas.fisica.Circulo(0, 0, 15, dinamica=True)
self.pilas.fisica.gravedad_x = 0
self.pilas.fisica.gravedad_y = -9
self.aprender(pilas.habilidades.Arrastrable)
#pelota.aprender(Colisionable)
#class Colisionable(object):
# def __init__(self, receptor):
# self.receptor = receptor
# self.pelota = pilas.fisica.Circulo(0, 0, 15, dinamica=False)
# self.pilas.fisica.gravedad_x = 0
# self.pilas.fisica.gravedad_y = -9
# def actualizar(self):
# self.pelota.x = self.receptor.x
# self.pelota.y = self.receptor.y -9
#pelota = []
#return True
pilas.actores.vincular(Wea)
class WeaDos(pilasengine.actores.Actor):
def iniciar(self):
self.imagen=pilas.imagenes.cargar("C:\pilastrabajos\KhousnoulinePilas\imagenes\pelotados.png")
self.escala=0.0450
self.y=150
self.x=0
self.aprender(pilas.habilidades.RebotarComoPelota)
self.aprender(pilas.habilidades.Arrastrable)
# self.figura_de_colision = pilas.fisica.Circulo(0, 0, 15, dinamica=True)
pilas.actores.vincular(WeaDos)
###########################Ladrillos###################
class Ladrillo(pilasengine.actores.Actor):
def iniciar(self):
self.imagen=pilas.imagenes.cargar("C:\pilastrabajos\KhousnoulinePilas\imagenes\ladrillo.png")
self.escala=0.200
self.y=0
self.x=-290
self.figura_de_colision = pilas.fisica.Rectangulo(0, 0, 50, 10, False)
def crear_ladrillo(grupo_ladrillos, x, y):
ladrillo = Ladrillo(pilas)
ladrillo.x = x
ladrillo.y = y
grupo_ladrillos.agregar(ladrillo)
def eliminar_ladrillo(pelota, ladrillo):
ladrillo.eliminar
pilas.colisiones.agregar('Wea', 'Ladrillo', eliminar_ladrillo)
def eliminar_ladrillo(pelotados, ladrillo):
ladrillo.eliminar()
def empujar_pelota(paleta, pelota):
pelota.empujar((pelota.x - paleta.x) / 0.5, -10)
pilas.colisiones.agregar(Heroe,Wea, empujar_pelota)
#### pilas.colisiones.agregar(Wea, Ladrillo, eliminar_ladrillo)
pilas.actores.vincular(Ladrillo)
pilas.ejecutar()