domingo, 4 de outubro de 2020

23=BLENDER GRID / INIMIGO SEGUE ALVO

 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