Ir para conteúdo

Aislan Silva Costa

Members
  • Total de itens

    1
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre Aislan Silva Costa

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

  1. Aislan Silva Costa

    Rotacionar objeto na Blender Game Engine

    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?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.