forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Несколько вопросов (http://forum.boolean.name/showthread.php?t=6295)

Machete 28.08.2008 04:37

Несколько вопросов
 
В процессе изучение блица возник ряд вопросов.
Собственно:
1.У меня в игре есть частицы.Создаются они таким образом:

Function CreateSpark1.TSpark(x#,y#,z#,n)
For i=1 To n ;кол-во частиц
s1.TSpark= new TSpark
.....
Return s1
next
End Function

Function CreateSpark2.TSpark(x#,y#,z#,n)
For i=1 to n
s2.TSpark= new TSpark
.....
Return s2
next
End Function

А обновляются в главном цикле так:
For s1.TSpark = each TSpark
UpdateSpark1(s1) ; ф-я изменяющая местоположение частиц
Next

For s2.TSpark = each TSpark
UpdateSpark2(s2)
Next

Мне представлялось, что каждый тип частиц будет двигаться так, как задано в его (типе) функции апдейта.Но на практике траектория частицы получается смесью всех функций апдейта. То есть все частицы всех типов летят одинаково и по какой-то дурцкой траектории.
Подскажите как правильно написать структуру создания и обновления частиц, чтобы каждый тип частиц имел уникальную траекторию.

2.Каким образом можно создать сетку для трехмерного игрового поля(террэин), пусть и плоского.В 2д сетке, ячейками являются изображения или ректанглы.А чем будут являтся ячейки в сетке для 3д поля?

3.На каком-то форуме нашел код:

type Thing
field name$
field Type
field g.Gun, p.Pistol
end Type

type Gun
field Power#, Freq#
end Type

Type Pistol
field Power#, TypePula
end type

Захотел применить его для своего инвентаря.
По моим представления этот код написан чтобы,например,у g.Gun, был параметр name$, у p.Pistol был параметр name$ и т.п. То есть чтобы у нескольких типов были общие параметры.Если это не так, то возможно ли сделать так как я представил это себе и как.
И как ссылаться на такой тип.

Буду признателен, если рассеете мои заблуждения.

MiXaeL 28.08.2008 04:47

Ответ: Несколько вопросов
 
1. Проще всего два разных типа сделать.
Цитата:

Сообщение от Machete (Сообщение 85257)
А чем будут являтся ячейки в сетке для 3д поля?

Чем угодно. Да хоть шестиугольниками, если нравится.
3. Ну ты всё правильно понимаешь.

ABTOMAT 28.08.2008 10:00

Ответ: Несколько вопросов
 
1. У афтора и есть 2 разных типа
Лично моё имхо
Я делал чяастицы так
У меня 1 всего тип
И есть параметры массы, вектор скорости, время жизни и т.п. Оперируя этими параметрами можно получить пыль, искры, светлячки и много чего ещё. Лучше делать побольше параметров чтобы можно было настроить поведение частиц, а на все типы частиц всё равно типов не напасёсся (максимум 5 типов сделаешь потом задолбает)
В коде не фкуриваю как у тебя функция типа spark возвращает объект типа TSpark, это имхо работать не будет, да ещё у тебя две функции CreateSpark продекларированы, сч одинаковым именем. Проверь, ты правильно сюда код скопировал?

Код:

Function CreateSpark.spark(x#,y#,z#,n)
For i=1 to n
s2.TSpark= new TSpark
.....
Return s2
next
End Function

2. ИМХО квадраты состоящие из 2 полигонов :)
Хотя может я не совсем понял шо те надо.

3. Вообще делается класс Item, от него наследуются классы Weapon, Medkit,Eqip от Weapon наследуются Meele и Distance, от Distance наследуются Pistol, Gun, AutomatKalashnikova и всем трём задаются свои дополнительные переменные и свойства. Но это увы только там где есть ООП. В блитзе я бы сделал один тип Thing и прямо в ём бы и писал все параметры которые понадобятся как пистолету, так и ружью, плюс к этому - тип оружия, 0 - пистолет 1 - ружжё. В обоих случяаях будет юзаццо филд Power#, но в случае с пистолетом будет ещё юзацо филд TypePula а Freq# будет просто болтаться без дела, а если это ружьё, то наоборот. И обрабатывать естественнов зависимости от типа оружия.

Machete 28.08.2008 11:08

Ответ: Несколько вопросов
 
1.На самом деле у меня тоже один тип :) ( spark - TSpark - опечатка, исправил).Название ф-ий тоже разное и тоже исправил.
Так как же мне аптейтить какждую переменнуя типа (s1.TSpark,s2.TSpark) чтобы не затрагивать другие?По идеи надо где-то писать First.
Поделитесь примером.

2.Понял

3.А я думал блиц объектно ориентированный язык :O.
Я еще слышал понятие - вложенные типы, это тоже самое?

MiXaeL 28.08.2008 11:14

Ответ: Несколько вопросов
 
3. Нет, блитц не имеет ООП. За ООП смотри в сторону BlitzMax и Blitz3D SDK.
А еще вот сюда загляни: http://forum.boolean.name/showthread.php?t=1194

turBO 28.08.2008 14:17

Ответ: Несколько вопросов
 
Цитата:

Сообщение от Machete (Сообщение 85257)
Каким образом можно создать сетку для трехмерного игрового поля(террэин), пусть и плоского.В 2д сетке, ячейками являются изображения или ректанглы.

Повесить сетку на террейн?

грузи тексу, буферизируй, малюй сетку, "размножь":

tertex=loadtexture("t.jpg") ;256x256
BackBuffer(tertex)
color 0,0,255
line 1,256,256,256
line 256,1,256,256
SetBuffer BackBuffer()

scaletexture tertex,10,10
entitytexture terrain,tertex

ffinder 28.08.2008 18:20

Ответ: Несколько вопросов
 
Цитата:

Сообщение от ABTOMAT (Сообщение 85262)
1. У афтора и есть 2 разных типа
И есть параметры массы, вектор скорости, время жизни и т.п.

по группам:
1. движение: скорость, ускорение, угловая скорость, угловое ускорение;
2. внешний вид: текстура, цвет, альфа, размер (он же масштаб, можно раздельный по X и Y);
3. время жизни: несколько стадий (у меня три). между ними все числовые значения интерполируются.

Цитата:

Сообщение от ABTOMAT (Сообщение 85262)
В обоих случяаях будет юзаццо филд Power#, но в случае с пистолетом будет ещё юзацо филд TypePula а Freq# будет просто болтаться без дела, а если это ружьё, то наоборот.

а можно сделать что freq, вернее ROF(rate of fire) будет отвечать за скорострельность, у неавтоматического оружия просто будет равен 0.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot