IPB

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
Создание игры "С чего начать?", Начну цикл уроков с возможностью обсуждения.
Leshander
сообщение 9.12.2014, 17:40
Сообщение #21


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743



Принцип построения текстуры:
Перейти в начало страницы
 
+Цитировать сообщение
Leshander
сообщение 9.12.2014, 17:44
Сообщение #22


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743



Создаём трубу для 2D
Photoshop


Перейти в начало страницы
 
+Цитировать сообщение
Leshander
сообщение 9.12.2014, 17:46
Сообщение #23


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743



Так получилась НОВАЯ ТРУБА. Чего не хватает? Разнообразить её возьмите самостоятельно и добавьте на неё ржавчину и грязь, без неё никак. wink.gif
Перейти в начало страницы
 
+Цитировать сообщение
Leshander
сообщение 9.12.2014, 18:02
Сообщение #24


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743



Надеюсь изъясняюсь я на доступном языке.
Теперь идём дальше...
Поверхность

Профессиональные студии работают методом разделения труда, мы себе этого позволить не можем. sad.gif
И пойдём своим путём.
А их всего 2.
Первый путь как вы уже догадались это отрисовка задника в Photoshop с скриптом что я ложил выше.
Второй путь это создание собственного редактора.

Каждый выбирает свой путь, но мы как истинные игроделы выберем путь номер два.
В нём свои плюсы:
-Нет необходимости создавать кучу фрэймов в элементе карты и хранения кучи изображений.
-Получаем сразу кусок кода самой игры
-Возможность исправлять и редактировать игровой мир налету, вплоть до изменений без отключения серверной части
-В случае размещения с игрой даёт возможность игроку создавать собственные миры и модификации, как их защитить и оставить линцензионные права за вами поговорим позже.
-и тд
Перейти в начало страницы
 
+Цитировать сообщение
admin
сообщение 10.12.2014, 14:07
Сообщение #25


Администратор
***

Группа: Главные администраторы
Сообщений: 737
Регистрация: 30.8.2004
Пользователь №: 1



Цитата(Leshander @ 9.12.2014, 19:02) *
Надеюсь изъясняюсь я на доступном языке.


Субьективно могу сказать что если бы встретил такую книгу на полке в книжном магазине,
купил бы обязательно.
Конкретно четко понятно.
Перейти в начало страницы
 
+Цитировать сообщение
Leshander
сообщение 10.12.2014, 19:05
Сообщение #26


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743



Цитата(admin @ 10.12.2014, 17:07) *
Субьективно могу сказать что если бы встретил такую книгу на полке в книжном магазине,
купил бы обязательно.
Конкретно четко понятно.

Спасибо. unsure.gif но к сожалению такого нет, и по этому и Dark не используют. Вчера посидел на официальном форуме и накачал уйму DLL сейчас пока верчу их и смотрю что они дают, читаю инфу, смотрю примеры. Наверно утром выложу часть примера создания редактора 2д поверхностей, самое смешное что можно прикрутить звук в 2,5D на карту как и в 3D, на это DLL есть. Ну и постепенно буду скелет редактора наращивать, покажу как работать с MAKE MEMORY и MEMBLOCK. Самое интересное будет в конце wink.gif выделение ядра и структуризация программного кода. Как бонус организуем многопоточность данных с обработкой в внешних программах. Нашёл документацию по базам данных OLE,-как подружить их с DB и чтение-запись в Exel таблицы. rolleyes.gif Так же нашёл DLL с исходниками для формата *.Lod,- т.е. Diablo2, если кому нужно могу выложить с переводом.

P.S. dry.gif Книга так и останется бороздить просторы интернета, врятли кто печатать захочет.
Чуть не забыл: - Dark поддерживает openGL и Direx вставки при наличии DLL, ну и Lua скрипт.
Давно DB не использовал,- он вырос.
Перейти в начало страницы
 
+Цитировать сообщение
admin
сообщение 10.12.2014, 23:35
Сообщение #27


Администратор
***

Группа: Главные администраторы
Сообщений: 737
Регистрация: 30.8.2004
Пользователь №: 1



Дорогу осилит идущий!

Сурприз в скором времени ожидает Российских ДаркБесикистов,
раскрывать суть пока не буду
но книжка может востребована стать на ура.
Перейти в начало страницы
 
+Цитировать сообщение
Leshander
сообщение 11.12.2014, 17:41
Сообщение #28


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743




Кратко наша программка - редактор будет выглядеть так...
Перейти в начало страницы
 
+Цитировать сообщение
Leshander
сообщение 11.12.2014, 17:59
Сообщение #29


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743



Как видно из рисунка всё не так просто как нам представлялось blink.gif
Но это только на первый взгляд:
Пользователь,
Окно интерфейса,
Операционная система.
Это первое чем стоит заняться, мы же должны видеть куда и как мы сохраняем и открывать директории.
Сразу оговорюсь:-"Оболочку в виде окон мы пока делать не будем, тк DLL которую будем использовать требует обязательной компиляции, а компилировать пока нечего laugh.gif "
Перейти в начало страницы
 
+Цитировать сообщение
Leshander
сообщение 12.12.2014, 20:33
Сообщение #30


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743



Первым делом определим список доступных дисков:
(пока только примерный код)
Код
perform checklist for drives
for f=1 to checklist quantity()
print "> ";checklist string$(f)
next f

Список файлов из папки местонахождения:
Код
perform checklist for files
for f=1 to checklist quantity()
print "> ";checklist string$(f)
next f

Чего то не хватает?
dry.gif а где мы находимся?
Вот тут:
Код
gd$=GET DIR$()
print gd$

Теперь будем компоновать данные кусочки в код для вставки в программу...
Перейти в начало страницы
 
+Цитировать сообщение
Leshander
сообщение 12.12.2014, 21:53
Сообщение #31


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743



В первичном варианте получилось следующее:
Код
rem Стандартные предустановки
set text font "arial" : set text size 16
set text to bold : set text transparent

rem начало программы
gosub _checkfolder : gosub _waitkey
gosub _checklistfiles : gosub _waitkey
gosub _checklistdrives : gosub _waitkey

rem Конец программы
end

_checkfolder:
cls : print "Путь"
gd$=GET DIR$()
print gd$
return

_checklistfiles:
cls : print "список файлов"
perform checklist for files
for f=1 to checklist quantity()
print "> ";checklist string$(f)
next f
return

_checklistdrives:
cls : print "список дисков"
perform checklist for drives
for f=1 to checklist quantity()
print checklist string$(f)
next f
return

_waitkey:
print : print "нажмите кнопочку"
wait key : sleep 500
return
Перейти в начало страницы
 
+Цитировать сообщение
Leshander
сообщение 13.12.2014, 1:28
Сообщение #32


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743



Как мы видим используются следующие функции:

_checkfolder - узнаём путь к текущему каталогу,
_checklistfiles - узнаём файлы текущего каталога,
_checklistdrives - узнаём список дисков.

Теперь нужно научится покидать текущую папку. для этого есть слово аналог Dos команды CD.
Прежде чем приступать рисуем дерево нашей мини программы, для оптимизации кода.
Опять же есть 2 пути, 1 глобальный, 2 локальный.
1) Программа строит дерево каталогов, сохраняет в память или файл (долго)
2) Локальный программа ничего не знает и работает относительно того где мы сидим (аналог проводника)
Перейти в начало страницы
 
+Цитировать сообщение
Leshander
сообщение 13.12.2014, 2:17
Сообщение #33


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743




нечто в этом роде получается, обратите внимание список дисков мы 1 раз узнаём и более список дисков не обновляем.
Путь до нашей папки придётся разбить на составляющие, чтоб потом по нему путишествовать.
Перейти в начало страницы
 
+Цитировать сообщение
Leshander
сообщение 15.12.2014, 18:03
Сообщение #34


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743



В процессе эволюции получилось следующее:
Код
_checkfolder:
cls
slash=0 `переменная подсчёта слэшей
print "Путь"
gd$=GET DIR$()
print gd$
`нашли где находимся
st=LEN (gd$)
print st
`узнали сколько символов в строке
for s=0 to st
if MID$(gd$,s)="\" THEN slash=slash+1`ищим слэши и считаем их
next s
DIM stroka$(slash)`массив для вариантов пути
for s=0 to st
if MID$(gd$,s)="\" THEN stroka$=LEFT$(gd$,s);print stroka$`записываем позиции и отображаем
next s
return

Все пояснения на месте. Остальной текст программы без изменений.
Перейти в начало страницы
 
+Цитировать сообщение
Leshander
сообщение 15.12.2014, 19:44
Сообщение #35


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743



Следующим шагом модифицируем файловую часть:
Код
_checklistfiles:
cls
fl=0
print "список файлов"
perform checklist for files
`создали список файлов
dim files$(checklist quantity())
dim files (checklist quantity())
`создали два массива длинной в список файлов
for f=1 to checklist quantity()
`цикл перебора по списку с начала в конец
files$(f)=checklist string$(f)
`присваение переменной значения из списка по порядку
fl=LEN (files$(f))
`узнаём длинну имени в списке
for s=0 to fl
if MID$(files$(f),s)="." then files(f)=1
   next s
next f
`цикл проверки наличия точек,-расширение файла в случае нахождения 1 в ином остаётся 0
for f=3 to checklist quantity()
if files(f)=1 then print files$(f)+"  это файл" else print files$(f)+"  это папка"
next f
`выводим проверку
return

blink.gif проще не получилось, но пока не об этом.
Теперь мы умеем отличать файлы от папок и получать путь к месту где мы есть.
Осталось прикрутить кнопочный интерфейс.
КНОПОЧНЫЙ-всегда проверяйте на кнопочном интерфейсе т.к. он содержит меньше кода. wink.gif
Оболочка обычно обзывается GUI и пишется после.
Перейти в начало страницы
 
+Цитировать сообщение
Leshander
сообщение 15.12.2014, 20:13
Сообщение #36


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743



Для проверки нажатия клавиши используем SCANCODE() она сканирует все клавиши и выдаёт число
Код
do
cls
key=SCANCODE()
print key
loop
return

Замечу что этой команде пофигу на раскладку клавиатуры, НЕ ЗАБЫВАЙТЕ ЭТО В СВОИХ ИГРАХ angry.gif неприятно когда ваш конфиг будет привязан к раскладке или регистру. Данная команда работает быстрее чем INKEY$() так как считывается с железа, а не с программной оболочки. dry.gif
Перейти в начало страницы
 
+Цитировать сообщение
Leshander
сообщение 15.12.2014, 21:39
Сообщение #37


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743



Кому лень вот табличка от меня лично на память dry.gif :
Перейти в начало страницы
 
+Цитировать сообщение
Leshander
сообщение 23.8.2015, 1:59
Сообщение #38


Активный участник
***

Группа: Пользователи
Сообщений: 56
Регистрация: 23.11.2014
Из: Курган
Пользователь №: 65743



rolleyes.gif Всем снова привет wink.gif извиняюсь за то что пропал, набирал базу и кодил. Далее речь пойдёт о массивах и матрицах,- что в принципе одно и то же mellow.gif Для нашей игры нужно поле (где мы будем бегать). Я не знаю лутшего предоставления чем 2 мерный массив-матрица.
Тут статистики нет,-ребят кому это надо, пишите.
Перейти в начало страницы
 
+Цитировать сообщение
pavelman
сообщение 5.10.2015, 11:33
Сообщение #39


Активный участник
***

Группа: Пользователи
Сообщений: 201
Регистрация: 29.5.2009
Из: Russian Federation
Пользователь №: 65589



написано красиво.
отредактировано.
я вот завис на создании стартового меню и меню настроек.
потом будет удобно вставлять в любой проект.


--------------------
Если утром хорошо
встал, значит вечером
плохо выпил.
Перейти в начало страницы
 
+Цитировать сообщение

2 страниц V  < 1 2
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 25.9.2017, 5:39
 X 
Ссылки на работы форумчан:
1. Cайт по использованию 3D технологий
в образовании

2. 15 Defense. Underwater Battle

3. GlaZ в Steam Greenlight