Немного подредактировать код.

Страницы: 1
RSS
Немного подредактировать код.
 
Приветствую. Мне в руки попал небольшой кусок кода, но для меня очень проблемный, так как я почти полный нуль в Lua.
Нужно сделать так, чтобы объект(точка) двигалась только по оси X и никогда не меняла положение по Y(ну или вектор шел только по X) и убрать повороты по angle. Исправил все, что мог, но после определенного времени точка начинает двигаться по Y
Спасибо.
Код
local wall = math.random(1, 2)
   if wall == 1 then
      return vmath.vector3(math.random(-320, 320), 0, 0)
   else
      return vmath.vector3(math.random(-640, 640), 0, 0)
   end
end

function init(self)
   self.target_id = nil
   self.target_position = random_position_on_wall()
end

function update(self, dt)
   local pos = go.get_world_position()
   local target_angle = -math.atan(self.target_position.x - pos.x)
   local target_quat = vmath.quat_rotation_z(target_angle)
   local current_quat = go.get_rotation()
   
   local q = vmath.slerp(1, current_quat, target_quat)
   go.set_rotation(q)
   
   local d = vmath.rotate(q, vmath.vector3(0, 1, 0))
   go.set_position(pos + d * self.speed * dt)

   if self.target_id then
      self.target_position = random_position_on_wall()
   end
   self.target_id = nil
end

function on_message(self, message_id, message, sender)
   if message_id == COLLISION_RESPONSE then
      if message.group == HITMAN then
         local my_pos = go.get_world_position()
         local other_pos = go.get_world_position(message.other_id)
         local distance_to_target = vmath.length(my_pos - self.target_position)
         local distance_to_collision = vmath.length(my_pos - other_pos)
         if distance_to_collision < distance_to_target or not self.target_id then
            self.target_position = other_pos
            self.target_id = message.other_id
         end
      end
   elseif message_id == CONTACT_POINT_RESPONSE then
      if message.group == WALL then
         go.set_position(go.get_position() + message.normal * message.distance)
         self.target_position = random_position_on_wall()
      end
   end
end
 
Цитата
Иван написал:
Мне в руки попал небольшой кусок кода
  1. Дело в том, что это только кусок кода непонятно от какой игры. Кроме того, неизвестно API следующих библиотек: go, vmath
  2. Данный сайт - предназначен для трейдеров, пытающихся программировать на языке QLUA (не путать с LUA) - для биржевого терминала QUIK компании Arqa Technologies.

Таким образом,
в двух словах: Вы - ошиблись форумом или...
Вам следует задать Ваши вопросы на форуме поддержки Вашей игры.
 
Цитата
тот самый написал:
Вам следует задать Ваши вопросы на форуме поддержки Вашей игры.
Скорей всего... Вам - сюда:
форум: http://forum.defold.com/
API (описание функций): http://www.defold.com/ref/vmath/
Страницы: 1
Читают тему
Наверх