Ir ao conteúdo
  • Cadastre-se

Python Rotacionar objeto na Blender Game Engine


Posts recomendados

Tenho o seguinte script num controlador python na BGE   

    import serial #Comunicacion Serial
    import bge #Funciones propias de blender
    import bpy
    import math
    from bpy.props import *
    from mathutils import Vector


    ser = serial.Serial('COM5', baudrate = 9600, timeout = 1)

  
    leitura = ser.readline() 
    leitura = leitura.decode("utf_8") 


    if leitura[0] == "&" :

    leitura = leitura[1:] #Eliminamos el detector de errores
    leitura = leitura[:-1] #Eliminamos el final de linea

    angulo = math.radians(int(leitura))

    cont = bge.logic.getCurrentController()
    leme = cont.owner  

    rotation = leme.localOrientation.to_euler()

    rotacao_atual = rotation.y * -1


    if (rotacao_atual != angulo):
     if (rotacao_atual > angulo):
      leme.applyRotation([0,0.1, 0],1)
    else:
      leme.applyRotation([0,-0.1, 0],1)
    else:
      leme.applyRotation([0, 0, 0],True)        

      ser.close()
 


Sua função e ler um valor recebido de uma conexao serial, decodifica-lo e depois converter seu valor inteiro em radianos. Leio a rotação atual do meu objeto depois faço a logica para que o objeto rotacione até o angulo desejado. Em termos o codigo funciona, o problema e que aparentemente o objeto não rotaciona de 0 a 360 graus.

 

Exemplo, se meu angulo é de 180 graus, e a rotação atual e 0 graus, o applyRotation fica incrementando de 0.1 radios no objeto mas só até 2.60 radianos, depois desse valor retorna para 0 radianos e vai diminindo, depois sobe até 2.60 de novo e fica num loop infinito, alguém sabe o porque disso?


 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...