![]() |
|
Модераторы: Poseidon |
![]()
|
|
| mego4el |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.9.2010 Репутация: нет Всего: нет |
Добрый день, бьюсь головой уже долго и никак не получается нормально сделать игровую карту.
1) у меня есть массив int m[43][16], это и есть карта, мне нужно прочитать из фаила матрицу, в которой нули и единицы, затем вывести ее на экран "ровно", в заданные координаты. вот с этим и начались проблемы(, у меня меню находится ближе к центру:
это каркас для меню, само меню находится по центру, печатается таким же по пиксельным способом. мне нужно вывести в этот каркас - мой массив из нулей и единиц, который был считан с фаила:
никак не получается вывести ровно под в этот каркас данный массив(, не могу разобраться в чем я допускаю ошибки..( 2)необходимо этот массив преобразовать из нулей и единиц в определенные символы, допустим нули - в пробелы, а единицы - решетки (аля стены и пути), затем вывести на экран, помогите пожалуйста! 3) как можно будет реализовать данные стены, что бы если обьект в них упирается, то он не двигался дальше (движение сделано с помощью стрелок)? |
||||
|
|||||
| t_gran |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 33 Всего: 37 |
Ну вот, по быстрому наклепал демку. Правда дохленькая, но должна помочь.
По существу, вы не верно выполнили декомпозицию задачи. Дело в том, что нельзя смешивать действие загрузки с выводом. К тому же вам нежны данные по вашей карте в дальнейшем. Поэтому, карту нужно сначала загрузить, а потом уже выводить. Вывод в заданной стартовой точке, я думаю, вам не составит труда. Там всё просто, в моей демке по этому поводу есть комментарий. Что касается второго вопроса, то это очень просто, преобразовать ASCII символ в цифровое его значение. 0 есть 48. Соответственно, чтобы получить число, нужно просто из номера символа вычесть 48. Но, поверьте мне, как человеку написавшему не одну игру, что если вы не будите делать редактор для ваших карт, то лучше вместо 0,1,2 и т.п. испольуйте реальные символы. Сравните два вида:
и
Что легче воспринимается? Ну и по последнему вопросу - это метод IsWall в моей демке.
![]() Это сообщение отредактировал(а) t_gran - 15.12.2011, 10:18 Присоединённый файл ( Кол-во скачиваний: 3 )
archive.7z 3,40 Kb-------------------- Я знаю, что ничего не знаю© Сократ ![]() |
||||||
|
|||||||
| mego4el |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.9.2010 Репутация: нет Всего: нет |
примного вам благодарен!!!!!!!
в общем во всем разобрался, кроме
компилятор не хочет преобразовывать char Cwall, cpassage в int: warning C4305: 'initializing' : truncation from 'const int' to 'const char' warning C4309: 'initializing' : truncation of constant value |
|||
|
||||
| mego4el |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.9.2010 Репутация: нет Всего: нет |
разобрался. char же принимает значения до 127.
попробовал сделать unsigned char. |
|||
|
||||
| mego4el |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.9.2010 Репутация: нет Всего: нет |
еще раз здравствуйте. пожалуйста помогите разобраться с методом isWall.
не получается его использовать практически(, подскажите как действовать? сделал для передвижения следующую функцию:
метод IsWall:
|
||||
|
|||||
| t_gran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 33 Всего: 37 |
Рабочая демка ниже Это сообщение отредактировал(а) t_gran - 19.12.2011, 10:33 Присоединённый файл ( Кол-во скачиваний: 3 )
archive.7z 5,15 Kb-------------------- Я знаю, что ничего не знаю© Сократ ![]() |
|||
|
||||
| mego4el |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.9.2010 Репутация: нет Всего: нет |
спасибо большое!!
не подскажите, как можно реализовать условие, при котором если нажать определенную стрелку, что бы обьект двигался по направлению стрелки, пока не упрется в стенку? |
|||
|
||||
| t_gran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 33 Всего: 37 |
mego4el, фигня вопрос, забирайте!
Это сообщение отредактировал(а) t_gran - 20.12.2011, 08:47 Присоединённый файл ( Кол-во скачиваний: 3 )
archive.7z 5,28 Kb-------------------- Я знаю, что ничего не знаю© Сократ ![]() |
|||
|
||||
| mego4el |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.9.2010 Репутация: нет Всего: нет |
огромное спасибо!
у меня еще маленький вопрос. как можно сделать определенный флажок, допустим конец лабиринта (выход), или просто какой-то символ в этом лабиринте, и если попадаешь (заходишь) в точку XY, где стоит этот символ (флажок), то уровень пройден, и сразу же загружается следующая карта. подскажите пожалуйста |
|||
|
||||
| mego4el |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.9.2010 Репутация: нет Всего: нет |
и еще маленький вопросик, как можно сделать таймер? допустим засекается при старте уровня 60 секунд, если за них не прошел до конца, то пишет гейм овер)?
|
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |