Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2013, 21:09   #1
cashmail
Форумчанин
 
Регистрация: 23.06.2011
Сообщений: 201
Восклицание 2D стратегия, юнит приклеился к камере

Здравствуйте, решил попробывать сделать 2D стратегия, типо warcraft
Нашел на форуме исходник загрузки карты из файла, сделал вывод карты!
Если карта невходит в экран, сделал прокрутку (как в обычных стратегиях). Сделал постройку барака, но вот если прокрутить карту вниз и построить там барак, он подымается вверх

Еще сделал передвижение юнита, но если карту прокрутить вниз, он летит вместье с камерой!

Прикладываю исходник, как мне сделать, чтобы юнит не летал за камерой и чтобы бараки нормально строились?
Вложения
Тип файла: rar game source.rar (19.4 Кб, 37 просмотров)
cashmail вне форума Ответить с цитированием
Старый 08.01.2013, 02:52   #2
Odinok
Пользователь
 
Аватар для Odinok
 
Регистрация: 08.03.2011
Сообщений: 91
По умолчанию

Цитата:
Сообщение от cashmail Посмотреть сообщение

Прикладываю исходник, как мне сделать, чтобы юнит не летал за камерой и чтобы бараки нормально строились?
Не возможности откомпилировать, но думаю догадываюсь что за проблема с бараками.Выложи ехе файл

А и вот
Код:
// рисуем в буфере кадра персонажа в нужном месте
  Buf.Canvas.Draw( Pers.PosX*Rax                       // положение по-X
                  + Pers.MoveX                         // смещение по-X
                  + Round(Abs(Rax-Pers.TexWidth)/2)    // центрирование по-X
                  , Pers.PosY*Ray                      // положение по-Y
                  + Pers.MoveY                         // смещение по-Y
                  + Round(Abs(Ray-Pers.TexHeight)/2)   // центрирование по-Y
                  , PersAnimTex);
у тебя тут учитывается скролл, то есть при увеличение значения скролла карты персонаж смещается в обратную сторону... Эмм короче надо откомпилированный файл.
Всё будет так, как должно было быть, даже, если будет наоборот.
Odinok вне форума Ответить с цитированием
Старый 08.01.2013, 11:14   #3
cashmail
Форумчанин
 
Регистрация: 23.06.2011
Сообщений: 201
По умолчанию

Хмм, у меня все нормально компилируется!
Вот exe
Вложения
Тип файла: rar game.rar (160.0 Кб, 21 просмотров)
cashmail вне форума Ответить с цитированием
Старый 08.01.2013, 17:42   #4
Odinok
Пользователь
 
Аватар для Odinok
 
Регистрация: 08.03.2011
Сообщений: 91
По умолчанию

Цитата:
Сообщение от cashmail Посмотреть сообщение
Хмм, у меня все нормально компилируется!
Вот exe
у меня нет возможности откомпилировать

у тебя при движение человека, не где нет привязки к сдвигу карты. и при отрисовки человека у тебя тоже не учитывается сдвиг карты. Должны еще участвовать вот эти переменные cameray camerax
Код:
/движение персонажа
  if Pers.PosX <> Pers.PointX then
    begin
      if Pers.PointX > Pers.PosX then Pers.DispX:=1;
      if Pers.PointX < Pers.PosX then Pers.DispX:=-1;
      if (Pers.MoveX > (Ray-1)) or (Pers.MoveX < (1-Ray)) then
        begin
          Pers.MoveX:=0;
          Pers.PosX:=Pers.PosX+Pers.DispX;

        end;
      Pers.MoveX:=Pers.MoveX+Pers.DispX;
    end
  else Pers.MoveX:=0;

  if Pers.PosY <> Pers.PointY then
    begin
      if Pers.PointY > Pers.PosY then Pers.DispY:=1;
      if Pers.PointY < Pers.PosY then Pers.DispY:=-1;
      if (Pers.MoveY > (Ray-1)) or (Pers.MoveY < (1-Ray)) then
        begin
          Pers.MoveY:=0;
          Pers.PosY:=Pers.PosY+Pers.DispY;

        end;
      Pers.MoveY:=Pers.MoveY+Pers.DispY;
    end
  else Pers.MoveY:=0;
Всё будет так, как должно было быть, даже, если будет наоборот.
Odinok вне форума Ответить с цитированием
Старый 08.01.2013, 20:44   #5
cashmail
Форумчанин
 
Регистрация: 23.06.2011
Сообщений: 201
По умолчанию

А можно примерчик?)) Я не могу придумать, как)
cashmail вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
юнит Вовик-вовик Помощь студентам 3 11.01.2012 02:10
ЮНИТ Вовик-вовик Помощь студентам 1 10.01.2012 23:30
юнит к на паскале Денис999 Помощь студентам 1 09.12.2010 13:41
Объединение всех форм в 1 юнит Diamon Общие вопросы Delphi 8 04.12.2009 19:23