| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > Изучаю Асм на примере игр |
| Автор: Xshot1 11.9.2009, 21:29 |
| Занялся изучением асм под dos. Немного поднадоело копаться в учебных резидентах, решил попробовать сделать простенькие игрушки на Асме под dos. Я думаю все знают японскую игрульку "сокобан", так вот.... Вопрос в следующем- как реализовывается "толкание" ящика в данной игрульке. Допустим есть сам "грузчик" по адресу ...... , и есть "ящик" по другому адресу..... Когда мы подошли к "ящику" вплотную, как обьяснить ПС что мы собираемся толкать данный байт в опрделённом направлении, а не затирать его символом "грузчика". Как реализовать такой алгоритм и какими командами. Логически, я так думаю, мы должны проверить находится ли "ящик" впереди,сзади,вверху или внизу, и если он находится по ходу движения нашего "грузчика", то по нажатию клавиши движения, ПС должен перерисовать данные байты ("ящика" и "грузчика") по новому адресу. Но как это реализовать программно и главное правильно... Работаю в текстовом режиме, пока удалось создать рабочий периметр, спрятал курсор, сделал передвижение смайлика "грузчика" по экрану при помощи клавиш управления, вывел тестовый символ "ящика". П.С. программирование раньше не занимался, знания асма по урокам Калашникова, Зубкова, Пирогова,Абеля (читаю).. Прошу помочь.... Далее по полному завршению в текстовом режиме игры, буду пробовать реализовать графический. и есчо один вопросик... как то в сети видел сайт буржуйский с рисунками персонажей из игр для создания покадровой анимации. Может у кого нибудь есть ссылочка, никак не могу найти... |
| Автор: Mikl_ 14.9.2009, 03:57 |
| Xshot1, анимацию в текстовом режиме? Смешно -- http://forum.vingrad.ru/forum/topic-261679.html пример анимированного движужегося человечка под DOS -- изучай создание графических приложений, http://www.wasm.ru/baixado.php?mode=src&id=72, gif-анимацию, проигрыш музыки и т.д. Сразу предупреждаю -- придется переходить на С/С++ или на любой другой ЯВУ, а на ассемблере делать только вставки |
| Автор: Xshot1 15.9.2009, 19:50 |
| спасибо, понял Игрульку написал, 2 уровня сделал, мало но всё же первая игрушка |
| Автор: Xshot1 20.9.2009, 21:31 |
| Возник такой вопрос. Как в текстовом режиме заменить стандартный символ "А" на произвольный символ, созданный пользователем? Допустим есть битовая карта символа к которой идёт обращение и дальнейшая отрисовка символа, а как сделать чтобы отрисовка происходила по моей карте и уже мой символ выводился на экран? Идея вот в чём. Запускаешь файл, на экране появляется рамка, не из стандартных символов, а из символов которые я перерисовал. если кто знает помогите,можно какой-нибудь примерчик. |
| Автор: Ипатьев 20.9.2009, 21:49 |
| для вдохновения |
| Автор: Xshot1 21.9.2009, 18:32 |
| спасибо, у меня точно также, только com и уровни взяты с тел. сименс а52 |
| Автор: Ипатьев 21.9.2009, 19:59 |
| ну тогда http://www.kiarchive.ru/pub/msdos/games/play/logic/pusher.tar.Z тут, как я понимаю, ответы на все вопросы есть |
| Автор: Xshot1 26.9.2009, 17:24 | ||||||
| Суть такая, написать вывод символа минуя int и таблицу векторов прерывания есть такой код
так вот почему то не происходит правильный переход по
хотя в "saved_int10" лежит адрес int 10 (в памяти, при cs=0700 и смещением "saved_int10" лежит DD такое же как при ds=0000 : 0040h (int10)) при трассировки кода доходит до
и всё, прога вылетает помогите плз. |
| Автор: Goodwin98 26.9.2009, 21:47 |
| А у меня работает. |
| Автор: Xshot1 26.9.2009, 23:11 |
| Goodwin98, ясно значит у меня проблемы с компиляцией, пробовал и masm-ом и эмулятором EMU8086. Подскажите чем собирали и каким способом. |
| Автор: Goodwin98 26.9.2009, 23:46 | ||||
Собирал я масмом. В коде ничего особенно не менял, только строчку
и в
двоеточие убрал. |
| Автор: Xshot1 27.9.2009, 11:22 |
| Goodwin98, спасибо. По запарке двоеточие впихнул.. Долго над примером голову ломал и пропустил |