|
3D-программирование Вопросы, касающиеся программирования 3D мира |
17.07.2008, 20:07
|
#31
|
Оператор ЭВМ
Регистрация: 08.02.2007
Сообщений: 47
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Уже наболевшее..
весь код создания частиц
Type blood_particle
Field x#,y#,z#
Field speed#
Field speed2#
Field life#
Field particle_type
Field particle_copy
End Type
Function Create_blood(x#,y#,z#,col)
For i=1 To col
e.blood_particle=New blood_particle
e\x=x
e\y=y
e\z=z
e\speed=Rnd(.03,.09)
e\speed2=Rnd(.05,.1)
e\life=45
size#=Rnd(.1,.5)
e\particle_type=CreateSprite()
ScaleSprite e\particle_type,size,size
HideEntity e\particle_type
blood_tex=LoadTexture("tex/blood_particle2.png")
TextureFilter "blood_particle2",2
EntityTexture e\particle_type,blood_tex
e\particle_copy=CopyEntity(e\particle_type)
RotateSprite e\particle_copy,Rnd(360)
PositionEntity e\particle_copy,x,y+.8,z
RotateEntity e\particle_copy,Rnd(-180),Rnd(-180),Rnd(-180)
EntityType e\particle_copy,Blood
Next
End Function
Function Update_blood()
For w.blood_particle=Each blood_particle
w\life=w\life-1*framePeriod*.01
MoveEntity w\particle_copy,0,w\speed2*framePeriod*.1,0
w\speed=w\speed-.03*framePeriod*.01
TranslateEntity w\particle_copy,0,w\speed*framePeriod*.08,0
bloodcoll=EntityCollided(w\particle_copy,PlaneC)
If bloodcoll <> 0 w\speed2 = .01
EntityAlpha w\particle_copy,w\life*.1*framePeriod*.02
If w\life < 0 Then
FreeEntity w\particle_copy
Delete w
particle2=0
Else
particle2=1
EndIf
Next
End Function
|
(Offline)
|
|
17.07.2008, 21:21
|
#32
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Уже наболевшее..
blood_tex=LoadTexture("tex/blood_particle2.png")
Грузим текстуру с винчестера по нескольку раз.
Отсюда и тормоза.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
17.07.2008, 21:28
|
#33
|
Оператор ЭВМ
Регистрация: 08.02.2007
Сообщений: 47
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Уже наболевшее..
чё??
|
(Offline)
|
|
17.07.2008, 21:33
|
#34
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Уже наболевшее..
Сообщение от Samarik
чё??
|
хде??
Кстати это ещё и память засирает
т.к. грузишь много раз но не удаляешь.
после объявления граф. режима прописать это:
Global blood_tex=LoadTexture("tex/blood_particle2.png",2)
и вот эти 2 строчки выкинуть из ф-ии создания спрайта:
blood_tex=LoadTexture("tex/blood_particle2.png")
TextureFilter "blood_particle2",2
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
17.07.2008, 21:47
|
#35
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Уже наболевшее..
Samarik, мсье маньяк?
|
(Offline)
|
|
17.07.2008, 22:11
|
#36
|
AnyKey`щик
Регистрация: 24.04.2008
Сообщений: 7
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Уже наболевшее..
|
(Offline)
|
|
18.07.2008, 00:03
|
#37
|
Оператор ЭВМ
Регистрация: 08.02.2007
Сообщений: 47
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Уже наболевшее..
АВТОМАТУ спасибо, во всем разобрались. холидел и нуклеар, вы че имели ввиду?
|
(Offline)
|
|
18.07.2008, 00:05
|
#38
|
Разработчик
Регистрация: 09.12.2007
Сообщений: 376
Написано 83 полезных сообщений (для 122 пользователей)
|
Ответ: Уже наболевшее..
У тя функция загрузки прототипа и копирование готового прототипа на конвеер совмещены в одну, ты каждый раз создаешь спрайт, загружаешь текстуру, копируешь этот спрайт, в итоге у тебя в 2 раза больше спрайтов(и половина не удаляется) и куча тектур(они тоже не удаляются, а заполняют память), и в добавок еще тормоза от кучи лишних действий.
Загрузи частицу и текстуру ОДИН РАЗ, примени текстуру и свойства, хайдни, а уже при создании частиц крови просто копируй ее, затем удаляя копию...
|
(Offline)
|
|
18.07.2008, 10:22
|
#39
|
Оператор ЭВМ
Регистрация: 08.02.2007
Сообщений: 47
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Уже наболевшее..
С этим я и разобрался уже. все, не смотрите на тот код шо в начале страницы
|
(Offline)
|
|
19.07.2008, 04:21
|
#40
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Re: Уже наболевшее..
Я делал так
add_spark(0,0,38,100,2,monster\model,1,2)
где monster\model - модель бота. пишем это там где у тебя идёт колиззион с ботом
Function add_spark(x#,y#,z#,times#,scale#,parent,types,ismagic)
spark.spark=New spark
spark\is=1
spark\ismagic=ismagic
;add_spark(0,0,0,30,1,allfire\spr[i],2,2)
If ismagic<2
If types=1
spark\img=CopyEntity(flame01,parent)
EntityColor spark\img,Rnd(150,250),Rnd(0,100),0
ElseIf types=2
spark\img=CopyEntity(flame02,parent)
EntityColor spark\img,0,Rnd(0,100),Rnd(150,250)
EndIf
ElseIf ismagic=2
spark\img=CopyEntity(spr1,parent)
EntityColor spark\img,Rnd(150,250),Rnd(0,100),0
ElseIf ismagic=3
spark\img=CopyEntity(flame01,parent)
EntityColor spark\img,Rnd(150,250),Rnd(0,100),0
EndIf
EntityType spark\img,20
spark\parent=parent
If ismagic=0
spark\x#=Rnd(-0.8,0.8)
spark\y#=Rnd(0.8,1.6)
spark\z#=Rnd(-0.8,0.8)
PositionEntity spark\img,x#,y#,z#
ElseIf ismagic=1
spark\x#=Rnd(-0.4,0.4)
spark\y#=Rnd(-0.1,0.6)
spark\z#=Rnd(-0.3,1)
PositionEntity spark\img,x#,y#,z#
EntityParent spark\img,0
ElseIf ismagic=2
spark\x#=Rnd(-0.3,0.3)
spark\y#=Rnd(-0.1,0.4)
spark\z#=Rnd(-0.1,0.2)
PositionEntity spark\img,x#,y#,z#
EntityParent spark\img,0
ElseIf ismagic=3
spark\x#=Rnd(-0.04,0.04)
spark\y#=Rnd(0.01,0.08)
spark\z#=Rnd(-0.04,0.04)
EndIf
ScaleSprite spark\img,scale,scale
ShowEntity spark\img
spark\scale#=scale#
spark\times#=times#
spark\alp#=1/times#*1000
End Function
Function update_spark()
For spark.spark=Each spark
If spark\is=1
spark\times#=spark\times#-1
If spark\times>0
If EntityCollided (spark\img,1)
FreeEntity spark\img
Delete spark
Goto nesx
EndIf
MoveEntity spark\img,spark\x#,spark\y#,spark\z#
EntityAlpha spark\img,spark\times#*spark\alp#/1000
If spark\ismagic<>1
spark\y#=spark\y#-Rnd(0.01,0.03)
Else
spark\y#=spark\y#-Rnd(0.004,0.008)
EndIf
Else
FreeEntity spark\img
Delete spark
EndIf
EndIf
.nesx
Next
End Function
где flame01,flame02, spr1 - загруженые спрайты.
update_spark() - вставь в основном цикле
поэксперементируй с параметрами add_spark(x#,y#,z#,times#,scale#,parent,types,isma gic)
|
(Offline)
|
|
20.07.2008, 03:15
|
#41
|
Оператор ЭВМ
Регистрация: 08.02.2007
Сообщений: 47
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Уже наболевшее..
эт ты к чему ваще все это написал?
|
(Offline)
|
|
20.07.2008, 03:22
|
#42
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Re: Уже наболевшее..
небуду сорить в форуме, напишу тут..
у меня проблема с реализацией частиц, проблема состоит в том что я немогу сделать так чтоб частицы летели из бота, в которого я попал.
создал я частицы, они работают, создал условие что при коллизии пули с ботом летят частицы, всё это работает..
добился того что при колизии пули с ботом вылазит ошибка "ентити даз нот ексист.." ну эт када я пробовал с командами EntityX(Bot),y,z и тд..
выложу код частиц
К этому гг)))
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:19.
|