Показать сообщение отдельно
Старый 18.06.2007, 17:14   #1
HolyDel
 
Регистрация: 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, ну думаю вы догадаетесь какие цыфирки надо поменять.
(Offline)
 
Ответить с цитированием