def vazio(self, imagem, x, y, cena): """ Cria um espaço vazio na arena do Kwarwp na posição definida. :param x: coluna em que o elemento será posicionado. :param y: linha em que o elemento será posicionado. :param cena: cena em que o elemento será posicionado. """ vaga = Vazio(imagem, x=x, y=y, cena=cena, ocupante=self) """ O Kwarwp é aqui usado como um ocupante nulo, que não ocupa uma vaga vazia.""" return vaga
def tora(self, imagem, x, y, cena): """ Cria uma armadilha na arena do Kwarwp na posição definida. :param x: coluna em que o elemento será posicionado. :param y: linha em que o elemento será posicionado. :param cena: cena em que o elemento será posicionado. Cria uma vaga vazia e coloca o componente dentro dela. """ coisa = Tora(imagem, x=x, y=y, cena=cena, taba=self) vaga = Vazio("", x=x, y=y, cena=cena, ocupante=coisa) return vaga
def apedra(self, imagem, x, y, cena): """ Cria uma tora na arena do Kwarwp na posição definida. :param x: coluna em que o elemento será posicionado. :param y: linha em que o elemento será posicionado. :param cena: cena em que o elemento será posicionado. Cria uma vaga vazia e coloca o componente dentro dela. """ coisa = Pedra(imagem, x=0, y=0, cena=cena, taba=self) vaga = Vazio("", x=x, y=y, cena=cena, ocupante=coisa, taba=self) coisa.vazio.vai = lambda *_: self.o_indio.larga() return vaga
def coisa(self, imagem, x, y, cena): """ Cria um elemento na arena do Kwarwp na posição definida. :param x: coluna em que o elemento será posicionado. :param y: linha em que o elemento será posicionado. :param cena: cena em que o elemento será posicionado. Cria uma vaga vazia e coloca o componente dentro dela. """ coisa = Indio(imagem, x=0, y=0, cena=cena, taba=self) """o índio tem deslocamento zero, pois é relativo à vaga""" vaga = Vazio("", x=x, y=y, cena=cena, ocupante=coisa) """Aqui o índio está sendo usado para qualquer objeto, enquanto não tem o próprio""" return vaga
def indio(self, imagem, x, y, cena): """ Cria o personagem principal na arena do Kwarwp na posição definida. :param x: coluna em que o elemento será posicionado. :param y: linha em que o elemento será posicionado. :param cena: cena em que o elemento será posicionado. """ self.o_indio = Indio(imagem, x=1, y=0, cena=cena, taba=self) """ O índio tem deslocamento zero, pois é relativo à vaga. O **x=1** serve para distinguir o indio de outros derivados. """ self.o_indio.indio.vai = lambda *_: self.o_indio.pega() """o índio.vai é associado ao seu próprio metodo pega""" vaga = Vazio("", x=x, y=y, cena=cena, ocupante=self.o_indio) return vaga