Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 17.07.2008, 20:07   #31
Samarik
Оператор ЭВМ
 
Регистрация: 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
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Уже наболевшее..

blood_tex=LoadTexture("tex/blood_particle2.png")
Грузим текстуру с винчестера по нескольку раз.
Отсюда и тормоза.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 17.07.2008, 21:28   #33
Samarik
Оператор ЭВМ
 
Регистрация: 08.02.2007
Сообщений: 47
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Уже наболевшее..

чё??
(Offline)
 
Ответить с цитированием
Старый 17.07.2008, 21:33   #34
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 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
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Уже наболевшее..

Samarik, мсье маньяк?
(Offline)
 
Ответить с цитированием
Старый 17.07.2008, 22:11   #36
nuclear-90
AnyKey`щик
 
Регистрация: 24.04.2008
Сообщений: 7
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Уже наболевшее..

звезда в шоке))
(Offline)
 
Ответить с цитированием
Старый 18.07.2008, 00:03   #37
Samarik
Оператор ЭВМ
 
Регистрация: 08.02.2007
Сообщений: 47
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Уже наболевшее..

АВТОМАТУ спасибо, во всем разобрались. холидел и нуклеар, вы че имели ввиду?
(Offline)
 
Ответить с цитированием
Старый 18.07.2008, 00:05   #38
FrankH
Разработчик
 
Регистрация: 09.12.2007
Сообщений: 376
Написано 83 полезных сообщений
(для 122 пользователей)
Ответ: Уже наболевшее..

У тя функция загрузки прототипа и копирование готового прототипа на конвеер совмещены в одну, ты каждый раз создаешь спрайт, загружаешь текстуру, копируешь этот спрайт, в итоге у тебя в 2 раза больше спрайтов(и половина не удаляется) и куча тектур(они тоже не удаляются, а заполняют память), и в добавок еще тормоза от кучи лишних действий.
Загрузи частицу и текстуру ОДИН РАЗ, примени текстуру и свойства, хайдни, а уже при создании частиц крови просто копируй ее, затем удаляя копию...
(Offline)
 
Ответить с цитированием
Старый 18.07.2008, 10:22   #39
Samarik
Оператор ЭВМ
 
Регистрация: 08.02.2007
Сообщений: 47
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Уже наболевшее..

С этим я и разобрался уже. все, не смотрите на тот код шо в начале страницы
(Offline)
 
Ответить с цитированием
Старый 19.07.2008, 04:21   #40
Dream
быдло
 
Регистрация: 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
Samarik
Оператор ЭВМ
 
Регистрация: 08.02.2007
Сообщений: 47
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Уже наболевшее..

эт ты к чему ваще все это написал?
(Offline)
 
Ответить с цитированием
Старый 20.07.2008, 03:22   #42
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Радость Re: Уже наболевшее..

небуду сорить в форуме, напишу тут..

у меня проблема с реализацией частиц, проблема состоит в том что я немогу сделать так чтоб частицы летели из бота, в которого я попал.
создал я частицы, они работают, создал условие что при коллизии пули с ботом летят частицы, всё это работает..
добился того что при колизии пули с ботом вылазит ошибка "ентити даз нот ексист.." ну эт када я пробовал с командами EntityX(Bot),y,z и тд..

выложу код частиц

К этому гг)))
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос про наболевшее - коллизии. DEGABB 3D-программирование 47 10.02.2008 02:37


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com