| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование игр, графики и искусственного интеллекта > Смещение экрана |
| Автор: Vladimir13 14.12.2004, 08:19 |
| как можно двигать экран при перемещении на нем героя, как, например, в Штырлице. |
| Автор: chipset 14.12.2004, 15:59 |
| Смещать все обьекты при рисовании.. |
| Автор: Vladimir13 14.12.2004, 18:02 |
| а если одна сцена, но по ней можно перемещаться? Я понимаю, что надо связать с полосой прокрутки, но размер Image ограничен?! Как быть? |
| Автор: chipset 15.12.2004, 02:17 |
| Не понял вопроса.. Персонаж - обьект, он не смещается.. Когда ты нажимаешь жопустим "ВПРАВО" увеличивается переменная на которую пространство сдвигается. Персонаж стоит на месте. |
| Автор: En_t_end 15.12.2004, 06:41 |
| chipset Нет, так делают ленивые люди На самом деле Vladimir13 имел в виду, что по-мимо сдвига всей картинки влево-вправо, персонаж может перемещаться и по той области, которую мы сейчас видим... То есть движение в движении |
| Автор: Ptica 15.12.2004, 10:20 | ||
...почерпните некоторые идеи:
К этому еще прилагался рисунок 'PanoramB.Bmp', превосходивший по размеру окно просмотра. |
| Автор: Vladimir13 16.12.2004, 20:52 |
| поясняю: хочу сделать игру наподобе Штырлица ( надеюсь все видели я понял что можно сделать так: при нажатии ВПРАВО человечек поворачивается вправо и начинает движение на месте. В это время задний фон смещается ВЛЕВО. Экран разбивается на прямоугольники ( напр. по 5 пикселей ) и смещать эти прямоугольнички, причем самый правый, который не помещается при движении - удалить, а самый левый - создать. Идея хорошая, но один вопрос: как это сделать? ( т.е. как я догадываюсь, вопрос - реально ли это?) |
| Автор: Ptica 17.12.2004, 13:12 |
| Для программиста все реально! Я делал так (правда, у меня не было плавного движения по локации, а было походовое перемещение по карте, разбитой на клетки): Есть большая карта (скажем, 100х100 клеток). Есть некоторое окно просмотра (скажем, 10 на 10). И есть координаты той клетки карты, которую в данный момент нужно выводить в левом верхнем углу окна просмотра. Попробую пояснить: допустим, сейчас в левом верхнем углу окна просмотра выведена клетка карты с координатами (5,5). Это значит, что всего в окне должны быть выведены клетки карты из прямоугольника (5,5)-(14,14). Карта у меня хранится в массиве, при этом различные разновидности клеток закодированы числами. Я пробегаюсь в цикле по интересующей меня части массива и в зависимости от кодов клеток вывожу соотвествующие маленькие изображения. Для вывода можно просто использовать Canvas.Draw. Теперь я хочу сместиться на клетку влево. Это значит, что теперь мне нужно вывести часть карты, соответствующей прямоугольнику (4,5)-(13,14). (Будем считать, что первая координата - горизонтальная). Таким образом, основной цикл выглядит так: 1. Выясняем направление движения 2. Определяем, какую часть карты будем выводить 3. Выводим кусок карты в окно просмотра 4. Выводим персонажа А вообще поищите в Инете "программирование игр Delphi". Кое-что да найдете. P.S. Приятно встретить человека, который пишет "хочу сделать игру" и при этом задает конкретные осмысленные вопросы. |
| Автор: Vladimir13 18.12.2004, 10:41 |
| так это понятно. В общем, я начал, когда закончу - выложу общую идею создания квестов. |