Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 22.12.2006, 17:56   #1
Тренсфер
 
Сообщений: n/a
Простейшая бродилка

Здравствуйте! Пожалуйста помогите написать простейшую бродилку на MP (типа марио на денди). Я хорошо знаю паскаль, но не догоняю -как сделать перемещение камеры вслед за игроком и препятствия которые можно разбивать, а так же монстров и "выстрелы" игрока. Возможно я прошу мгого, но я просто не могу представить этого на загружаемой карте. Я читал все темы, но такого не нашёл.PS буду рад любому коду и исходнику. Заранее спасибо.
 
Ответить с цитированием
Старый 22.12.2006, 18:03   #2
Chip
ПроЭктировщик
 
Регистрация: 20.10.2006
Сообщений: 102
Написано одно полезное сообщение
Re: Простейшая бродилка

Создай проект и кинь туда этот код , я думаю дальше можешь сам продолжить

program Ball;
var
img : image;
x,y,key : integer;
begin
img:=loadimage('/icon.png'); //загрузить изображение
setcolor(255,255,0); //установить цвет фона (R,G,
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.
(Offline)
 
Ответить с цитированием
Старый 22.12.2006, 18:20   #3
Тренсфер
 
Сообщений: n/a
Re: Простейшая бродилка

Спасибо, но я делал подобное. Меня интересуют препятстивия которые можно загрузить с карты, чтобы не пропивывать каждое в программе вручную, а так же то что я описал выше. Ещё раз спасибо, но я знаю как реализовать само передвежение и гравитацию.
Ещё вопрос. Я видел на форуме реализацию 3D моделей, но можно ли реализовать на MP 3D игру. Памню в джаве есть такая айпи и если подключить библеотеку с ней ...
 
Ответить с цитированием
Старый 22.12.2006, 18:23   #4
Chip
ПроЭктировщик
 
Регистрация: 20.10.2006
Сообщений: 102
Написано одно полезное сообщение
Re: Простейшая бродилка

Ну тогда используй GAME API , там можно все реализовать , кроме 3D.
(Offline)
 
Ответить с цитированием
Старый 23.12.2006, 14:48   #5
IVenoMI
Знающий
 
Регистрация: 10.08.2006
Сообщений: 254
Написано 3 полезных сообщений
(для 3 пользователей)
Re: Простейшая бродилка

Попробовал расписать пример по всем приведенным тобой запросам - получается, что я сам бродилку написал...
(Offline)
 
Ответить с цитированием
Старый 28.12.2006, 15:15   #6
Тренсфер
 
Сообщений: n/a
Re: Простейшая бродилка

Я буду рад даже небольшому кусочку кода...
 
Ответить с цитированием
Старый 28.12.2006, 23:42   #7
IVenoMI
Знающий
 
Регистрация: 10.08.2006
Сообщений: 254
Написано 3 полезных сообщений
(для 3 пользователей)
Re: Простейшая бродилка

Если я тебе дам весь свой код - не научишся сам...

Спрашивай конкретно, какие моменты интересуют?..
(Offline)
 
Ответить с цитированием
Старый 29.12.2006, 15:29   #8
Тренсфер
 
Сообщений: n/a
Re: Простейшая бродилка

Меня интересует только перемещение экрана вслед за игроком (как во всех бродилках) и сдерживающие препятствия (стены). Остальное (загрузка карты и монстров, интеллект) я сам легко заделаю.
 
Ответить с цитированием
Старый 30.12.2006, 02:12   #9
IVenoMI
Знающий
 
Регистрация: 10.08.2006
Сообщений: 254
Написано 3 полезных сообщений
(для 3 пользователей)
Re: Простейшая бродилка

Препятствия легко реализуются с помощью Game библиотеки уважаемого piligrima... Используй функцию int collides_with(int idx, int sprite,int pixelLevel) из библиотеки lib_sprite...

Что касается камеры - попробуй седующим образом :

Создай массив объектов карты, присвой каждому свой спрайт... Каждый объект иееет координаты относительно левого ВЕРХНЕГО угла карты, точно такие же координаты имеет игрок...

Теперь в главном цикле прорисовывай только те спрайты, которы имеют координаты +/- определенная величина относительно игрока...
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mark Castle (28.10.2008)
Старый 30.12.2006, 11:24   #10
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
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.
Т.е. левый верхний угол отображаемой части игрового поля настраивается.
(Offline)
 
Ответить с цитированием
Старый 30.12.2006, 13:14   #11
IVenoMI
Знающий
 
Регистрация: 10.08.2006
Сообщений: 254
Написано 3 полезных сообщений
(для 3 пользователей)
Re: Простейшая бродилка

Сообщение от pilgrim
Т.е. левый верхний угол отображаемой части игрового поля настраивается.
Да, пардон, ошибся...
(Offline)
 
Ответить с цитированием
Старый 03.01.2007, 17:53   #12
Тренсфер
 
Сообщений: n/a
Re: Простейшая бродилка

А как их использовать set_position ? Дайте справку пожалуйста.
 
Ответить с цитированием
Старый 04.01.2007, 10:34   #13
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Re: Простейшая бродилка

все игровое поле имеет размер, допустим 100 на 100, но на экране показывается кусок 20 на 20. этой функцией указывается, где будет расположена верхняя левая точка экрана на игровом поле, т.е. какая его часть будет видна на экране.
(Offline)
 
Ответить с цитированием
Старый 04.01.2007, 12:58   #14
Тренсфер
 
Сообщений: n/a
Re: Простейшая бродилка

а int collides_with ? И почему при компиляции программа так часто вылетает в виндовс если используешь какой нибудь uses ?
мне удалось реализовать препятствия без дополнительных библиотек, но этот способ подходит только для квадратных препятствий и очень тормозит...
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
sasha_peleng (10.11.2008)
Старый 05.01.2007, 09:40   #15
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Re: Простейшая бродилка

int collides_with проверяет соприкосновение спрайта с окружением. т.е. проверка столкновений
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
простейшая задачка может стоить столько нервов ламеру, то биш мне...(С-Программирование) PoZiTiFF C++ 4 24.11.2009 00:35
Обычная бродилка KAK? TAK! Проекты на MidletPascal 34 25.05.2009 09:23
Бродилка demon112 MidletPascal 2 27.03.2009 10:14


Часовой пояс GMT +4, время: 00:46.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com