Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 2D-программирование

2D-программирование Вопросы, касающиеся двумерного программирования

Ответ
 
Опции темы
Старый 25.09.2010, 18:28   #1
gunjah
AnyKey`щик
 
Регистрация: 25.09.2010
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Несколько вопросов по програмированию в среде 2d

Начал писать свою игру, в жанре RPG с видом в верхней изометрии. То что уже сделано присоединяю к теме в файле .rar. Подскажите мне несколько деталей:

1: В примере есть карта, игрок и дерево на карте. Про то как делать колизии обьектов я знаю, но не могу просто придумать как сделать одну вещь. Надо чтобы игрок проходил то за деревом, то перед деревом, в зависимости находится он спереди этого обьекта или сзади. Но по скольку в Блице выведение всего на экран основанно на слоях то я не пойму как это реализовать, ведь чтобы добится данного эффекта надо динамически менять местами слоя? Смутно представляю что надо использовать инструкцию If? но как в данном моменте, не знаю...

2: Где я могу скачать детальные анимимаги персонажей, врагов, с анимацией в 8 направлениях? Искал искал, и нахожу одни не очень детальные картинки или картинки с 4 направлениями... Пока что над проектом работаю один, графика нет. Если есть ссылки на библиотеки других изображений (желательно в изометрии) - тоже кидайте. Имею в виду всякие там кустики, заборы, домики.

3: Пишу сейчас в Блиц3д - но прочитал что там какие то тормоза с 2д графикой, как с этим дела по подробней обстоят? Читал так же что в БлицМакс не так тормозит, это правда? (сам я тормозов не заметил)

4: Игра в жанре RPG, hack&slash - на подобие diablo 2, естественно со своими фишками, много чего уже продумано. Но для начала хочется создать 1 карту со всеми важными деталями: 1 NPC, игрок, несколько врагов, рандомная система дропа, GUI. Язык Блиц вообще для этого подходит? Или в основном платформеры?
Вложения
Тип файла: rar game.rar (163.6 Кб, 430 просмотров)
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 18:39   #2
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: Несколько вопросов по програмированию в среде 2d

1)Если игрок ближе к камере чем дерево, мы сначала рендерим игрока, потом рендерим дерево. Иначе рендерим дерево, потом игрока.
2)Помойки ресурсов http://wiki.yoyogames.com/index.php/...s/Free_Sprites
http://www.gamedev.net/community/for...opic_id=272386
3)Блицмакс кроме того что в десяток раз быстрее в плане 2д графики, он ещё и в десяток раз быстрее просчитывает логику
4)Блиц3д(как и Блицмакс) годится для создания чего угодно. И для изометрических Open-world RPG тоже.
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 18:54   #3
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Несколько вопросов по програмированию в среде 2d

ахххахаха, текстурка дерева нарисованая на текстуре равной размере карты. ахаха... это чтото новенькое
(сам я тормозов не заметил)
а чему там тормозить? трем текстурам?

наверно напишу ещё немножко. По поводу колизий.
Создаёт тип для обьектов. который будет содержать его позицию, размер, текстуру, которую рисовать.
При передвижении игрока проверяем сначала, не соприкаснётся ли он с каким либо из обьктов из нашего списка. если соприкосается тогда ограничиваем движение в сторону соприкасания.
текстура обькта должна содержать только сам обьект. а не куеву тучу пустого места.
По поводу отрисовки на заднем или на переднем плане. ну первое что приходит в голову - сортировать обьекты взависимости от позиции в отдельный список. и потом отрисовывать этот список
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 20:08   #4
gunjah
AnyKey`щик
 
Регистрация: 25.09.2010
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Несколько вопросов по програмированию в среде 2d

ахххахаха, текстурка дерева нарисованая на текстуре равной размере карты. ахаха... это чтото новенькое
ну какбе там 1 дерево просто для теста - это будет текстура "верхнего слоя" - тоесть деревья, дома, горы и т.д. Тоесть все обьекты "выше земли" и в зависимости от того должен быть игрок за ними или перед ними она будет менятся местами с текстурой игрока в очереди вырисовки...

Если ты заметил у меня игрок не двигается - двигается вся карта а игрок стоит на месте, включается только его анимация, поэтому размер текстуры "верхнего плана" должен быть такимже как и размер земли, чтобы избежать излишней нагрузки на процессор при вычеслении точных позиций всех обьектов... Мне так кажется во всяком случае...

1)Если игрок ближе к камере чем дерево, мы сначала рендерим игрока, потом рендерим дерево. Иначе рендерим дерево, потом игрока.
Я так понял что под камерой ты имеешь в виду центр экрана, в моем случае? Но тогда все обьекты "Верхнего слоя" должны быть не на одной текстуре а на разных и у каждого такого обьекта должны будут высчитыватся точные координаты в каждом цыкле программы... Не будет ли нагрузка на процессор слишком велика в данном случае (думаю что на одной карте у меня может быть до нескольких тысяч обьектов)

Спасибо сейчас проверим.
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 21:02   #5
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Несколько вопросов по програмированию в среде 2d

xD обьект перекрывает игрока, координаты игрока по Y меньше чем нижняя грань объекта. это самое елементарное.
Не будет ли нагрузка на процессор слишком велика в данном случае (думаю что на одной карте у меня может быть до нескольких тысяч обьектов)
ты что собрался 9000+ обьектов рисовать одновременно на экране?
Но тогда все обьекты "Верхнего слоя" должны быть не на одной текстуре а на разных и у каждого такого обьекта должны будут высчитыватся точные координаты в каждом цыкле программы.
ну какбэ об этом я и говорил в своём первом посте.в хорошо детализированой сцене на экране будет максимум 100 обьектов. расчёт их координа (простая опрерация сложения+ может немножко умножения) ровно никак не отражатся на производительности.
она будет менятся местами с текстурой игрока в очереди вырисовки...
ага, а если дерево находится рядом с горой, и игрок решил зайти за дерево, то что будет? игрок будет под горой чтоли?

Думайте товарисчъ, больше думайте
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 21:33   #6
gunjah
AnyKey`щик
 
Регистрация: 25.09.2010
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Несколько вопросов по програмированию в среде 2d

Помогите подогнать код под BlitzMax - пользуясь http://johnk.3dn.ru/publ/1-1-0-17 и http://www.blitzbasic.com попробовал, но прога выполняется с ошибкой и я не до конца понял как делается маска конкретного картинки на пример и как надо записывать FlushMem - как не пытался, компилятор выдает ошибку...

В приложении то что я сделал из старого кода для БлицМакс
Вложения
Тип файла: rar game.rar (331.9 Кб, 431 просмотров)
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 21:55   #7
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Несколько вопросов по програмированию в среде 2d

ты читал свой код?
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 21:57   #8
gunjah
AnyKey`щик
 
Регистрация: 25.09.2010
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Несколько вопросов по програмированию в среде 2d

Да читал, вываливает Exception_Acces_Violation
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 21:58   #9
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Несколько вопросов по програмированию в среде 2d

ты уверен что читал его? ты вкурсе как в бмаксе обьявляются переменные? может ты читал чейто чужой код?
player:char = New player
mouse:controller = New mouse
background:bcg = New background
background_trees:tree = New background_trees
ничего не говорит?
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 22:04   #10
gunjah
AnyKey`щик
 
Регистрация: 25.09.2010
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Несколько вопросов по програмированию в среде 2d

на http://johnk.3dn.ru/publ/1-1-0-17 написано:
Переменные типов теперь декларируются с использованием символа ":" вместо старого ".": 
' Старая версия: 
p.Player = New Player

' Новая версия: 
p:Player = New Player

Доступ к полям типов теперь осуществляется за счет символа "." вместо старого "\" : 
Type Oink 
Field x 
End Type

o:Oink = New Oink 
o.x = 1

Print o.x
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 22:05   #11
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Несколько вопросов по програмированию в среде 2d

прочитай ещё раз.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
gunjah (25.09.2010)
Старый 25.09.2010, 22:09   #12
gunjah
AnyKey`щик
 
Регистрация: 25.09.2010
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Несколько вопросов по програмированию в среде 2d

Оп, понял, спасибо. А что насчет FlushMem, где и как ее правильно вызывать?

И как добавить маску к конкретному обьекту? В моем случае, к аним имаге героя? В типе прописывать?
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 22:16   #13
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Несколько вопросов по програмированию в среде 2d

ну во первых GCCollect().

GCCollect() - освобождения обьектов, на которые не указывают ниодна ссылка. когда её использывать - решать тебе
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 23:21   #14
gunjah
AnyKey`щик
 
Регистрация: 25.09.2010
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Несколько вопросов по програмированию в среде 2d

А маска конкретного объекта?
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 23:49   #15
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: Несколько вопросов по програмированию в среде 2d

Если под маской ты имеешь ввиду прозрачность, то сохраняй свои картинки сразу в пнг вместе со всей прозрачностью.
Если имеется ввиду выделение области изображения - юзай GrabImage, и да поможет тебе справка
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 18:55.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com