18.02.2018, 23:18
|
#7
|
AnyKey`щик
Регистрация: 18.02.2018
Сообщений: 5
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Как сделать такую игру
Появилась другая проблема
Когда я запускаю игра начинает потреблять много оперативной памяти
вот код.

Type block
Field x,y
Field img
Field id
Field isclick
End Type
Type savetmp
Field idget,idnum,file,id
End Type
If FileType("data\temp\cubetmp.dat") = 1 Then DeleteFile("data\temp\cubetmp.dat") ; Удаляем Temp-файл если он есть
HidePointer
Graphics 800,600,32,2
SetBuffer BackBuffer()
Global rcube
Global generate
DrawCubes()
While Not (KeyHit(1))
Rect MouseX(),MouseY(),16,16 ; Рисуем курсор
UpdateCubes()
Flip
Cls ; Очищяем экран
Wend
DeleteFile("data\temp\cubetmp.dat") ; Удаляем Temp-файл
End
Function DrawCubes() ; Рисуем игровое поле
generate = 0
tmp.savetmp = New savetmp
tmp\idnum = 0
tmp\idget = 0
tmp\file = WriteFile("data\temp\cubetmp.dat") ; Создаём Temp-файл
For i = 1 To 9
SeedRnd MilliSecs()
For a = 1 To 9
rcube = Rand(1,3)
If rcube = 1 Then
b.block = New block
b\img = LoadImage("data\gfx\cube_1.jpg")
tmp\idnum = tmp\idnum+1
tmp\idget = rcube
WriteInt(tmp\file,tmp\idget)
EndIf
If rcube = 2 Then
b.block = New block
b\img = LoadImage("data\gfx\cube_2.jpg")
tmp\idnum = tmp\idnum+1
tmp\idget = rcube
WriteInt(tmp\file,tmp\idget)
EndIf
If rcube = 3 Then
b.block = New block
b\img = LoadImage("data\gfx\cube_3.jpg")
tmp\idnum = tmp\idnum+1
tmp\idget = rcube
WriteInt(tmp\file,tmp\idget)
EndIf
DrawBlock b\img,a*60,i*60
Next
Next
generate = 1
If generate = 1 Then
DebugLog "Cubes Generated"
CloseFile tmp\file
EndIf
End Function ; Делаем игровое поле
Function UpdateCubes() ; Обновляем игровое поле
ltmp = ReadFile ("data\temp\cubetmp.dat") ; Читаем Temp-файл
For i = 1 To 9
For a = 1 To 9
tmp.savetmp = New savetmp
tmp\id = ReadInt(ltmp) ; Читаем переменую rcube из Temp-файла
If tmp\id = 1 Then
b.block = New block
b\img = LoadImage("data\gfx\cube_1.jpg")
EndIf
If tmp\id = 2 Then
b.block = New block
b\img = LoadImage("data\gfx\cube_2.jpg")
EndIf
If tmp\id = 3 Then
b.block = New block
b\img = LoadImage("data\gfx\cube_3.jpg")
EndIf
DrawBlock b\img,a*60,i*60
Next
Next
CloseFile ltmp ; Закрываем Temp-файл
End Function
|
(Offline)
|
|