|
Основной форум Сюда все проблемы связанные с программированием. |
25.08.2010, 06:55
|
#1
|
Нуждающийся
Регистрация: 16.05.2010
Сообщений: 50
Написано 2 полезных сообщений (для 2 пользователей)
|
Как в scroll map, толькл без либ...
Привет всем! Как сделать так: мидлете курсором "добавить" точку, и что бы герой к ней шёл (как в примере scrollmap) только без либ
__________________
Работаю с Delphi 7: HTML редактор- CrownHTML
|
(Offline)
|
|
25.08.2010, 09:57
|
#2
|
Знающий
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений (для 32 пользователей)
|
Ответ: Как в scroll map, толькл без либ...
Юзай скролл мар
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
|
(Offline)
|
|
25.08.2010, 13:27
|
#3
|
Нуждающийся
Регистрация: 26.12.2008
Сообщений: 57
Написано 22 полезных сообщений (для 28 пользователей)
|
Ответ: Как в scroll map, толькл без либ...
Как я понял задача сводится к поиску кратчайшего пути. Начни отсюда
http://forum.boolean.name/showthread...%E F%F3%F2%E8
а дальше гугл в помощь.
|
(Offline)
|
|
25.08.2010, 15:06
|
#4
|
Нуждающийся
Регистрация: 16.05.2010
Сообщений: 50
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Как в scroll map, толькл без либ...
нет, не совсем но спасибо пригодится))
мне бы нужно сделать так, как реализовано в примере scroll map...
или проще сказать "двигать" героя не клавишами на цифр. клавиатуре, а ставить метку на карте, и чтобы герой к ней пришёл (примерно как в Фоллауте)
__________________
Работаю с Delphi 7: HTML редактор- CrownHTML
|
(Offline)
|
|
25.08.2010, 16:42
|
#5
|
ПроЭктировщик
Регистрация: 31.01.2010
Адрес: Россия, респ. Башкортостан, г. Бирск
Сообщений: 137
Написано 12 полезных сообщений (для 17 пользователей)
|
Ответ: Как в scroll map, толькл без либ...
А что уже имеется?
Собственно в этом нет особых проблем, если тебе нужно, чтоб он шел напрямую(выбор направления и смещение с анимацией), а если нужно чтоб он "ходил с умом", то могу набросать примерчик(если найду свободное время в этом чёртовом будильнике Ж( ).
|
(Offline)
|
|
26.08.2010, 06:15
|
#6
|
Нуждающийся
Регистрация: 16.05.2010
Сообщений: 50
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Как в scroll map, толькл без либ...
ну можно) а что за будильничек?
__________________
Работаю с Delphi 7: HTML редактор- CrownHTML
|
(Offline)
|
|
26.08.2010, 09:17
|
#7
|
Разработчик
Регистрация: 24.11.2008
Адрес: UA
Сообщений: 504
Написано 110 полезных сообщений (для 225 пользователей)
|
Ответ: Как в scroll map, толькл без либ...
если я правильно понял IvanNes, то мне тоже интересно узнать как сделать, чтобы герой(G) ходил не только по горизонтали (1;H), вертикали (1;V) и диагонали (1;D), а напрямую к заданой точке (2;A[, B, C, D]) !?..
__________________
Уважай собеседника, а лучше подари ему +
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.08.2010, 05:36
|
#8
|
Нуждающийся
Регистрация: 16.05.2010
Сообщений: 50
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Как в scroll map, толькл без либ...
да. вот это нужно мне))
__________________
Работаю с Delphi 7: HTML редактор- CrownHTML
|
(Offline)
|
|
27.08.2010, 08:43
|
#9
|
Нуждающийся
Регистрация: 26.12.2008
Сообщений: 57
Написано 22 полезных сообщений (для 28 пользователей)
|
Ответ: Как в scroll map, толькл без либ...
Если надо из точки 0,0 перейти в 100,15 то каждый раз когда к х добавляем 1 к у добавляем 15/100=.15
конечно х и у не целые числа. При выводе на экран округлятся.
В общем виде примерно так: из новых координат вычитаем старые. Находим что больше х или у. Делим меньшее на большее. Получившееся надо добавлять к меньшей координате. К большей добавляем 1 при каждом увеличении.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
31.08.2010, 03:25
|
#10
|
ПроЭктировщик
Регистрация: 31.01.2010
Адрес: Россия, респ. Башкортостан, г. Бирск
Сообщений: 137
Написано 12 полезных сообщений (для 17 пользователей)
|
Ответ: Как в scroll map, толькл без либ...
12121 Можно поправлю: сначала надо узнать длину линии, разделить её на длину шага и получить кол-во шагов, а уж потом с каждым шагом к х добавляем х2/у2, а к у у2/х2. и лучше х и у присваивать только сами округления, а вычисления проводить на других переменных.
Но так как IvanNes просил как в fallout я и буду делать как в fallout. Ведь если использовать 6-ти угольник, а не квадрат переход плавнее будет.
На рисунке показанно как должны считаться координаты. Хотя там немного неправильно намалявил я. Координата (x,y) это середина 6-ти угольника. Если брать одну клетку за 10 px, то выше упомянутый шаг будет 20(проверил опытным путём). Если найдёшь способ вычислить координату выбранной точки с ачалом координат в середине стартовой ячейки, то я смогу сделать процедуру получше.
Вот процедура:
procedure way( kx1,ky1 : integer; // координаты стартовой ячейки, не в пикселях kx2,ky2 : integer; // координаты конечной ячейки ); var px1,px2,py1,py2 : integer // кооординаты середин ячеек, ценрт равен px1-20 и py1-10 linlen,steps_count : integer; // длина мнимой линии и количество шагов i : integer; rx,ry : real // ну промежуточные переменные. Не смей их удалять, иначе пойдёт град ошибок и несовпадений >>:( begin px1:=20; py1:=10; px2:=(kx2-kx1)*30; py2:=(ky2-ky1)*10; linlen:=sqrt(sqr(py2-py1)+sqr(px2-px1)); // вычисляем длину мнимой линии между серединами двух ячеек в пропорции дл.яч./шир.яч.=40/20. Ничего менять тут не надо. steps_count:=trunc(linlen/20); // я не помню после того как процедура заканчивается переменные обнуляются? {*rx:=0; ry:=0;*} repeat rx:=rx+(px2-px1)/steps_count; ry:=ry+(py2-py1)/steps_count; kx1:=trunc(rx); ky1:=trunc(ry); gotoxy(kx1,ky1); // это процедура анимации твоего перса, т.е. сдвиг на одну ячейку. until (kx1=kx2) and (ky1=ky2); end;
Писал здесь. Не проверял(да и не на чем). Дерзай. Жду ответов.
Примеры ии тебе дали.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
31.08.2010, 07:39
|
#11
|
Разработчик
Регистрация: 24.11.2008
Адрес: UA
Сообщений: 504
Написано 110 полезных сообщений (для 225 пользователей)
|
Ответ: Как в scroll map, толькл без либ...
мне нужно было именно как в 12121..
и как я сам не допер?!.
__________________
Уважай собеседника, а лучше подари ему +
|
(Offline)
|
|
31.08.2010, 09:31
|
#12
|
Нуждающийся
Регистрация: 16.05.2010
Сообщений: 50
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Как в scroll map, толькл без либ...
ууу!! пасибо) ещё использовать её по назначению и будет супер)))
а как сделать чтобы свои координаты брались после нажатия клавиши 5??
__________________
Работаю с Delphi 7: HTML редактор- CrownHTML
|
(Offline)
|
|
31.08.2010, 10:42
|
#13
|
Нуждающийся
Регистрация: 26.12.2008
Сообщений: 57
Написано 22 полезных сообщений (для 28 пользователей)
|
Ответ: Как в scroll map, толькл без либ...
Так свои координаты ты и так знаешь.
|
(Offline)
|
|
31.08.2010, 11:18
|
#14
|
ПроЭктировщик
Регистрация: 31.01.2010
Адрес: Россия, респ. Башкортостан, г. Бирск
Сообщений: 137
Написано 12 полезных сообщений (для 17 пользователей)
|
Ответ: Как в scroll map, толькл без либ...
IvanNes
всмысле где стоишь или куда идти?
|
(Offline)
|
|
31.08.2010, 15:47
|
#15
|
Нуждающийся
Регистрация: 26.12.2008
Сообщений: 57
Написано 22 полезных сообщений (для 28 пользователей)
|
Ответ: Как в scroll map, толькл без либ...
Старые это где стоишь . Новые - куда идти.
рисуй на бумаге с координатами и разбирайся сам . Это лучше чем каждую мелочь спрашивать. И запомнишь на всю жизнь.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:25.
|