Приветствую Вас Гость | RSSГлавная | Вопрос связанный с Lua - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Вопрос связанный с Lua
ximximikДата: Суббота, 01.01.2011, 14:20 | Сообщение # 1
Краб
Группа: Проверенные
Сообщений: 247
Награды: 27  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Итак, имеем задачу. Известны координаты некой точки. Точка находится над землей, у самого верха карты. Как только луч из этой точки, опущенный перпендикулярно земле, пересекает её, нужно записать в переменную координаты точки пересечения.
Делается вроде как с Cast***Ray. Но я не знаю каким именно. Или MovePointToGround. Прошу помочь.
 
Mad_AlexДата: Суббота, 01.01.2011, 15:06 | Сообщение # 2
Краб
Группа: Главный Администратор
Сообщений: 735
Награды: 32  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Цикл for с функцией CastObstacleRay в теле цикла.
 
ximximikДата: Суббота, 01.01.2011, 15:20 | Сообщение # 3
Краб
Группа: Проверенные
Сообщений: 247
Награды: 27  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Спасибо, но я обошелся и без цикла.

Сообщение отредактировал ximximik - Суббота, 01.01.2011, 15:38
 
RaseriДата: Суббота, 01.01.2011, 15:52 | Сообщение # 4
Краб
Группа: Добрый Модератор
Сообщений: 208
Награды: 18  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Так написал бы, как задачу решил =\
В общем, вот:
Code
local vectortoactor = actor.Pos - enemypos; -- тут понятно, в общем, вектор до вражеского актора
if vectortoactor.Magnitude < 1500 then -- если расстояние до него меньше этого
   local startpos = enemypos + Vector(vectortoactor.X / vectortoactor.Magnitude * 15 , vectortoactor.Y / vectortoactor.Magnitude * 15); -- хитрый матан
   local k = SceneMan:CastMORay(startpos , vectortoactor , 0 , 0 , false , 4); -- собственно, нужная функция
   local thingie = MovableMan:GetMOFromID(k); -- с имеющегося ИД-шника имеем объект
   if thingie ~= nil then -- если объект вообще существует
    local l = MovableMan:GetMOFromID(thingie.RootID); -- ищем, чему принадлежит этот объект
    if l.PresetName == 'Dummy' then -- в данном случае, если дамми, то тогда
     <чето-там вобщем делаем>
    end
   end
end

Это так, в более общем виде.

 
ximximikДата: Суббота, 01.01.2011, 15:58 | Сообщение # 5
Краб
Группа: Проверенные
Сообщений: 247
Награды: 27  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Dantalion13, Ууу, как сложно. Не, у меня проще получилось.

Добавлено (01.01.2011, 15:58)
---------------------------------------------
Можно сказать, что я неточно выразился. Мне надо было узнать, если препятствия над актором сверху (земля, корабли). Для этого мне и нужна была точка пересечения с землей. Но я проще сделал. Но тоже используя CastObstacleRay .

 
RaseriДата: Суббота, 01.01.2011, 16:19 | Сообщение # 6
Краб
Группа: Добрый Модератор
Сообщений: 208
Награды: 18  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Так напиши свой вариант =)
Другим людям это полезно будет =)
Да и мне интересно ^^
 
ximximikДата: Суббота, 01.01.2011, 16:27 | Сообщение # 7
Краб
Группа: Проверенные
Сообщений: 247
Награды: 27  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Code

   self.bx = actor.Pos.X;
   self.by = actor.Pos.Y;
   self.xy = SceneMan:CastObstacleRay(Vector(self.bx, 0), Vector(0, self.by), self.vector1, self.vector2, actor.ID, 0, 1);

В итоге этого кода, если над объектом ничего нет, то self.vector2 укажет почти на него (несколько сотых неточности). Если есть, то self.vector2.Y будет меньше self.by.


Сообщение отредактировал ximximik - Суббота, 01.01.2011, 16:28
 
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Последние темы Читаемые темы Последние зарегистрированные пользователи
"Jupiter" Inc. [degtyar02]

CC ЖИВ! [Думми1]

Флудильня! [gjrfytn]

Песенки или музыка. [puksus]

Command & Conquer [alexgamer0092]

Little Armory [gjrfytn]

Corporation of Improbable Researches v0.7.5 [alexgamer0092]

Введение в моддинг. [troller]

Выход 24 билда. [puksus]

BAW [garckuschavictor2016]

[1]>Флудильня! [2986]

[2]>Свалка арта. [342]

[3]>Фан-арт по Cortex Command [301]

[4]>Песенки или музыка. [242]

[5]>Elzirs [178]

[6]>Russian Combat Small Arms {B24-B27} [174]

[7]>[UNITED TERRAN FORCES] [161]

[8]>Выход 24 билда. [131]

[9]>Techion Warpbot [79]

[10]>русская версия игры [60]

Dimasik [24.10.2024|21:30]

space-pay [09.10.2024|00:20]

tonyrose2003 [02.07.2024|06:03]

ktota12345678 [23.06.2024|20:14]

BlackShadow7755 [11.04.2024|22:28]

ghost4559 [28.03.2024|12:29]

rostislavpoarkov55 [21.03.2024|10:44]

dawidponomaryow [08.03.2024|21:16]

nekoplay18 [31.01.2024|20:10]

Provv [19.10.2023|20:58]


Вверх
Русский Фан Сайт Cortex Command © 2024.