![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 25.06.2009
Сообщений: 163
|
![]()
Здравствуйте, тут возникла такая проблема. Я пытаюсь создать игру на Visual Basic 6, и возник вопрос, как создавать в ней игровое поле. Пытался создать массив Image заранее, то есть заранее известно количество клеток на поле (игра - бродилка). Но при дальнейшей работе выяснилось, что они очень сильно тормозят, например если нужно писать код, который двигает монстров по полю, то каждый раз приходится проверять, на какой клетке они стоят и только после этого двигать.
К слову сказать: у меня создано два поля, состоящих из клеток Image, одно поверх другого, так, что на первом из них находятся недвижущиеся текстуры, а на втором - текстуры монстров и самого игрока. То есть для того, чтобы подвинуть каждого монстра, компьютер сначала циклом проверяет, на какой клетке он находится, а затем двигает и переходит к следующей клетке. Что-то мне подсказывает, что так делать не очень правильно, и что я в корне ошибся еще в самом начале, создавая эти самые поля. Видимо, придется переписывать весь код заново, но не в этом дело: просто я не знаю даже самого принципа создания такого игрового поля - единственное, что пришло в голову - заранее создать более 1000 объектов Image, создать другие более 1000 объектов Image и расположить их друг на друге, чтобы образовать этим самым два поля. Кто знает принцип создания (правильного) игрового поля так, чтобы было заранее определено количество клеток, и его загрузки из файла, подскажите плз. Заранее спасибо. |
![]() |
![]() |
![]() |
#2 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Ох, дело с VB имел давно, перешел на Delphi, но не суть.
Вообще игровое поле - это не набор картинок, выстроенных на экране, игровое поле - это массив записей, одна из которых - растрового типа, хранит рисунок поверхности. Чтобы построить поле на экране, нужно создать цикл в цикле по-X и по-Y, в теле цикла производить наложение на битовый буфер кадра экрана (это подложка, на ней рисуем) кусочков, которые находятся в записях массива по адресу X,Y, с умножением положения картинок на их размер, ...логически вот так: Код:
Если вам не критично на каком языке писать игру, то советую перейти на Delphi, это очень легко, к тому же вы найдете примеров поясняющих принципы построения игр намного больше в темах раздела.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 25.06.2009
Сообщений: 163
|
![]()
Огрооооомнейшее спасибо за код - спасибо размером от моего дома до вашего и обратно. Попытаюсь разобраться.
Насчет перехода на Delphi - может и перейду когда, но вот только 30-40% игры уже написаны на VB6. Конечно, есть все-же способ совмещения частей игры, написанных на разных языках, но... Надо бы посмотреть, что такое этот Delphi, переписывать код, вероятно, все равно придется... А где можно Delphi скачать? Вроде слышал, что это от Pascal'я что-то, так с ним незнаком еще. |
![]() |
![]() |
![]() |
#4 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
У меня лицензионная копия Delphi 7, есть и привычный вариант тут: http://www.brothersoft.com/delphi-76437.html
Учебники тут: http://programmersforum.ru/showthread.php?t=14054
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 25.06.2009
Сообщений: 163
|
![]()
Извините, что опять поднял эту тему. Возник вопрос: а возможно ли с помощью такого метода создать что-нибудь стоящее или нет? И как осуществляется проверка на наличие стен?
|
![]() |
![]() |
![]() |
#6 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Так это базовый принцип, а как будете выполнять вывод графики это ваше личное дело, там есть резон задавать такой вопрос "стоящее или нет".
Советую почитать тему "Уроки по созданию игр для новичков", там есть примеры, есть материалы по созданию проходимости, ...много тем, где создают конкретные игры, есть исходники и технические материалы.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 05.01.2009
Сообщений: 130
|
![]() Цитата:
ну, и что что инерпритатор? по твоему это плохо?))))
В жизни нет reset'а, а жаль...
|
|
![]() |
![]() |
![]() |
#9 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Visual Basic для игр не годится, это обучающая программа изначально, для поделок.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#10 |
Заблокирован
Регистрация: 22.12.2010
Сообщений: 3
|
![]()
а будет ли польза от бейсика при изучении других языков?
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание поля Итого | Jadovi | Microsoft Office Access | 1 | 04.02.2009 15:54 |
Создание игрового сервера настольных игр! | kiling | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 1 | 14.01.2009 22:02 |
Создание игрового проекта | Medium | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 1 | 21.06.2008 21:31 |
Разделение игрового поля на сетку... | RKS | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 3 | 23.08.2007 21:04 |
Выбор игрового поля | Wolfgang | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 4 | 29.04.2007 07:42 |