Помощь - Поиск - Пользователи - Календарь
Полная версия: Мышь и вопрос
Форум «Всё о Паскале» > Pascal, Object Pascal > Написание игр
Darker
Знатоки помогите спроблемкой:
1) мне нужна какая-нить ссылка где моно почитать про применение мыши в паскале 7.0;
2)у мя в игре сделано передвижение человека, но я не могу сделать так чтобы когда мой перс стреляет , то пуля должна лететь по траектории и в это же время должен передвигаться перс

помогите плиз....
klem4
В следующий раз сначала поиск и FAQ

FAQ : Мышь. Все о программировании мыши.

Удачи.
Ozzя
Обязательно прочти книгу

Секреты программирования игр
Авторы : А. Ла Мот, Д. Ратклифф, М. Семинаторе, Д. Тейлор
Издатель : "Питер", 1995

Она есть в электронном виде.
http://pmg.org.ru/gamedev/proggame.part1.rar
http://pmg.org.ru/gamedev/proggame.part2.rar

Большинство вопросов отпадет само собой
Darker
спс good.gif
volvo
Сюда тоже глянь:
А.Ламот: Компьютерные игры
Ozzя
volvo no1.gif
Там ссылки битые. Я поэтому и дал сслку на другой ресурс.

Ясно... Ту тему удалил...
Darker
книга хорошая, но большая(я ее конечно же прочту, но способ мне нужне на этой неделе,а то mega_chok.gif )!


так что мне хотябы идею(как реализовать сам додумаю)!
заранее спс!
volvo
Цитата
в игре сделано передвижение человека
Ну, это смотря как это самое передвижение реализовано. Хочешь - прикрепи исходники, или вышли в приват в архиве, попробую тебе помочь...
Darker
ПЕРЕДВИЖЕНИЕ:

repeat
{рисуется машинка}
readkey
{ в зависимости от нажатой кнопки идет изменение координат прорисовки машинки(вверх-изменение координат по оси У(у-5), вправо-изменение координат по оси Х(Х+5)) и т.п.}
until {условие}


вот так рис.

помогите плиззз.....
Дож
А {стирается машинка} не нужно?
Darker
да mega_chok.gif забыл написать......
Darker
мне надо ,чтоб в игре двигалась мышь и при нажатии ЛКМ паскаль мог бы считать координаты мыши! rolleyes.gif
Dark
что нибудь в этом духе...
Код

if (LBMPressed)
begin
x:=GetMouseX();
y:=GetMouseY();
end;

все названия зависят от конкретной реализации у тебя
Darker
тут же вопрос!

подойдет ли выше описаное для TURBO PASCAL 7.0(может мне нужен FREE PASCAL или еще что?)

спрашиваю потому что в справке(F1) он не знает такой команды....
volvo
Все вышеописанное как раз и подойдет ТОЛЬКО для Турбо-Паскаля. В FPC (равно как и в других 32-битных компиляторах) вообще не рекомендуется использовать прерывания, да и поддержка мыши там встроенная...

А не находит в Хелпе - потому, что в том фрагменте, который Дарк тебе привел, надо использовать собственноручно написанные (как их делать - тебе дали ссылку, где все разъясняется), а не встроенные процедуры/функции/переменные...

Если ты будешь пользоваться теми же именами, которые дал Altair, то выглядеть это будет примерно так (цикл сделал "вечным" только для примера):

InitMouse;
while true do begin

was_pressed := 0;

was_pressed := ButtonPressed; { какая кнопка нажата? (0 - если никакая не нажата) }
if was_pressed > 0 then begin { было ли что-то нажато? }

{ да, какая-то кнопка мыши сработала }
GetMouseXY(pos_x, pos_y); { вот ты и получил координаты }
end;

{ остальные действия в цикле игры }

end;
Dark
Цитата
А не находит в Хелпе - потому, что в том фрагменте, который Дарк тебе привел, надо использовать собственноручно написанные (как их делать - тебе дали ссылку, где все разъясняется), а не встроенные процедуры/функции/переменные...




Volvo, прошу заметить что $33 прерывание в хелпе не документировано, равно как и модуль мыши ;) и даже если Darker будет искать то что скидывал Altair то в доках по паскалю он тоже ничего не найдет...
спасибо за внимание ;)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.