Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: RotateTexture
Function RotateTexture3(Tex%,x#,y#,ang#)
RotateTexture Tex,ang
Local u#=x-x*Cos(ang)+y*Sin(ang)
Local v#=y-x*Sin(ang)-y*Cos(ang)
PositionTexture Tex,-u,-v
End Function
демо
Graphics3D 800,600,32
SetBuffer BackBuffer()
Global Cube=CreateCube()
Global Camera=CreateCamera()
PositionEntity Camera,0,0,-4
Global light=CreateLight()
Global Texture%=0
Global XRt#,YRt#
While Not KeyHit(1)
If KeyHit(57)
If Texture
FreeTexture Texture
EndIf
XRt=Rnd(0,1)
YRt=Rnd(0,1)
Texture=GenTex(XRt,YRt)
EntityTexture Cube,Texture
EndIf
If Texture
RotateTexture3(Texture,XRt,YRt,MilliSecs()*0.001*5)
EndIf
RenderWorld()
Flip
Wend
End
Function RotateTexture3(Tex%,x#,y#,ang#)
RotateTexture Tex,ang
Local u#=x-x*Cos(ang)+y*Sin(ang)
Local v#=y-x*Sin(ang)-y*Cos(ang)
PositionTexture Tex,-u,-v
End Function
Function GenTex%(xp#,yp#)
Local Tex=CreateTexture(128,128)
Local CurBuf%=GraphicsBuffer()
Local xpd%=xp*128
Local ypd%=yp*128
SetBuffer TextureBuffer(Tex)
Color 255,255,255
Rect 0,0,TextureWidth(Tex),TextureHeight(Tex)
Color 0,0,0
Line xpd,0,xpd,TextureHeight(Tex)-1
Line 0,ypd,TextureWidth(Tex)-1,ypd
Color 255,0,0
Oval xpd-5,ypd-5,11,11
SetBuffer CurBuf
Return Tex
End Function
Управление - пробел.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|