четверг, 31 октября 2013 г.

Проверка симетрии конечностей в редакторе.

У каждой конечности есть требования симметрии, они хранятся в первой целочисленной ячейке внутреннего типа данных Editor2dPartUnitMorfid. Который равен 10001

Public Const Editor2dPartUnitMorfid As Integer = 10001 ' ID редактора PartUnit морфидов
Тип симметрии обозначается числом от 0 до 4.

0 - нет симетрии.

1 - симметрия типа 1-2
1357
2468

2 - симметрия типа 2-4 (1-3 тоже)
1357
2468

3 - замещение типа 1-2
1357
2468

4 - замещение типа 2-4 (1-3 тоже)
1357
2468

Главная конечность, дублирующая (такая же как и главная) и заблокированная (заменённая пустой).

Код проверяющий симметричность проекта юнита созданного в 2D редакторе морфид, процедура находиться в классе  Editor2D. Ещё не до конца дописанный код далее

суббота, 19 октября 2013 г.

Приблизительная геймплейная концепция морфидов.

Генетическая программа это тригер и действие. Тригером может служить фермент или достижение нужной массы определённой частью. А действие как выработка другого фермента, так и команда на рост, апоптоз или морфирование определённой части в другую. По сути это будут простейшие линейные скрипты использующие в качестве условий ферментные флаги. Так же некоторые юниты смогут распылять произвольные ферменты при помощи желез запуская те или иные последовательности в других юнитах.

Новые метода класса GroupUniversalValues

Я добавил в класс 2 функции поиска нужных элементов массива по диапазону, это будет очень удобно, поскольку позволит точно классифицировать принадлежность объектов как при редактировании, так и в игре, а так же упростит написание серверных плагинов. Исходный код новых функций ниже:

воскресенье, 13 октября 2013 г.

Простое диалоговое окно с 3 вариантами ответа и картинкой.

Пока я не сделал универсальное диалоговое окно с массивом ответов, я решил сделать использующее всего 3 варианта ответа простенькое диалоговое окошко.
https://dl.dropboxusercontent.com/u/86123252/projects/StarE/20131013/dialogs.zip


пятница, 11 октября 2013 г.

понедельник, 7 октября 2013 г.

Диалоговое окно выбора файла

Делаю данное меню для своего проекта, требуется загружать игровые ресурсы как из /usr/share/appname так и из ~/.appname









Не найдя готового решения я сделал своё.
FileName = FileDialogForm.AskFileName ("Заголовок окна", "единственный путь", " надпись кнопки OK", "Надпись кнопки Cancel", "Единственная маска файлов", Единственная картинка для значков файла , Массив масок , Массив значков для масок , показывать ли скрытые файлы , массив путей)
http://gambas.pro/forum/download/file.php?id=114

пятница, 4 октября 2013 г.

Полный архив исходников на Gambas

Предварительный формат файлов для редактора морфид.

Код обеспечивающий редактирование мормид и требуемые константы я выложу позднее, сейчас я опубликую формат файлов. Части юнитов и юниты.

Часть морфиды: blank-fut.part-unit
'= Это комментарий
'= Данный формат файлов описывает часть юнита
begin part-unit
hp=0
armor=0
hp-armor=0
armorK=0
minimal-demage-armor=0
chance-demage=0
max-hp=0
weight=0
power=0
begin universal-values
name=Балластное свойство
id=0
next value
name=
id=10001
value-godc=
begin game-object-data

'= Здесь название юнита для 2D редактора морфид
add-string=Тестовая лапа

'= Поля зарезервированны
add-string=
add-string=
add-string=

'= Имя файла с картинкой
add-string=pictures/test/test-model-1/fut-test-model-1.png

'= Описание юнита
add-string= Обычное описание

'= Тип необходимой симетрии (0-нет симетрии, 1 - симетрия 12, 2 - симетрия 23, 3 -  замещение 12, 4 - замещение 23)
add-integer=0

'= Координата X в 2D редакторе
add-integer=0

'= Координата Y в 2D редакторе
add-integer=0

'= Координата Z в 2D редакторе, на всякий случай, вдруг станет 3D редактором
add-integer=0

add-integer=0

'= Это лапа, значение 1 (0 голова, 1 лапа, 9 хвост)
add-integer=1

end game-object-data
next value
end universal-values
end part-unit

 И сама морфида:  blank.unit
begin unit
speed=0
type-unit=
tactics=0
formation=0
group=0
x=0
y=0
z=0
writ=0
writ-target=0
writ-x=0
writ-y=0
writ-z=0
begin other-values
begin universal-values
name=
id=0
next value

'= Описание юнита для 2D редактора морфид
name=
id=10002
value-godc=
begin game-object-data

'= Название юнита
add-string=Тестовый юнит

add-string=
add-string=
add-string=

'= Имя файла с картинкой для редактора
add-string=pictures/test/test-model-1/body-test-model-1.png

'= Описание юнита
add-string= Обычное описание юнита


add-integer=0

'= Крепление конечности координаты XYZ (0 голова)
add-integer=0
add-integer=0
add-integer=0

'= Крепление конечности координаты XYZ (1 лапа)
add-integer=0
add-integer=0
add-integer=0

'= Крепление конечности координаты XYZ (2 лапа)
add-integer=0
add-integer=0
add-integer=0

'= Крепление конечности координаты XYZ (3 лапа)
add-integer=0
add-integer=0
add-integer=0

'= Крепление конечности координаты XYZ (4 лапа)
add-integer=0
add-integer=0
add-integer=0

'= Крепление конечности координаты XYZ (5 лапа)
add-integer=0
add-integer=0
add-integer=0

'= Крепление конечности координаты XYZ (6 лапа)
add-integer=0
add-integer=0
add-integer=0

'= Крепление конечности координаты XYZ (7 лапа)
add-integer=0
add-integer=0
add-integer=0

'= Крепление конечности координаты XYZ (8 лапа)
add-integer=0
add-integer=0
add-integer=0

'= Крепление конечности координаты XYZ (9 хвост)
add-integer=0
add-integer=0
add-integer=0

end game-object-data

next value

end universal-values
end other-values
unit no-parts
end unit