Тема: SPACE WAR
Показать сообщение отдельно
Старый 29.05.2009, 00:03   #12
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: SPACE WAR

Попробуй рендерить только те звёзды которые на экране.
Делается это так:

Для начала нужна функция. Вставляем её куданибуть в конец сорца.
Function RectInScreen:int(x:Float, y:Float, w:Float, h:Float)
	Local x2:Float = GetScrX(x + w / 2.0)
	Local y2:Float = GetScrY(y + h / 2.0)
	Local x3:Float = GetScrX(x - w / 2.0)
	Local y3:Float = GetScrY(y - h / 2.0)
		
	If (x2 >= 0) And (x3 <= GraphicsWidth()) And (y2 >= 0) And (y3 <= GraphicsHeight()) Then
		Return True
	Else
		Return False
	EndIf
EndFunction
Дальше где идёт DrawImage звезды пишем:
IF RectInScreen(x,y,w,h) then DrawImage star,x,y
x - х звезды
y - y звезды
w - её ширина
h - её высота

И получаем прирост FPS.

Косательно управления, я даже не знаю как лучше сделать. Но то, что есть меня както немного скарёжило.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием