Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2009, 16:59   #1
ZotaC
Форумчанин
 
Аватар для ZotaC
 
Регистрация: 25.06.2009
Сообщений: 163
Восклицание VB6 создание игрового поля

Здравствуйте, тут возникла такая проблема. Я пытаюсь создать игру на Visual Basic 6, и возник вопрос, как создавать в ней игровое поле. Пытался создать массив Image заранее, то есть заранее известно количество клеток на поле (игра - бродилка). Но при дальнейшей работе выяснилось, что они очень сильно тормозят, например если нужно писать код, который двигает монстров по полю, то каждый раз приходится проверять, на какой клетке они стоят и только после этого двигать.

К слову сказать: у меня создано два поля, состоящих из клеток Image, одно поверх другого, так, что на первом из них находятся недвижущиеся текстуры, а на втором - текстуры монстров и самого игрока. То есть для того, чтобы подвинуть каждого монстра, компьютер сначала циклом проверяет, на какой клетке он находится, а затем двигает и переходит к следующей клетке.

Что-то мне подсказывает, что так делать не очень правильно, и что я в корне ошибся еще в самом начале, создавая эти самые поля. Видимо, придется переписывать весь код заново, но не в этом дело: просто я не знаю даже самого принципа создания такого игрового поля - единственное, что пришло в голову - заранее создать более 1000 объектов Image, создать другие более 1000 объектов Image и расположить их друг на друге, чтобы образовать этим самым два поля. Кто знает принцип создания (правильного) игрового поля так, чтобы было заранее определено количество клеток, и его загрузки из файла, подскажите плз.

Заранее спасибо.
ZotaC вне форума Ответить с цитированием
Старый 25.06.2009, 17:24   #2
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Ох, дело с VB имел давно, перешел на Delphi, но не суть.
Вообще игровое поле - это не набор картинок, выстроенных на экране, игровое поле - это массив записей, одна из которых - растрового типа, хранит рисунок поверхности. Чтобы построить поле на экране, нужно создать цикл в цикле по-X и по-Y, в теле цикла производить наложение на битовый буфер кадра экрана (это подложка, на ней рисуем) кусочков, которые находятся в записях массива по адресу X,Y, с умножением положения картинок на их размер, ...логически вот так:

Код:
цикл Y = 1 до N
    цикл X = 1 до M
            Рисовать в буфер(X*'длина картинки', Y*'ширина картинки', массив[X,Y].битмап);
    конец
конец

Рисовать на экран(0,0, буфер)
Заполнение массива картинками идет вначале, т.е. при создании формы, или более сложным способом, через чтение файла карты и выбирая какие картинки поверхности есть в карте.

Если вам не критично на каком языке писать игру, то советую перейти на Delphi, это очень легко, к тому же вы найдете примеров поясняющих принципы построения игр намного больше в темах раздела.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 25.06.2009, 17:44   #3
ZotaC
Форумчанин
 
Аватар для ZotaC
 
Регистрация: 25.06.2009
Сообщений: 163
По умолчанию

Огрооооомнейшее спасибо за код - спасибо размером от моего дома до вашего и обратно. Попытаюсь разобраться.

Насчет перехода на Delphi - может и перейду когда, но вот только 30-40% игры уже написаны на VB6. Конечно, есть все-же способ совмещения частей игры, написанных на разных языках, но... Надо бы посмотреть, что такое этот Delphi, переписывать код, вероятно, все равно придется...

А где можно Delphi скачать? Вроде слышал, что это от Pascal'я что-то, так с ним незнаком еще.
ZotaC вне форума Ответить с цитированием
Старый 25.06.2009, 18:14   #4
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 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) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 29.06.2009, 17:56   #5
ZotaC
Форумчанин
 
Аватар для ZotaC
 
Регистрация: 25.06.2009
Сообщений: 163
По умолчанию

Извините, что опять поднял эту тему. Возник вопрос: а возможно ли с помощью такого метода создать что-нибудь стоящее или нет? И как осуществляется проверка на наличие стен?
ZotaC вне форума Ответить с цитированием
Старый 29.06.2009, 20:02   #6
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Так это базовый принцип, а как будете выполнять вывод графики это ваше личное дело, там есть резон задавать такой вопрос "стоящее или нет".
Советую почитать тему "Уроки по созданию игр для новичков", там есть примеры, есть материалы по созданию проходимости, ...много тем, где создают конкретные игры, есть исходники и технические материалы.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 02.07.2009, 14:14   #7
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

ZotaC
Забей на Visual Basic пищи лутчи на Delphi,
Visual Basic тормозной,приложения от него выполняет интерператор.
VintProg вне форума Ответить с цитированием
Старый 08.07.2009, 15:59   #8
Djem1991
Форумчанин
 
Аватар для Djem1991
 
Регистрация: 05.01.2009
Сообщений: 130
По умолчанию

Цитата:
Сообщение от VintProg Посмотреть сообщение
ZotaC
Забей на Visual Basic пищи лутчи на Delphi,
Visual Basic тормозной,приложения от него выполняет интерператор.
ммм..ну не сказал бы,что он тормозит, ты значит не компилировал,например, блокнот в с++ =)))

ну, и что что инерпритатор? по твоему это плохо?))))
В жизни нет reset'а, а жаль...
Djem1991 вне форума Ответить с цитированием
Старый 08.07.2009, 17:43   #9
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Visual Basic для игр не годится, это обучающая программа изначально, для поделок.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 23.12.2010, 22:01   #10
a1b2
Заблокирован
 
Регистрация: 22.12.2010
Сообщений: 3
По умолчанию

а будет ли польза от бейсика при изучении других языков?
a1b2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание поля Итого 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