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

JeSss 20.01.2008 22:49

Размытие...
 
НароД, неподскажите как сделать размытие как во многих играх, например когда едеш на мошине (NFS) или когда прыаеш с парашута (B.A.S.E. Jumping) и т.д.
Вообщем хочу создать размытие, хоть какое, лишбы было, подскажите плиз...:SOS:

Raiter 20.01.2008 22:54

Ответ: Размытие...
 
Коротко. Эфект добивается путём смешивания текущего и предадущего кадров. Помещаеш перед камерой квад. Создаеш текстуру. Делаем рендер в текстуру. Натягиваеш эту текстуру на квад. Немного смещаеш его. Получаем размытия.

+
http://forum.boolean.name/showthread.php?t=4186
http://forum.boolean.name/showthread.php?t=3486
http://www.justgoogleit.ru/

JeSss 20.01.2008 23:09

Re: Ответ: Размытие...
 
Страница устарела:
http://forum.boolean.name/showthread.php?t=4186
Не ф тему, там совсем нето:
http://forum.boolean.name/showthread.php?t=3486
Я пробовал, небойсо)
http://www.justgoogleit.ru/

Raiter 20.01.2008 23:11

Ответ: Размытие...
 
Цитата:

Страница устарела
Ничего не устрало там. А если не можеш пройти по ссылке, то пролистай несколько страниц назад раздел "3д программирование" и найдёш.

Цитата:

Не ф тему, там совсем нето
Это я сразу ответ кинул на твой следующий вопрос: "как отрендерить в текстуру?".

Цитата:

Я пробовал, небойсо)
Не похоже :) Ибо об этом говорили много....

alcoSHoLiK 20.01.2008 23:15

Ответ: Размытие...
 
Страница-то устарела, но много ума не надо, чтобы найти эту же статью в новом домене журнала Blitz et cetera
http://www.blitzetcetera.org/index.p...B5%D0%BD%D0%B8

DarkKnight 20.01.2008 23:17

Ответ: Размытие...
 
JeSss,размытие = блур.гугл в помощь.и blitz et cetera тоже;)

Raiter 20.01.2008 23:18

Ответ: Размытие...
 
Цитата:

Страница-то устарела, но много ума не надо, чтобы найти эту же статью в новом домене журнала Blitz et cetera
А я думал, что он про тему на форуме ( http://forum.boolean.name/showthread.php?t=4186 ) говорит :)

JeSss 20.01.2008 23:31

Re: Ответ: Размытие...
 
Цитата:

Сообщение от alcoSHoLiK (Сообщение 75086)

Я взял от туда создание Эфекта размытия и его обновления, присвоил к своей игре, и ничё...(

Raiter 20.01.2008 23:42

Ответ: Размытие...
 
Значит не так "присвоил"...

JeSss 20.01.2008 23:43

Re: Размытие...
 
ну тада я хз в чём там проблема((((((

Raiter 20.01.2008 23:44

Ответ: Размытие...
 
Если руки хоть приблизительно из нужного места ростут, то "присвоить" можно :-)

Код в студию!

JeSss 20.01.2008 23:47

Re: Размытие...
 
Мой?

;RPG Hax
Const texsize=1024,fx=7,o=-1
Graphics3D 800,600,32,2
SetBuffer BackBuffer()
Type TPlayer
Field ent
Field piv
Field go
End Type
Global
campiv=CreatePivot()
PositionEntity campiv,0,300,0
Global cam=CreateCamera(campiv)
RotateEntity CreateLight(),45,0,0
TurnEntity cam,45,0,0
CameraRange cam ,1,10000


plane=CreatePlane()
EntityPickMode plane,2
planetex=CreatePlaneTexture()
ScaleTexture planetex,100,100
EntityTexture plane,planetex
Global Player.TPlayer=CreatePlayer()
Repeat
If MouseDown
(1) Then
pick=CameraPick(cam,MouseX(),MouseY())
If pick=plane Then
PositionEntity
Player\piv,PickedX(),20,PickedZ()
Player\go=True
EndIf
EndIf
UpdatePlayer(Player)
CameraUpdate()
RenderWorld
Flip
Until KeyDown
(1)

Function createblurlayer(cam,z#,ang#,mgn#,bright#,alpha#,bmode,ord)
Local xres=GraphicsWidth()
Local yres=GraphicsHeight()
layer=CreateMesh(cam)
s=CreateSurface(layer)
;Вычисление координат текстуры
vx#=1.0*xres/texsize
vy
#=1.0*yres/texsize
AddVertex s,-1,-1,0,0,0
AddVertex s,1,-1,0,vx#,0
AddVertex s,-1,1,0,0,vy#
AddVertex s,1,1,0,vx#,vy#
AddTriangle s,0,1,2
AddTriangle s,3,2,1
;Определение величин для установки прямоугольника прямо перед камерой путем
; вычисления экранных координат точки трехмерного мира
PositionEntity layer,1,1,z#
CameraProject cam,EntityX(layer,True),EntityY(layer,True),EntityZ(layer,True)
rx#=ProjectedX#()-.5*xres
ry
#=ProjectedY#()-.5*yres
;Масштабирование слоя
ScaleMesh layer,.5*xres/rx#,.5*yres/ry#,1
;Сдлвиг прямоугольника на полпиксела влево-вверх, чтобы он был в центре экрана
PositionEntity layer,-.5/rx#,-.5/ry#,z#
RotateEntity layer,0,0,ang#
;Задание эффектов слоя
ScaleEntity layer,mgn#,mgn#,mgn#
EntityAlpha layer,alpha#
EntityBlend layer,bmode
col
=255*bright#
EntityColor layer,col,col,col
EntityFX layer,1
EntityOrder layer,ord
Return layer
End Function

Function
CreatePlaneTexture()
Local tex=CreateTexture(128,128)
Local buff=GraphicsBuffer()
SetBuffer TextureBuffer(tex)
Color 66,122,185
Rect 0,0,64,64
Rect 64,64,128,128
Color 183,234,247
Rect 64,0,128,64
Rect 0,64,64,128
SetBuffer buff
Return tex
End Function
Function
CreatePlayer.TPlayer()
p.TPlayer=New TPlayer

p
\ent=CreateCone()
RotateMesh p\ent,90,0,0
ScaleEntity p\ent,20,20,20
TranslateEntity p\ent,0,20,200
EntityColor p\ent,167,121,168
p\piv=CreatePivot()

Return p
End Function
Function
CameraUpdate()
Local sp
If KeyDown(42) Then sp=3 Else sp=1
If KeyDown(17) Then MoveEntity campiv,0,0,sp
If KeyDown(31) Then MoveEntity campiv,0,0,-sp
If KeyDown(30) Then MoveEntity campiv,-sp,0,0
If KeyDown(32) Then MoveEntity campiv,sp,0,0
End Function
Function
UpdatePlayer(p.TPlayer)
If Not p\go Then Return
PointToEntity(p\ent,p\piv,0.05)
MoveEntity p\ent,0,0,1
If EntityDistance(p\ent,p\piv)<6 Then p\go=False
End Function
Function
PointToEntity( src, dest, softness# )
; вычисляем компоненты вектора между обьектами
Local dx# = EntityX( src ) - EntityX( dest )
Local dy# = EntityY( src ) - EntityY( dest )
Local dz# = EntityZ( src ) - EntityZ( dest )
; ориентируем обьект по вектору
AlignToVector( src, -dx, -dy, -dz, 0, softness )
End Function
Function
updateblurlayer(layer,tex)
If tex=0 Then tex=CreateTexture(texsize,texsize)
EntityTexture layer,tex
CopyRect 0,0,GraphicsWidth(),GraphicsHeight(),0,0,BackBuffer(),TextureBuffer(tex)
Return tex
End Function

JeSss 20.01.2008 23:47

Re: Размытие...
 
Сори за тупой цвет, оно само так)

Raiter 20.01.2008 23:48

Ответ: Размытие...
 
Цитата:

Мой?
Нет мой!

Юзай тег [ code] [ /code]

Ну есть у тебя ф-ция createblurlayer. А ты её вызываеш?

JeSss 20.01.2008 23:50

Re: Размытие...
 
Кста, этот код пока пробный, я потом начну новый код писать, уже совсем другую игру, но постараюсь разобраться)

Raiter 20.01.2008 23:54

Ответ: Размытие...
 
Код:

;RPG Hax
Const texsize=1024,fx=7,o=-1
Graphics3D 800,600,32,2
SetBuffer BackBuffer()
Type TPlayer
Field ent
Field piv
Field go
End Type
Global campiv=CreatePivot()
PositionEntity campiv,0,300,0
Global cam=CreateCamera(campiv)
RotateEntity CreateLight(),45,0,0
TurnEntity cam,45,0,0



plane=CreatePlane()
EntityPickMode plane,2
planetex=CreatePlaneTexture()
ScaleTexture planetex,100,100
EntityTexture plane,planetex
Global Player.TPlayer=CreatePlayer()
bl=createblurlayer(cam,1,0,1,1,.95,1,o)
Repeat
If MouseDown(1) Then
pick=CameraPick(cam,MouseX(),MouseY())
If pick=plane Then
PositionEntity Player\piv,PickedX(),20,PickedZ()
Player\go=True
EndIf
EndIf
UpdatePlayer(Player)
CameraUpdate()
RenderWorld
bltex=updateblurlayer(bl,bltex)
Flip
Until KeyDown(1)

Function createblurlayer(cam,z#,ang#,mgn#,bright#,alpha#,bmode,ord)
Local xres=GraphicsWidth()
Local yres=GraphicsHeight()
layer=CreateMesh(cam)
s=CreateSurface(layer)
;Вычисление координат текстуры
vx#=1.0*xres/texsize
vy#=1.0*yres/texsize
AddVertex s,-1,-1,0,0,0
AddVertex s,1,-1,0,vx#,0
AddVertex s,-1,1,0,0,vy#
AddVertex s,1,1,0,vx#,vy#
AddTriangle s,0,1,2
AddTriangle s,3,2,1
;Определение величин для установки прямоугольника прямо перед камерой путем
; вычисления экранных координат точки трехмерного мира
PositionEntity layer,1,1,z#
CameraProject cam,EntityX(layer,True),EntityY(layer,True),EntityZ(layer,True)
rx#=ProjectedX#()-.5*xres
ry#=ProjectedY#()-.5*yres
;Масштабирование слоя
ScaleMesh layer,.5*xres/rx#,.5*yres/ry#,1
;Сдлвиг прямоугольника на полпиксела влево-вверх, чтобы он был в центре экрана
PositionEntity layer,-.5/rx#,-.5/ry#,z#
RotateEntity layer,0,0,ang#
;Задание эффектов слоя
ScaleEntity layer,mgn#,mgn#,mgn#
EntityAlpha layer,alpha#
EntityBlend layer,bmode
col=255*bright#
EntityColor layer,col,col,col
EntityFX layer,1
EntityOrder layer,ord
Return layer
End Function

Function CreatePlaneTexture()
Local tex=CreateTexture(128,128)
Local buff=GraphicsBuffer()
SetBuffer TextureBuffer(tex)
Color 66,122,185
Rect 0,0,64,64
Rect 64,64,128,128
Color 183,234,247
Rect 64,0,128,64
Rect 0,64,64,128
SetBuffer buff
Return tex
End Function
Function CreatePlayer.TPlayer()
p.TPlayer=New TPlayer

p\ent=CreateCone()
RotateMesh p\ent,90,0,0
ScaleEntity p\ent,20,20,20
TranslateEntity p\ent,0,20,200
EntityColor p\ent,167,121,168
p\piv=CreatePivot()

Return p
End Function
Function CameraUpdate()
Local sp
If KeyDown(42) Then sp=3 Else sp=1
If KeyDown(17) Then MoveEntity campiv,0,0,sp
If KeyDown(31) Then MoveEntity campiv,0,0,-sp
If KeyDown(30) Then MoveEntity campiv,-sp,0,0
If KeyDown(32) Then MoveEntity campiv,sp,0,0
End Function
Function UpdatePlayer(p.TPlayer)
If Not p\go Then Return
PointToEntity(p\ent,p\piv,0.05)
MoveEntity p\ent,0,0,1
If EntityDistance(p\ent,p\piv)<6 Then p\go=False
End Function
Function PointToEntity( src, dest, softness# )
; вычисляем компоненты вектора между обьектами
Local dx# = EntityX( src ) - EntityX( dest )
Local dy# = EntityY( src ) - EntityY( dest )
Local dz# = EntityZ( src ) - EntityZ( dest )
; ориентируем обьект по вектору
AlignToVector( src, -dx, -dy, -dz, 0, softness )
End Function
Function updateblurlayer(layer,tex)
If tex=0 Then tex=CreateTexture(texsize,texsize)
EntityTexture layer,tex
CopyRect 0,0,GraphicsWidth(),GraphicsHeight(),0,0,BackBuffer(),TextureBuffer(tex)
Return tex
End Function

Цитата:

Кста, этот код пока пробный, я потом начну новый код писать, уже совсем другую игру, но постараюсь разобраться)
Блин, парень ... Что писать? У тебя этот код состоит из двух скопистеных кусков...
Причем второй ты даже скопипастить толком не смог...

Я всегда говорил, что копипаст - зло!
Учи азы!

JeSss 20.01.2008 23:56

спс огромное))

А кстати, сможеш сказать пожалст, какие ты внёс изменения, всётаки надо понять)))

Raiter 20.01.2008 23:59

Ответ: Размытие...
 
Спс в статистеке не отобразится :-) Есть кнопка "Thanks"... эээ ... тоесть "Полезно" ;) :)

Цитата:

А кстати, сможеш сказать пожалст, какие ты внёс изменения, всётаки надо понять)))
Йпрст... Ты смотрел хоть пример на БлицЕтСетера??? Или тупо скопировал 2 ф-ции? Скорее второе. Ну ф-ции скопировтаь то ты скопировал, а вызывать их кто за тебя будет? Я лишь дописал вызов функций в цыкле и перед ним. Вот и всё. Вот смотри:
Код:

; это всё - код ДО главного цыкла
plane=CreatePlane()
EntityPickMode plane,2
planetex=CreatePlaneTexture()
ScaleTexture planetex,100,100
EntityTexture plane,planetex
Global Player.TPlayer=CreatePlayer()
bl=createblurlayer(cam,1,0,1,1,.95,1,o) ; здесь мы создаём квад на который будем рисовать текстуру из рендера

; сдесь начинается главный цыкл!
Repeat
If MouseDown(1) Then
pick=CameraPick(cam,MouseX(),MouseY())

Код:

UpdatePlayer(Player)
CameraUpdate()
RenderWorld
; тут, после рендера, мы вызываем ф-цию обновления нашего квада.
bltex=updateblurlayer(bl,bltex)
Flip
Until KeyDown(1)

Да. И ещё убрал строчку:
Код:

CameraRange cam ,1,10000
ЗЫЖ пиши в 1 сообщении. Есть кнопка "Правка"

Taugeshtu 21.01.2008 01:55

Ответ: Размытие...
 
ЗЫЖ.
снова и снова...
Ничего не буду говорить. Захочет - сам поумнеет.

а) о блюре говорили много и еще раз много... А потом еще много всего добавили, и даже потом обновляли, правили, в итоге получив множество инфы. (топикстартеру читать следующее предложение запрещено) И если у человека кора головного мозга с отсутствующей картой нормалей - то это его проблемы.
Ибо [no place for copy-pastors in true gamedev] ...

Raiter, а тебе огромный респект за проявленное терпение.
Эх, и по теме добавить нечего. Хотя...
Советую поэкспериментировать с различными блур-эффектами (прим. внутреннего голоса: "Если в соктебрастенный код вникнешь"), особенно с различными вариантами TextureBlend (ты же догадаешься для этого рендерить одну текстуру для блюра а затем делать несколько слоев с мультитекстурированием? (; )
при сильном и жгучем желании тебе светит даже glow. Точнее его подобие.

IGR 21.01.2008 11:20

Ответ: Размытие...
 
Цитата:

при сильном и жгучем желании тебе светит даже glow
о, glow !! а где его скопи-пастить ?? :-)

PS: glow тоже на форуме был !! так-что JeSss, если надо, то лучше сначала поищи, а потом еси что не понятно, то спрашивай !! :)

HolyDel 21.01.2008 11:20

Ответ: Размытие...
 
Симпатичный глоу делал МоКа.
смотри на www.moka.ucoz.ru

Raiter 21.01.2008 14:53

Ответ: Размытие...
 
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 200 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.


Цитата:

Raiter, а тебе огромный респект за проявленное терпение.
Стараюсь :)

А тебе, JeSss, я еще раз ОЧЕНЬ НАСТОЯТЕЛЬНО рекомендую начать с изучения азов!
Я понимаю, что тебе хочется сразу написать великую игру. Все мы (или почти все) это проходили. Но ты никогда не сможеш постоить хороший дом без фундамента. И никогда не начнёш строить его с крыши. Человек сначала усится ходить, а уже потом бегать... Вот фундамент - это твои базовые знания! Так заложи фундамент и постепенно строй дом, продвигаясь к крыше. Научись ходить и со временем побежиш! ;)

И никогда не копировать чужой код. Ну или по крайней мере не копировать, если ты не понимаеш этот код....

JeSss 21.01.2008 15:08

Re: Размытие...
 
спасмбо вообщем всем за всё! А тебе, Raiter, отдельное, БОЛЬШОЕ, 2-ое спасибо! (2-ое значит я тя 2 раза поблагодарил))) за помощь в коде, и за обьяснение)) )

А кстати, ещё 1 вопрос, напишу сдесь:
как сделать чтобы чел двигался вперёд ПОСЛЕ НАЖАТИЯ кнопки, а не вовремя ЗАЖАТОЙ кнопки??

HolyDel 21.01.2008 16:37

Ответ: Размытие...
 
завести перменную состояния
If KeyDown(200) then run=1
if keydown(208) then run=0
if run then moveentity plaeyer,0,0,1

FrankH 21.01.2008 16:41

Ответ: Размытие...
 
Цитата:

Сообщение от HolyDel (Сообщение 75172)
завести перменную состояния
If KeyDown(200) then run=1
if keydown(208) then run=0
if run then moveentity plaeyer,0,0,1

If KeyHit(200) then run=1-run
if Not(run=0) then moveentity plaeyer,0,0,1

HolyDel 21.01.2008 16:43

Ответ: Размытие...
 
ну смотря что требуется.
кстати, в таком случае:
If KeyHit(200) then run=1-run

moka 21.01.2008 17:26

Ответ: Размытие...
 
Или:
IKhUp=KeyHit(200)
If IKhUp run=not run

JeSss 21.01.2008 18:11

Re: Размытие...
 
спасибо, оба работают!

JeSss 21.01.2008 18:51

Re: Ответ: Размытие...
 
[quote=Raiter;75108]Спс в статистеке не отобразится :-) Есть кнопка "Thanks"... эээ ... тоесть "Полезно" ;) :)



Йпрст... Ты смотрел хоть пример на БлицЕтСетера??? Или тупо скопировал 2 ф-ции? Скорее второе. Ну ф-ции скопировтаь то ты скопировал, а вызывать их кто за тебя будет? Я лишь дописал вызов функций в цыкле и перед ним. Вот и всё. Вот смотри:
Код:

; это всё - код ДО главного цыкла
plane=CreatePlane()
EntityPickMode plane,2
planetex=CreatePlaneTexture()
ScaleTexture planetex,100,100
EntityTexture plane,planetex
Global Player.TPlayer=CreatePlayer()
bl=createblurlayer(cam,1,0,1,1,.95,1,o) ; здесь мы создаём квад на который будем рисовать текстуру из рендера
 
; сдесь начинается главный цыкл!
Repeat
If MouseDown(1) Then
pick=CameraPick(cam,MouseX(),MouseY())

Код:

UpdatePlayer(Player)
CameraUpdate()
RenderWorld
; тут, после рендера, мы вызываем ф-цию обновления нашего квада.
bltex=updateblurlayer(bl,bltex)
Flip
Until KeyDown(1)

Да. И ещё убрал строчку:
Код:

CameraRange cam ,1,10000
quote]

Млин, я вообщем начал делать новый код, и нечё неработает, програма открывается, чёрный экран, и сразуже выходит...(( непойму ф чём дело то(((((:''((

HolyDel 21.01.2008 18:55

Ответ: Размытие...
 
игрового цикла нет?

JeSss 21.01.2008 19:05

Re: Размытие...
 
эээм, вроде есть...

HolyDel 21.01.2008 19:11

Ответ: Размытие...
 
камера есть?
вообще давай код в студию.

JeSss 21.01.2008 19:17

Re: Размытие...
 
Держи:

Graphics3D
640,480,16,1

SetBuffer BackBuffer()

lit=CreateLight()
cub=CreateCube()
PositionEntity cub,0,500,0
EntityColor cub,0,355,0
cam=CreateCamera(cub)
; Делаем столб
stolb=CreateCube()
ScaleEntity stolb,1,4,1
PositionEntity stolb,-7,0,7
; Делаем столб
stolb2=CreateCube()
ScaleEntity stolb2,1,4,1
PositionEntity stolb2,7,0,7

;Функция создания слоя размытия, привязанного к камере - возвращает адрес слоя
Function createblurlayer(cam,z#,ang#,mgn#,bright#,alpha#,bmode,ord)
Local xres=GraphicsWidth()
Local yres=GraphicsHeight()
layer=CreateMesh(cam)
s=CreateSurface(layer)
;Вычисление координат текстуры
vx#=1.0*xres/texsize
vy
#=1.0*yres/texsize
AddVertex s,-1,-1,0,0,0
AddVertex s,1,-1,0,vx#,0
AddVertex s,-1,1,0,0,vy#
AddVertex s,1,1,0,vx#,vy#
AddTriangle s,0,1,2
AddTriangle s,3,2,1

plan=CreatePlane()
EntityColor plan,0,0,255

PositionEntity plan,0,-1,5
PositionEntity cam,0,3,-5
bl=createblurlayer(cam,1,0,1,1,.95,1,o)

Repeat
If KeyHit
(200) Then run=1-run
If Not(run=0) Then MoveEntity cub,0,-0.5,0
If KeyDown(208) MoveEntity cub,0,0,-.1
If KeyDown(203) TurnEntity cub,0,1,0
If KeyDown(205) TurnEntity cub,0,-1,0

UpdateWorld
RenderWorld


Flip

bltex=updateblurlayer(bl,bltex)
Flip
Until KeyDown
(1)
ScaleEntity layer,mgn#,mgn#,mgn#
EntityAlpha layer,alpha#
EntityBlend layer,bmode
col
=255*bright#
EntityColor layer,col,col,col
EntityFX layer,1
EntityOrder layer,ord
Return layer
End Function
Function
updateblurlayer(layer,tex)
If tex=0 Then tex=CreateTexture(texsize,texsize)
EntityTexture layer,tex
CopyRect 0,0,GraphicsWidth(),GraphicsHeight(),0,0,BackBuffer(),TextureBuffer(tex)
Return tex

End Function
End

HolyDel 21.01.2008 19:35

Ответ: Размытие...
 
это аццкийчтозанах.
1. где игровой цикл? Нафиг ты его впихнул в ф-ию? Лана, фиг с ним, пусть живет в фу-ии, но ее надо хотябы вызвать.
2. что это должно делать я так и не понял.

JeSss 21.01.2008 19:40

Re: Размытие...
 
Кароч я хачю вызвать Блур, но как, в чём проблема я писал, про чёрный экран(((

Raiter 21.01.2008 19:41

Ответ: Размытие...
 
Код:

;инициализируем графику
Graphics3D 800,600,32,1

;юзаем двойную буферизацию. для этого "рабочим" устанавливаем задний буфер
SetBuffer BackBuffer()

; тут можеш объявлять переменные, типы, грузить модели, создавать примитивы и т.д.

; глобальная переменная
Global Variable1

; тип
Type MyType1
    Field X
End Type

; создаем примитив, камеру, свет
Cube = CreateCube()
Light = CreateLight()
Cam = CreateCamera()


; начало главного цыкла. В перводе звучит как "повторять".
; Тоесть весь код после этого слова будет непрерывно (точне до
; определенного уcловия,
; при котором выполнение прервётся) выполнятся

Repeat

; здесь будет основной код твоей игры
; мы можем вызвать ф-цию сдесь

Func1()


; рендерим нашу картинку
RenderWorld()

; меняем местами задний и передний буффер
Flip

; пока не нажата кнопка "Esc". конец цылка, выход с него,
; завершение програмы, короче хеппиенд :)
Until KeyDown(1)

; тут можеш писать функции

; объявляем ф-цию
Function Func1()

  ; тут код ф-ции

; закрываем ф-цию
End Function


HolyDel 21.01.2008 19:45

Ответ: Размытие...
 
Цитата:

Кароч я хачю вызвать Блур, но как, в чём проблема я писал, про чёрный экран(((
посмотри еще раз на свою программу внимательно. она ничего не делает.

JeSss 21.01.2008 19:47

Re: Ответ: Размытие...
 
Цитата:

Сообщение от Raiter (Сообщение 75216)
Код:

;инициализируем графику
Graphics3D 800,600,32,1
 
;юзаем двойную буферизацию. для этого "рабочим" устанавливаем задний буфер
SetBuffer BackBuffer()
 
; начало главного цыкла. В перводе звучит как "повторять".
; Тоесть весь код после этого слова будет непрерывно (точне до
; определенного уcловия,
; при котором выполнение прервётся) выполнятся
 
Repeat
 
; здесь будет основной код твоей игры
 
; рендерим нашу картинку
RenderWorld()
 
; меняем местами задний и передний буффер
Flip
 
; пока не нажата кнопка "Esc". конец цылка, выход с него,
; завершение програмы, короче хеппиенд :)
Until KeyDown(1)


Впринцыпи понятно, но неочень..(:wallbash: :''((
Можно в коде plzzzz:SOS:

Raiter 21.01.2008 20:23

Ответ: Размытие...
 
Вот!

Код:

;инициализируем графику
Graphics3D 800,600,32,1

;юзаем двойную буферизацию. для этого "рабочим" устанавливаем задний буфер
SetBuffer BackBuffer()

; тут можеш объявлять переменные, типы, грузить модели, создавать примитивы и т.д.

; ========================= П Е Р Е М Е Н Н Ы Е =========================

; глобальная переменная
Global Variable1

; ====================================================================



; ============================== Т И П Ы ===============================

; тип
Type MyType1
    Field X
End Type

; ====================================================================

; =========================== О Б Ъ Е К Т Ы =============================

; создаем примитив - куб
Global Cube = CreateCube()
PositionEntity Cube,0,1,0

; создаем свет
Light = CreateLight()
; создаем камеру
Cam = CreateCamera()
; помещаем камеру немного сзади и сверху
PositionEntity Cam,0,5,-10

; создаем плоскость
Plane = CreatePlane()
; ставим для неё цвет
EntityColor Plane,0,0,255
 
; ====================================================================


; ================================ Г Л А В Н Ы Й  Ц Ы К Л ===================

; начало главного цыкла. В перводе звучит как "повторять".
; Тоесть весь код после этого слова будет непрерывно (точне до
; определенного уcловия,
; при котором выполнение прервётся) выполнятся

Repeat

; здесь будет основной код твоей игры
; мы можем вызвать ф-цию сдесь

UpdatePlayer() ; вызываем ф-цию обновления игрока. ф-цию управления им


; рендерим нашу картинку
RenderWorld()

; меняем местами задний и передний буффер
Flip

; пока не нажата кнопка "Esc". конец цылка, выход с него,
; завершение програмы, короче хеппиенд :)
Until KeyDown(1)

; ======================================================================


; ================================= Ф У Н К Ц И И =====================
; тут можеш писать функции

; объявляем ф-цию
Function UpdatePlayer() ; ф-ция обновления игрока

  ; тут код ф-ции
  If KeyDown(200) Then MoveEntity Cube,0,0,0.1 ; движение вперед
  If KeyDown(208) Then MoveEntity Cube,0,0,-0.1  ; движение назад

  If KeyDown(203) Then TurnEntity Cube,0,1,0 ; поворот влево
  If KeyDown(205) Then TurnEntity Cube,0,-1,0 ; поворот вправо
 
; закрываем ф-цию
End Function

; =====================================================================


Diplomat 21.01.2008 20:56

Ответ: Размытие...
 
Райтер, ты скоро книгу Б.Мартузана "Подружись со мной, компьютер!" ему напишешь. Али "Выучи Блиц3Д за 21 день". ))

Tadeus 21.01.2008 21:25

Ответ: Размытие...
 
Это у них с ХолиДелом болезнь такая. Время от времени раскрывается и нубы пользуются симптомами :-)

JeSss 21.01.2008 21:34

Re: Ответ: Размытие...
 
Raiter

Тамже нету эфекта размытия...

FrankH 21.01.2008 21:49

Ответ: Размытие...
 
Человек просто не желает учить, он хочет сделать, а учить не хочет..
Или это стёб..

JeSss 21.01.2008 22:19

Re: Размытие...
 
Это не стёб, и сделать я хачу, как только я сделал, у меня просто в углу появился квадратик и всё... некакова блура нет...

tormoz 21.01.2008 22:49

Ответ: Размытие...
 
JeSss
Какое размытие ?
Какой рагдолл ?
Ты абсолютно не знаешь алгоритмики и спотыкаешся на элементарных вещах.
Еще одна такая тема (сложные вещи, в которых ты ни в зуб ногой) и буду ставить вопрос о удалении твоих тем.
Все равно толку никакого.
Еще раз требую: пройди простые уроки, разбери примеры, пойми что и как работает.
Не копируй код, не поняв его !

Raiter, HolyDel
Не пишите ему ни строчки кода, пока не освоит азов
Вы его развращаете.
Он же не думает совершенно, только попрошайничает.

dimanche13 21.01.2008 22:54

Ответ: Размытие...
 
Ржал, не мог сдержать слёз. Всем спастбо ;)

Raiter 21.01.2008 23:38

Ответ: Размытие...
 
Цитата:

Тамже нету эфекта размытия..
OMG! Я же тебе подробно расписал, как ПРАВИЛЬНО строить программу! Я незнаю как уже более доходчиво объяснить. Ты просто отказываешся думать! В хз который раз тебе говорю: начни с азов! Не нужен тебе никакой блур. А если даже хочеш игру с блуром, то поверь прикручивать блур и другие эфекты нужно в последнюю очередь! Сначало построй скелет игры, займись логикой, напиши двиг... Потом займёшся визуальным наполнением. НО! Даже если ты не можеш ждать и тебе непременно подавай блур сейчас, то неужели я непонятно расписал в примере где ф-ция, где цикл и как вызывать ф-цию? Разве трудно после этого просто скопировать (разбиратся в коде ты всеравно не будеш) 2 ф-ции и вызвать их в нужном месте?????

ЗЫЖ Diplomat, жжош!

Bagration 21.01.2008 23:43

Ответ: Размытие...
 
Я думаю его надо забанить на месяц - учить азы.

Raiter 22.01.2008 01:31

Ответ: Размытие...
 
Цитата:

Я думаю его надо забанить на месяц - учить азы.
Бан - не выход. Тем более без причины. В лудшем случаи он просто обидится и уйдёт на другой форум или будет продолжать копипастить, или вообще просто забьёт на программинг... В худшем может повторится ситуация с Кристалом :)

А тут мы пытаемся навернуть его на путь истинный...

2 JeSss:

Может так будет понятнее? :dontknow:

Код:

;инициализируем графику
Graphics3D 800,600,32,1

;юзаем двойную буферизацию. для этого "рабочим" устанавливаем задний буфер
SetBuffer BackBuffer()

; тут можеш объявлять переменные, типы, грузить модели, создавать примитивы и т.д.

; ========================= П Е Р Е М Е Н Н Ы Е =========================

; глобальная переменная
Global Variable1

; ====================================================================



; ============================== Т И П Ы ===============================

; тип
Type MyType1
    Field X
End Type

; ====================================================================

; =========================== О Б Ъ Е К Т Ы =============================

; создаем примитив - куб
Global Cube = CreateCube()
PositionEntity Cube,0,1,0

; создаем свет
Light = CreateLight()
; создаем камеру
Cam = CreateCamera()
; помещаем камеру немного сзади и сверху
PositionEntity Cam,0,5,-10

; создаем плоскость
Plane = CreatePlane()
; ставим для неё цвет
EntityColor Plane,0,0,255
 
; ====================================================================


; ================================ Г Л А В Н Ы Й  Ц Ы К Л ===================

; начало главного цыкла. В перводе звучит как "повторять".
; Тоесть весь код после этого слова будет непрерывно (точне до
; определенного уcловия,
; при котором выполнение прервётся) выполнятся

Repeat

; здесь будет основной код твоей игры
; мы можем вызвать ф-цию сдесь

UpdatePlayer() ; вызываем ф-цию обновления игрока. ф-цию управления им


; рендерим нашу картинку
RenderWorld()

; меняем местами задний и передний буффер
Flip

; пока не нажата кнопка "Esc". конец цылка, выход с него,
; завершение програмы, короче хеппиенд :)
Until KeyDown(1)

; ======================================================================



; ================================= Ф У Н К Ц И И =====================
; тут можеш писать функции

; объявляем ф-цию
Function UpdatePlayer() ; ф-ция обновления игрока

  ; тут код ф-ции
  If KeyDown(200) Then MoveEntity Cube,0,0,0.1 ; движение вперед
  If KeyDown(208) Then MoveEntity Cube,0,0,-0.1  ; движение назад

  If KeyDown(203) Then TurnEntity Cube,0,1,0 ; поворот влево
  If KeyDown(205) Then TurnEntity Cube,0,-1,0 ; поворот вправо
 
; закрываем ф-цию
End Function

; =====================================================================

Сдесь: главный цыкл выделен красным! Начало и конец цылка жирным. Вызов ф-ции подчеркнут...

В цикле ты пишеш тот код, который должен постоянно повторятся. В нём ты не пишеш создание камеры и т.д. В цыкле конечно выполняются единичные действия или действия которые повторяюся нужное кол-во раз, а не постоянно, но для этого вводятся условия ( If - Then ( Else - IfElse ) ), счетчики или переменные - флаги.

Синим (и зеленым) выделено то, что ты пишеш ДО цыкла.

Зеленым выделена функция. Жирным - начал и конец оной....

JeSss 22.01.2008 16:07

Re: Размытие...
 
То, что ты их раскрасил пойму без темы, это я и так понимал, а насчёт функций, я туда впихивал функции создания и обновления Блоу, и НЕФИГА!

HolyDel 22.01.2008 16:27

Ответ: Размытие...
 
JeSss. разберись пока в этом коде.
рано тебе еще делать Блоу (кем бы он не был)

IGR 22.01.2008 16:47

Ответ: Размытие...
 
Цитата:

То, что ты их раскрасил пойму без темы,
раскраска, помогает сконцентрироватся и легче воспринимать, то что написано !! ;)


Блоу, кста, переводится как УДАР !! :-) к чему бы это ??

jimon 22.01.2008 17:36

Ответ: Размытие...
 
JeSss
подсказка на милион :

1) не работает
Код:

repeat

function blablabla()
print "krutooo"
end function

until

2) работает
Код:

repeat
blablabla()
until

function blablabla()
print "krutooo"
end function


JeSss 22.01.2008 17:59

Re: Ответ: Размытие...
 
Цитата:

Сообщение от HolyDel (Сообщение 75333)
рано тебе еще делать Блоу (кем бы он не был)

ой, ну или Блур, кароч размытие))):wallbash:

dimanche13 22.01.2008 18:34

Ответ: Размытие...
 
Я с Вас фигею, Господа. В соседней ветке срете человеку за шиворот, за плохой(по вашему мнению) код, а тут разноцветными фламастерами разрисовываете КритКубы ленивому Нубу.

Raiter 22.01.2008 19:48

Ответ: Размытие...
 
"Срем за шиворот" потому, что вот "ленивый нуб" и в простейшем коде не может разобратся. А теперь представть что будет, если он скопирует тот код ;)

HolyDel 22.01.2008 21:15

Ответ: Размытие...
 
dimanche13 + 1
в упор не понимаю почему забанили "Главу Проекта". Оскорблений со стороны "обсирателей" было не меньше, а то и больше.

имхо, нубчик который ошибается лучше чем нубчик который ничего не делает.

tormoz 22.01.2008 22:21

Ответ: Размытие...
 
Цитата:

Сообщение от HolyDel (Сообщение 75379)
dimanche13 + 1
в упор не понимаю почему забанили "Главу Проекта". Оскорблений со стороны "обсирателей" было не меньше, а то и больше.

Он забанен за прямое оскорбление всех форумчан выразившееся в словах "говноеды" и "засранцы"
Примеры оскорблений его в студию
Я таковых не нашел
Вся критика кода по делу
На личности никто не переходил

HolyDel 22.01.2008 23:01

Ответ: Размытие...
 
tormoz, это не критика ;)
критика - это когда указывают на ошибки, а не на их наличие.

ща будет

added
не будет ;) оказывается прямые оскорбления "Главы Проекта" начались после евошных оскорблений:

пример:

Цитата:

Сообщение от Raiter
Скорее с неадекватным малолетним психом

Цитата:

Сообщение от Raiter
Сдесь тебе не помогут. Ищи помощи на форуме психоаналитиков и психиатров. А так же отведай их в реале....


tormoz 23.01.2008 00:46

Ответ: Размытие...
 
HolyDel
Ты невнимательно посмотрел.
Оскорбление с говноедами и засранцами было выше поста Райтера
Он только ответил (ИМХО еще мягко)

Я среагировал по правилам: нагадил- получи. Минимальный срок бана за оскорбления 10 суток.

HolyDel 23.01.2008 01:30

Ответ: Размытие...
 
Цитата:

оказывается прямые оскорбления "Главы Проекта" начались после евошных оскорблений
под этим я имел ввиду что "Глава Проекта" начал первым ругаться. так что все ок. сам виноват.

Raiter 23.01.2008 02:11

Ответ: Размытие...
 
Его никто не оскорблял :) Я лишь сделал выводы, почитав его пост. Выводы были изложени постом ниже...

На него никто не наежжал. Ему лиш сказали, что код плохой. Но похоже, что это человек с завышенной самооценкой. Да чёрт с тем кодом. Плохой так плохой. Всеравно возможно была бы хоть какая-то польза для новичков. НО! Меня задело вот что:
Цитата:

Да я знаю что плохой)))) еслиб он был хороший яб не выкладывал его!
Тоесть человек не желает "творить добро". Он лишь выбрасывает мусор... Так зачем такая деятельность? Пойдёт ли она на благо? Если все начнут выкладывать свой неудачный плохой код? Кому от этого будет польза? Новичкам? Которые будут учится на гавнокоде? Не думаю... А ссорится я с ним не собирался и не пытался вообще. На моё примирительное сообщение (которое предшествеовало извержению автора в виде "гавноедов")он ответил абсолютно неадекватно. Дальше же мне просто было интересно за ним понаблюдать и я "поддерживал дискуссию", коректно отвечая на его высказывания :) Вот и всё :)

moka 23.01.2008 02:15

Ответ: Размытие...
 
Просто он ожидал большего.
Иногда человек хочет подружиться и незнает как.

Я например тже выкладываю на народ, не только по моему мнению хороший код, но и плохой, а порой ужастный.

Народ, давайте закроем эту темку, что уже сделано, то сделано, и нечего тут обсуждать, все для себя что-то поняли, и хватит на этом. Не хочется снова на форуме того балогана и беспредела что не раз разжигался здесь.

Спасибо

alcoSHoLiK 23.01.2008 03:04

Ответ: Размытие...
 
Нды... тема темы под действием эффекта размытия размыла мое сознание.
Дипломат, требуется твое дипломатическое вмешательство.


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

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