Receitas rápidas
Trechos prontos para copiar. Todos supõem que estão dentro de um componente (self.object é o objeto dono) e que o arquivo começa com:
import Rangefrom Range import logic, eventsMover e girar (o True usa os eixos do próprio objeto):
self.object.applyMovement((0.0, 0.1, 0.0), True)self.object.applyRotation((0.0, 0.0, 0.05), True)Distância até outro objeto:
alvo = self.object.scene.objects["Jogador"]if self.object.getDistanceTo(alvo) < 5.0: print("perto")Olhar para um objeto (eixo Y aponta para o alvo):
vetor = self.object.getVectTo(alvo)[1]self.object.alignAxisToVect(vetor, 1, 0.1)Propriedade de jogo:
self.object["vida"] = self.object.get("vida", 100) - 10Raio à frente (o que está até 10 m na frente):
frente = self.object.worldPosition + self.object.worldOrientation.col[1] * 10.0atingido = self.object.rayCastTo(frente, 10.0)if atingido: print("bateu em", atingido.name)Remover (vale no fim do quadro):
self.object.endObject()Criar um objeto de uma camada inativa na posição de outro, por 120 quadros (0 = para sempre):
cena = self.object.scenetiro = cena.addObject("Tiro", self.object, 120)Achar objetos pela propriedade:
inimigos = [o for o in self.object.scene.objects if "inimigo" in o]Trocar de cena e reiniciar:
self.object.scene.replace("Fase2")self.object.scene.restart()Tempo e teclado (Range.logic)
Seção intitulada “Tempo e teclado (Range.logic)”Tecla apertada agora / segurada:
teclas = logic.keyboard.inputsif teclas[events.SPACEKEY].activated: print("pulou")if teclas[events.WKEY].active: print("andando")Clique do mouse e posição:
mouse = logic.mouseif mouse.inputs[events.LEFTMOUSE].activated: print("clicou em", mouse.position)Tempo: movimento independente do FPS.
dt = 1.0 / max(logic.getAverageFrameRate(), 1.0)self.object.applyMovement((0.0, 2.0 * dt, 0.0), True)Guardar dados entre cenas:
logic.globalDict["pontos"] = logic.globalDict.get("pontos", 0) + 1