aqui esta script:
from bge import logic as g, events
c = g.getCurrentController()
o = c.owner
o = c.owner
teclado = g.keyboard.events
w = teclado[events.WKEY]
s = teclado[events.SKEY]
a = teclado[events.AKEY]
d = teclado[events.DKEY]
e = teclado[events.EKEY]
s = teclado[events.SKEY]
a = teclado[events.AKEY]
d = teclado[events.DKEY]
e = teclado[events.EKEY]
if w:
o.applyMovement([0,0.3,0])
if s:
o.applyMovement([0,-0.3,0])
if a:
o.applyMovement([-0.3,0,0])
if d:
o.applyMovement([0.3,0,0])
if e:
o.applyMovement([0,0,0.3])
lembrando esse movimento e muito recomendado para jogos FPS.
o segundo exemplo e onde laser pode ser usado em vários jogos, nele se usa o RAY+ADD CONTROLLER e movimento simples para esse exemplo.
nota se que existe uma esfera ela faz o laser ser emitido sem ele o laser não aparece.
o script:
from bge import logic as g, events
from bge import render as r
from bge import render as r
c = g.getCurrentController()
o = c.owner
o = c.owner
cena = g.getCurrentScene()
for i in c.sensors:
exec(i.name+"=i")
exec(i.name+"=i")
hit = Ray.hitPosition
cor = [1,0,0]
bola = cena.objects["bola1"]
laser = cena.objects["laser"]
distancia = o.getDistanceTo(bola)
bola.position = hit
r.drawLine(o.position,bola.position,cor) #a (linha de desenho) responsável pelo laser
laser.localScale[2] = distancia/2.4 #função faz que o lazer não atravesse a parede
e possível também criar animações com esse script que funciona também.
no terceiro e mais técnico para uso de jogo, porem ajuda a você esta criando jogo para testar a detecção de objetos no cenário.
na primeira imagem temos um o chão, cubo e uma esfera. aqui temos a COLISION + ADD CONTROLLER com pulse ligado.
na primeira imagem temos um o chão, cubo e uma esfera. aqui temos a COLISION + ADD CONTROLLER com pulse ligado.
na segunda imagem o exemplo rodando ele detecta com colisão .
no vídeo o exemplo rodando.
o script:
from bge import logic as g, render as r,events
c = g.getCurrentController()
o = c.owner
o = c.owner
cena = g.getCurrentScene()
for i in c.sensors:
exec(i.name+"=i")
texto = cena.objects["Text"]
hit = detecta.hitObjectList
exec(i.name+"=i")
texto = cena.objects["Text"]
hit = detecta.hitObjectList
texto["Text"] = str(hit)
e isso por hoje.
Nenhum comentário:
Postar um comentário