|
26.11.2011, 15:38
|
#1486
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
xors3D умнее
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
04.12.2011, 13:28
|
#1487
|
Мастер
Регистрация: 23.09.2009
Адрес: ленобласть
Сообщений: 1,189
Написано 447 полезных сообщений (для 2,526 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
подскажите плиз как использовать тип в типе. пример использования
|
(Offline)
|
|
04.12.2011, 14:22
|
#1488
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Сообщение от pepel
подскажите плиз как использовать тип в типе. пример использования
|
Я плох в вопросах о типах. Но как то так наверно (синтаксис может быть неточным!):
Создаём типы:
Type cChild
Field x, y
End Type
Type cParent
Field child.cChild
End Type
Создаём функции объектов:
Function CreateParent.cParent()
p.cParent = new cParent
...
Return p
End Function
Function CreateChild(p.cParent)
p\child.cChild = new cChild
p\child\x = 100;
p\child\y = 100;
End Function
Ну и создаём как обычно объекты:
parent.cParent = CreateParent()
CreateChild(parent)
к объектам дочернего типа обращаться как то так (например вывести текст с координатами):
Text 10, 10, parent\child\x
Text 10, 30, parent\child\y
Палками не бить, сильно не плеваться. Суть работы с дочерними типами (как это понимаю я, хотя моё понимание на 78% не корректно наверно) думаю донёс.
упд На основе этого примера лучше использовать в типе cParent массив элементов типа cChild, иначе смысл отпадает в дочернем типе.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
04.12.2011, 19:25
|
#1489
|
Мастер
Регистрация: 23.09.2009
Адрес: ленобласть
Сообщений: 1,189
Написано 447 полезных сообщений (для 2,526 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
ладно лучше массивом сделаю чето сложночитаемо совсем
|
(Offline)
|
|
31.12.2011, 02:22
|
#1490
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Как автоматически расставить текстурные координаты у 2д (партиклы) прямоугольников и окружностей? Я че то уже запарился. Читал что нужно брать длину нормали делить@умножать, но не вкурил .
|
(Offline)
|
|
24.01.2012, 20:57
|
#1491
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Последний раз редактировалось LLI.T.A.L.K.E.R., 24.01.2012 в 23:00.
|
(Offline)
|
|
24.01.2012, 23:04
|
#1492
|
Чудо-кот
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений (для 1,471 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
|
(Offline)
|
|
24.01.2012, 23:14
|
#1493
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Там demo - исходника нет. Исходник под запороленной ссылкой.
Texture Splatting on Meshterrain
http://www.blitzbasic.com/codearcs/c....php?code=2620
Поясню алгоритм:
медиа-часть: рисуется альфа текстура в тех местах где нужен покрас на меше.. и т.д. и т.п.
код: создаются 5 мешей (для 5 слоёв покрасок), но самое важное - все 5 слоёв не копируют один и тот же меш, а как бы вырезаются те участи по их альфе текстурам.
Я тоже по началу думал что опять-25 мешей terrain грузить. Потом
включил wireframe 1 и включил отображение только 2-го и зелёного слоёв.
Скоро на Blitz3D будет свой Oblivion.
|
(Offline)
|
|
25.08.2012, 20:41
|
#1494
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Как делают волны на воде и их обрезание (уменьшение детализации меша) в зависимости от расстояния?
|
(Offline)
|
|
25.08.2012, 21:47
|
#1495
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
не проще текстурой делать а так можно двигать вертексы
|
(Offline)
|
|
26.08.2012, 12:58
|
#1496
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Неужели никто не знает?
|
(Offline)
|
|
26.08.2012, 14:15
|
#1497
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Сообщение от Nex
Как делают волны на воде и их обрезание (уменьшение детализации меша) в зависимости от расстояния?
|
Делаешь квадратную равномерную сетку. Потом сжимаешь возле камеры ее так чтобы она слегка была шире поля обзора, а вдали нааоборот увеличиваешь расстояние между вершинами, тоже самое для рядов идущих перпендикулярно линии взгляда, те что возле камеры меньше расстояние, а те что вдали больше расстояние.
а потом анимировать можно как то так:
Function GrimMagicWater(meshid)
PointEntity light,camera
PositionEntity light,225*Sin(MilliSecs()/30),15,225*Cos(MilliSecs()/30)
PositionEntity watermesh,EntityX(camera,1),0,EntityZ(camera,1)
RotateEntity watermesh,0,EntityYaw(camera,1)-45,0
If EntityY(camera,1)<1 Then PositionEntity camera,EntityX(camera,1),1,EntityZ(camera,1),1
ScaleTexture watertex,1+Sin(MilliSecs()/100)/10,1+Cos(MilliSecs()/50)/10
waveheight#=8
horizwave#=6
Noiseamplitude#=0.2
wavelength#=10 ; меньшее значение означает большую длину
wavehorizlength#=35
speed#=1
time#=MilliSecs()*speed
mesh=meshid
meshsurf=GetSurface(mesh,1)
qvert=CountVertices(meshsurf)
;теперь магия
For i=0 To qvert-1
x000#=plane#(i,0)
y000#=plane#(i,2)
z000#=0
TFormPoint x000,z000,y000,mesh,0
x00#=TFormedX()
y00#=TFormedZ()
z01#=waveheight*Cos(time/wavelength+x00*wavelength/3)+horizwave*Sin(time/wavehorizlength#+y00*wavelength/5)+Noiseamplitude*Sin(noise#(i)+time/4)
x01#=x00-waveheight*Cos(time/wavelength+x00*wavelength/3)+Noiseamplitude*Cos(noise#(i)+time/4)
y01#=y00-horizwave*Sin(time/wavehorizlength#+y00*wavelength/5)+Noiseamplitude*Sin(noise#(i)+time/4)
TFormPoint x01,z01,y01,0,mesh
VertexCoords meshsurf,i,TFormedX(),TFormedY(),TFormedZ()
VertexTexCoords meshsurf,i,x00/25,y00/25
Next
UpdateNormals mesh
End Function
x00=cubedata#(i-1,0)
y00=cubedata#(i-1,1)
тут сохранены позиции точек поверхности воды до деформации.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо dsd за это полезное сообщение:
|
|
28.08.2012, 01:38
|
#1498
|
Чудо-кот
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений (для 1,471 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
У кого-нибудь сохранился враппер bass?
А то везде 404.
|
(Offline)
|
|
28.08.2012, 09:34
|
#1499
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
держи
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.08.2012, 00:09
|
#1500
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:14.
|