OLA PESSOAS...! nossa já faz um tempo que não posto aqui , bom hoje vamos falar de grid, na verdade e um script bem simples apenas para visualização, porem varia do desenvolvedor oque ira fazer com ele.
ALWAYS+controller(python)
script:
###################################################################################
# Script Grid.py
# By Walberti Evaristo
# Info https://criacoesblender.wordpress.com
################################################
import bge
import bgl
# As seguintes variáveis devem ser alteradas para atender melhor as
#nesicidades do usuário
Size = 20 # Tamanho da grade
LineWidth = 1 # Largura da linha
LineSmooth = False # Remove o serrilhado da linha
ShowAxis = True # Mostrar eixos ou nao
Color = [0.051, 0.051, 0.051, 1] # Cor da grade [Vermelho, Verde, Azul, Transparencia]
def drawGrid():
bgl.glEnable(bgl.GL_BLEND)
bgl.glBlendFunc(bgl.GL_SRC_ALPHA, bgl.GL_ONE_MINUS_SRC_ALPHA)
bgl.glDisable(bgl.GL_LIGHTING)
if LineSmooth:
bgl.glEnable(bgl.GL_LINE_SMOOTH)
bgl.glLineWidth(LineWidth)
bgl.glPushMatrix()
bgl.glBegin(bgl.GL_LINES)
for Index in range(-Size, Size + 1):
bgl.glColor4f(Color[0], Color[1], Color[2], Color[3])
if ShowAxis:
if Index == int(Size - Size):
bgl.glColor4f(1, 0, 0, 1)
bgl.glVertex3f(Size, Index, 0)
bgl.glVertex3f(-Size, Index, 0)
if ShowAxis:
if Index == int(Size - Size):
bgl.glColor4f(0, 1, 0, 1)
bgl.glVertex3f(Index, Size, 0)
bgl.glVertex3f(Index, -Size, 0)
bgl.glEnd()
bgl.glPopMatrix()
bgl.glEnable(bgl.GL_LIGHTING)
bgl.glLineWidth(1)
bgl.glDisable(bgl.GL_LINE_SMOOTH)
def main():
Scene = bge.logic.getCurrentScene()
Scene.post_draw.append(drawGrid)
main()
###################################################################################
nada mais e a visualização do grid do blender na game engine:
INIMIGO SEGUE O ALVO:
agora vamos falar do inimigo que segue alvo usando python. primeiro o inimigo:
na primiera linha temos:
ALWAYS+CONTORLER(python)+EDIT OBJECT(track to)
na segunda linha temos:
RAY(property/+yaxis/radius(10000.00) x-ray mode ativado
ambos ligado ao CONTROLLER(python).
na segunda linda do RAY na linha ACTUATORS:
MOTION(Y0.30)
ACTION(property/(ANIMAÇAO DE 360G de barra (vai ser o que vai rastrear o alvo)
(crie uma propriedade para objeto(qualquer nome)
OBJETO SETA:
crie uma animaçao onde a barra tem que girar 360 graus no seu eixo.
na primeira linha :
ADD SENSOR
RAY(property/+y axix /radius 10000.00 / x ray mode ATIVADO
CONTROLLER(python)
ACTUATORS
ACTION(property(animação) property(nome variavel)
EDIT OBJECT(track to ()
MOTION( Y 0.30)
(crie uma propriedade para objeto(qualquer nome)) o mesmo no tem ser colocado no action do inimigo.
crie objetos onde o inimigo ira seguir (uma dica para ver ele funcionado bem use empty para criar objetos para ele seguir )
SCRIPT( poe no addcontroller)
###################################################################################
from bge import logic as g
c=g.getCurrentController()
o=c.owner
track=c.actuators['track']
Ray=c.sensors['Ray']
obj=Ray.hitObject
Motion=c.actuators['Motion']
ani=c.actuators['ani']
c.activate(track)
c.activate(ani)
track.object=obj
if Ray.positive:
c.activate(Motion)
o['ipo']=1
else:
o['ipo']+=1
if o['ipo']>60:
o['ipo']=1
c.deactivate(Motion)
###################################################################################
demostraçao:
agora as postagem serão aos DOMINGOS
Nenhum comentário:
Postar um comentário