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=177)

ZanoZa 31.10.2005 23:36

ВАЩЕ КОЗЫРНО :blink: только тормозит-это возможно убрать?

НУБ 01.11.2005 06:55

Вот немного оптимизированная версия:

Код:

Global ark_blur_image, ark_blur_texture, ark_blur_texture1, ark_sw, ark_sh,spr2,spr3,spr4,spr5,glowcam,glowsize=256

Function CreateBlurImage(cam)

        ark_sw = GraphicsWidth()
        ark_sh = GraphicsHeight()
        If GraphicsWidth()=1024 sprp#=.002
        If GraphicsWidth()=800 sprp#=.0025
        If GraphicsWidth()=640 sprp#=.003
       
;Create sprite
        ark_blur_image = CreateMesh(cam)
        Local sf = CreateSurface(ark_blur_image)
        AddVertex sf, -1, 1, 0, 0, 0
        AddVertex sf, 1, 1, 0, 1, 0
        AddVertex sf, -1, -1, 0, 0, 1
        AddVertex sf, 1, -1, 0, 1, 1
        AddTriangle sf, 0, 1, 2
        AddTriangle sf, 3, 2, 1

        EntityFX ark_blur_image, 1
        ScaleMesh ark_blur_image, 2048.0 / Float(ark_sw), 2048.0 / Float(ark_sw), 1
        PositionEntity ark_blur_image, -sprp+0, sprp+0, 2.000
        EntityOrder ark_blur_image, -2
        EntityBlend ark_blur_image,1
        ark_blur_image = ark_blur_image
       
;Create blur texture
        ark_blur_texture = CreateTexture(ark_sw, ark_sw,256)

        EntityTexture ark_blur_image, ark_blur_texture
        TextureBlend ark_blur_texture,1
        EntityAlpha ark_blur_image,0
        HideEntity ark_blur_image
End Function

Function UpdateBlur(cam,power#)
If power#>0
EntityAlpha ark_blur_image,power#

ShowEntity ark_blur_image
CopyRect *ark_sw / 2 - 512, ark_sh / 2 - 512, 1024, 1024, 0, 0, BackBuffer(), TextureBuffer(ark_blur_texture)

Else
EntityAlpha ark_blur_image,power#
HideEntity ark_blur_image
EndIf
End Function


ZanoZa 01.11.2005 11:30

Пасибо :)

ZanoZa 01.11.2005 11:31

Чуваки, а кто знает как сделать анимированный спрайт(у меня типа взрыв лента из изображений)? :SOS:

jimon 01.11.2005 19:26

в теории - создать спрайт и наложить на него anim texture :) сам непроверял - но видел в примерах

alcosholik 01.11.2005 22:43

Цитата:

Originally posted by ZanoZa@Nov 1 2005, 09:31 AM
Чуваки, а кто знает как сделать анимированный спрайт(у меня типа взрыв лента из изображений)? :SOS:
Разбиваешь свою ленту изображений на отдельные файлы с последовательной нумерацией. Например, expl0.jpg, expl1.jpg и т.д.

Потом в Блице создаешь массив:
Код:

Dim Explosion(20);число в скобках - количество кадров

;Загружаешь в массив последовательно все кадры:
For i=0 To 20
 Explosion(i)=LoadSprite("animation\expl"+i+".jpg")
 ScaleSprite Explosion(i), .2, .2
 HideEntity Explosion(i)
Next

;Далее в основном цикле пишешь:
If vIfExplode=1
 If vExplFrame>0 Then HideEntity Explosion(vExplFrame-1)
 PositionEntity Explosion(vExplFrame), x, y, z;вместо x, y и z подставляешь необходимые значения
 ShowEntity Explosion(vExplFrame)
 vExplFrame=vExplFrame+1
 If vExplFrame>20 Then vExplFrame=0: vIfExplode=0
End if

И все. Теперь, когда должен отображаться взрыв, присваиваешь переменной vIfExplode значение 1.

Diplomat 01.11.2005 23:44

А не проще Sprite=CreateSprite(), ленту грузить в анимированную текстуру Texture=LoadAnimTexture(...), а потом на спрайт применять EntityTexture Sprite,Texture,Номер_Кадра ? ;)

jimon 01.11.2005 23:56

ето я и предлогаю :)

ZanoZa 02.11.2005 10:24

Цитата:

Originally posted by Diplomat@Nov 1 2005, 10:44 PM
А не проще Sprite=CreateSprite(), ленту грузить в анимированную текстуру Texture=LoadAnimTexture(...), а потом на спрайт применять EntityTexture Sprite,Texture,Номер_Кадра ? ;)
Я так и делаю, но у меня отоброжает первый кадр, а как сделать чтобы-это двигалось?

Diplomat 02.11.2005 11:54

По многочисленным просьбам трудящихся повторяем:
Цитата:

EntityTexture Sprite,Texture,Номер_Кадра

:ok:

P.S.
"-Доктор! У меня ноги чернеют!!
-А мыть не пробовали?
-Пробовал! Не помогает! Через полгода снова чернеют!!"
Всё к тому, что иногда полезно прочесть Хелп по предложенной тебе команде. 8)

ZanoZa 02.11.2005 17:03

И чё будет двигаться?

impersonalis 02.11.2005 21:08

2alcoSHoLiK
Извини, но твой вариант - просто страх:
1) есть стандартные функции для анимированной текстуры
2) разбивка ленты на отдельные файлы снижает качество испльзования места. Если так хочешь массив, так просто разрежь в памяти ленту на кусочки ( это не сложно : каждый кадр - квадрат с известной высотой ( высота картинки)
3) Сомневаюсь, что юзание массива более рационально по памяти
и т.д.


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

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