Jump to content

Aislan Silva Costa

Members
  • Content count

    1
  • Joined

  • Last visited

Community Reputation

0 Comum

About Aislan Silva Costa

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

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

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.