Показать сообщение отдельно
Старый 18.02.2018, 23:18   #7
Edmundosik
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 1 To 9
        SeedRnd MilliSecs
()
        For 
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 1 To 9
            
For 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)
 
Ответить с цитированием