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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2009, 14:00   #51
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Когда жмешь на клавишу он едет секунды 2 потом опять начинает тормозить.
Shadow_1329 вне форума Ответить с цитированием
Старый 29.05.2009, 14:36   #52
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Я убрал прорисовку карты и торможение исчезло.Следовательно все дело в Canvas'е.
Вадим Буренков вне форума Ответить с цитированием
Старый 29.05.2009, 15:35   #53
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Невканывает перемещение. Танк не хочет останавливаться там где я тыкнул мышкой! Он проезжает мимо(гад!), а когдая тыкаю на него он останавливается!
Shadow_1329 вне форума Ответить с цитированием
Старый 29.05.2009, 15:50   #54
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Скорее всего дело в этом:
К примеру танк имеет координаты 100,100 и скорость 2. Представим ты ткнул мышью, например в координаты 121,100. Танк едет пока не доедет до координат 121,100, то есть он никогда не приедет и будет ехать вечно(это арифметическая прогрессия с разностью 2, число 121 не входит в нее).
Вадим Буренков вне форума Ответить с цитированием
Старый 29.05.2009, 16:07   #55
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Я поставил проверку не через = а через > или <. Но все равно нифига!
Shadow_1329 вне форума Ответить с цитированием
Старый 29.05.2009, 16:45   #56
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от Shadow_1329 Посмотреть сообщение
Я поставил проверку не через = а через > или <. Но все равно нифига!
Именно по этому я всегда предлагал использовать систему "поинтов", мышь на экране интерпретирует координаты курсора в координаты клетки карты с некоторыми размерами, т.е. нажав на экране в код передается координата в массиве, а юнит сам идет/едет в эту координату и останавливается где нужно, сам выбирает направление, изменяет его когда нужно. Если "тыкнуть" в другое место пока юнит передвигается, то он тут же изменит направление, примет новый путь. В теме "Уроки по созданию игр для новичков" есть пример с исходниками, сейчас найду.

В теме "Уроки по созданию игр для новичков" пост #176
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его

Последний раз редактировалось Beermonza; 29.05.2009 в 16:48.
Beermonza вне форума Ответить с цитированием
Старый 30.05.2009, 16:16   #57
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Столкнулся с такой проблемой. Как сделать IntToStr(c) только не для integer(var c:integer) а для char(var c:char)? Все поисковики молчат(чуть в пол их не вкатал)!
Shadow_1329 вне форума Ответить с цитированием
Старый 30.05.2009, 16:55   #58
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Укажи код, где тебе это надо сделать.
Вадим Буренков вне форума Ответить с цитированием
Старый 30.05.2009, 17:12   #59
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Код:
function Collision(c:char): boolean;
begin
buf.Canvas.Textout(0,20,int(char(c));
For i:=1 to MaxRusTanks do
  Result:=False;
  if ((map[Rt[i].Ux+50,Rt[i].Uy+50]='c') or (map[Rt[i].Ux,Rt[i].Uy]='c')) then
     Result:=True;
end;

Последний раз редактировалось Beermonza; 02.06.2009 в 16:35.
Shadow_1329 вне форума Ответить с цитированием
Старый 30.05.2009, 17:18   #60
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Для вывода на экран данные Char не нужно переводить. Так и пишешь:

Код:
var
c: char;
.............
с:='a';
.............
buf.Canvas.Textout(0,20,c);
//на экране появится буква 'a'.
Вадим Буренков вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создаю "тестирующую систему" для проверки задач. Программисты, нужна ваша помощь! alexfmf Помощь студентам 12 30.04.2009 20:19
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49