☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
смена разрешения.
Написали вы например игру, и радосно понесли в массы, чтоб они ее заценили, и тут некоторые говорят: "Разрешение слишком мальенькое".
можно сделать возможность выбора разрешения и ладное если ето дело касается основной игры (нарисовать пру панелек и все), но овт когда дело дохоит до всяких меню, окон статистики, справки, about, и т.д. то менять все ето жутко влом.
вот пример как обойти сию неприятность:
Global ark_blur_image_, ark_blur_texture_, ark_sw_, ark_sh_
Global BQuality_=1024
If hightresolution
Graphics3D 1024,768,32,1
cam=CreateCamera()
CameraClsMode cam, 0, 0
CameraRange cam, 0.1, 1.5
MoveEntity cam, 0, 0, 10000
ark_sw_ = GraphicsWidth()
ark_sh_ = GraphicsHeight()
;Create sprite
Local spr = CreateMesh(cam)
Local sf = CreateSurface(spr)
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 spr, 17+4
ScaleEntity spr, Float(1024) / Float(800), Float(768) / Float(600), 1
PositionEntity spr, 0.28, -0.53,1.0
EntityOrder spr, -100000
ark_blur_image_ = spr
;Create blur texture
ark_blur_texture_ = CreateTexture(800, 600, 256)
EntityTexture spr, ark_blur_texture_
Else
Graphics3D 800,600,32,1
EndIf
Function RenderResolutionQuad()
CopyRect 0,0,800,600, 0, 0, BackBuffer(), TextureBuffer(ark_blur_texture_)
RenderWorld
End Function
While Not KeyDown(1)
Cls
Color 128,0,0
Rect 0,0,800,600,0
Color 192,192,192
Rect 10,10,780,580,0
Color 0,100,244
For i=40 To 760 Step 40
Line i,100,i,500
Next
If MouseX()>800 Then MoveMouse 800,MouseY()
If MouseY()>600 Then MoveMouse MouseX(),600
Oval MouseX()-3,MouseY()-3,7,7,0
If hightresolution Then RenderResolutionQuad()
Flip
Wend
, правда ето заточено на изминение разрешения с 800х600 на 1024х768, ну думаю вы догадаетесь какие цыфирки надо поменять.
|