Простейшая бродилка
Здравствуйте! Пожалуйста помогите написать простейшую бродилку на MP (типа марио на денди). Я хорошо знаю паскаль, но не догоняю -как сделать перемещение камеры вслед за игроком и препятствия которые можно разбивать, а так же монстров и "выстрелы" игрока. Возможно я прошу мгого, но я просто не могу представить этого на загружаемой карте. Я читал все темы, но такого не нашёл.PS буду рад любому коду и исходнику. Заранее спасибо.
|
Re: Простейшая бродилка
Создай проект и кинь туда этот код , я думаю дальше можешь сам продолжить
program Ball; var img : image; x,y,key : integer; begin img:=loadimage('/icon.png'); //загрузить изображение setcolor(255,255,0); //установить цвет фона (R,G,B) x:=((GetWidth/2)-(GetImageWidth(img)/2)); // центруем позицую изображения по горизонтали y:=((GetHeight/2)-(GetImageHeight(img)/2));// центруем позицую изображения по вертикали repeat key:=KeyToAction(GetKeyPressed); // читаем нажатие джойстика if key = GA_UP then y := y - 1; // смотрим какая клавиша нажата if key = GA_DOWN then y := y + 1; // изменяем оси х,у if key = GA_LEFT then x := x - 1; // в зависимости от нажатой клавиши if key = GA_RIGHT then x := x + 1; FillRect(0, 0, GetWidth, GetHeight); // заливка экрана ранее выбраным цветом DrawImage(img, x, y); // перерисовать изображение с новыми координатами Repaint; // вывести на экран until key = GA_FIRE; // если нажата кнопкп Fire то завершить end. |
Re: Простейшая бродилка
Спасибо, но я делал подобное. Меня интересуют препятстивия которые можно загрузить с карты, чтобы не пропивывать каждое в программе вручную, а так же то что я описал выше. Ещё раз спасибо, но я знаю как реализовать само передвежение и гравитацию.
Ещё вопрос. Я видел на форуме реализацию 3D моделей, но можно ли реализовать на MP 3D игру. Памню в джаве есть такая айпи и если подключить библеотеку с ней ... |
Re: Простейшая бродилка
Ну тогда используй GAME API , там можно все реализовать , кроме 3D.
|
Re: Простейшая бродилка
Попробовал расписать пример по всем приведенным тобой запросам - получается, что я сам бродилку написал...
|
Re: Простейшая бродилка
Я буду рад даже небольшому кусочку кода...
|
Re: Простейшая бродилка
Если я тебе дам весь свой код - не научишся сам...
Спрашивай конкретно, какие моменты интересуют?.. |
Re: Простейшая бродилка
Меня интересует только перемещение экрана вслед за игроком (как во всех бродилках) и сдерживающие препятствия (стены). Остальное (загрузка карты и монстров, интеллект) я сам легко заделаю.
|
Re: Простейшая бродилка
Препятствия легко реализуются с помощью Game библиотеки уважаемого piligrima... Используй функцию int collides_with(int idx, int sprite,int pixelLevel) из библиотеки lib_sprite...
Что касается камеры - попробуй седующим образом : Создай массив объектов карты, присвой каждому свой спрайт... Каждый объект иееет координаты относительно левого ВЕРХНЕГО угла карты, точно такие же координаты имеет игрок... Теперь в главном цикле прорисовывай только те спрайты, которы имеют координаты +/- определенная величина относительно игрока... |
Re: Простейшая бродилка
set_position(int x, int y) - Sets this Layer's position such that its upper-left corner is located at (x,y) in the painter's coordinate system.
Т.е. левый верхний угол отображаемой части игрового поля настраивается. |
Re: Простейшая бродилка
Цитата:
|
Re: Простейшая бродилка
А как их использовать set_position ? Дайте справку пожалуйста.
|
Re: Простейшая бродилка
все игровое поле имеет размер, допустим 100 на 100, но на экране показывается кусок 20 на 20. этой функцией указывается, где будет расположена верхняя левая точка экрана на игровом поле, т.е. какая его часть будет видна на экране.
|
Re: Простейшая бродилка
Вложений: 2
а int collides_with ? И почему при компиляции программа так часто вылетает в виндовс если используешь какой нибудь uses ?
мне удалось реализовать препятствия без дополнительных библиотек, но этот способ подходит только для квадратных препятствий и очень тормозит... |
Re: Простейшая бродилка
int collides_with проверяет соприкосновение спрайта с окружением. т.е. проверка столкновений
|
Часовой пояс GMT +4, время: 06:51. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot