Четверг, 21 Ноября 2024, 16:30

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [358]
Статьи об общих понятиях связанных с созданием игр.
Программирование [83]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [147]
Статьи о программах для создания игр, уроки и описания.
Софт [43]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [17]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [167]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [132]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Сколько часов подряд вы обычно играете?
Всего ответов: 1446
Главная » Статьи » Создание игр

GameGuru. Перетаскивание объектов

GameGuru. Поднятие объектов
Для начала соберите сцену как показано на видео, чтобы можно было передвигать бочку, на которой висит скрипт, который напишем чуть позже. Для начала нам надо создать скрипт carry_object.lua и объявить локальную переменную cmode, отвечающую за состояние объекта: в воздухе или на земле.
Код
local cmode = 0

Далее мы берем обязательную проверку на дистанцию игрока до объекта и проверка состояния объекта. Это нужно для того, чтобы определить можно ли поднять объект. И там же сразу вставляем проверку на нажатие "E".
Код
PlrDist = GetPlayerDistance(e)
  if (PlrDist < 100) and (cmode == 0) then
  Prompt("Press E to carry")
  if g_KeyPressE == 1 then
  cmode = 1
  end
  end

Теперь, когда объект получил состояние в воздухе, то мы должны рассчитать его позицию и угол наклона, относительно игрока. Для этого смотрим сначала угол наклона игрока в радианах, а потом просто через синус(для X координаты) и косинус(для Z координаты) задаем новую позицию для бочки. Также добавляем коэффициент(70), показывающий степень удаление объекта от игрока.
Код
if (cmode == 1) then
  new_y = math.rad(g_PlayerAngY)
  prop_x = g_PlayerPosX + (math.sin(new_y) * 270)
  prop_z = g_PlayerPosZ + (math.cos(new_y) * 270)
  CollisionOff(e)
  SetPosition(e , prop_x, g_PlayerPosY , prop_z)
  RotateToCamera(e)
  CollisionOn(e)
  Prompt("Release E to drop")
  if g_KeyPressE == 1 then
  cmode = 0
  CollisionOff(e)
  SetPosition(e , prop_x , g_PlayerPosY , prop_z)
  CollisionOn(e)
  end
  end

Весь код:
Код
local cmode = 0
   
function carry_object_init(e)
  cmode = 0
end
   
function carry_object_main(e)
  PlrDist = GetPlayerDistance(e)
  if (PlrDist < 100) and (cmode == 0) then
  Prompt("Press E to carry")
  if g_KeyPressE == 1 then
  cmode = 1
  end
  end
  if (cmode == 1) then
  new_y = math.rad(g_PlayerAngY)
  prop_x = g_PlayerPosX + (math.sin(new_y) * 270)
  prop_z = g_PlayerPosZ + (math.cos(new_y) * 270)
  CollisionOff(e)
  SetPosition(e , prop_x, g_PlayerPosY , prop_z)
  RotateToCamera(e)
  CollisionOn(e)
  Prompt("Release E to drop")
  if g_KeyPressE == 1 then
  cmode = 0
  CollisionOff(e)
  SetPosition(e , prop_x , g_PlayerPosY , prop_z)
  CollisionOn(e)
  end
  end
end

Спасибо за внимание. С вами был Максим Епихин

Источник: КЛИК»
Категория: Создание игр | Добавил: mepihindeveloper (27 Декабря 2015) | Автор: Максим Епихин
Просмотров: 5888 | Рейтинг: 4.8/5 |
Теги: скачать, купить, уроки, the easy game maker, на русском, gameguru, для начинающих, обзор, обзор интерфейса, сообщество
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «GameGuru. Перетаскивание объектов», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • XtremeWorlds
  • Luxinia
  • SoftPixel Engine
  • NetGore
  • PlayCanvas
  • ORTS
  • GINCS Studio
  • 3DSTATE Engine
  • Impact
  • Mortal Szombat
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг