Страница: 1 | 2 |
Вопрос: Подскажите как собрать все в кучу
Добавлено: 13.11.07 11:46
Автор вопроса: KreAtoR
Ответы
Всего ответов: 28
Номер ответа: 16
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #16
Добавлено: 14.11.07 14:08
Ты ошибаешся. Набор параметров - это как раз Type.
А объект (Class) - некая сущность, которая включает в себя набор параметров, свойств, событий, и методов...
Номер ответа: 17
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #17
Добавлено: 14.11.07 14:47
Type это не набор параметров Это набор переменных
Номер ответа: 18
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #18
Добавлено: 14.11.07 16:48
ну будем считать это синонимами в данном случае
Номер ответа: 19
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #19
Добавлено: 14.11.07 16:53
а в общем случае?
Набор параметров - enum что ли?
Номер ответа: 20
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #20
Добавлено: 14.11.07 17:25
ну type я тоже использую. но в данном примере, я никакой связи не вижу между type и sub!!!!!
при инициализации объекта у меня в тайп сохраняются три важных переменных, через которые я потом выбираю какой объект мне задействовать лучше, нежели сами объекты перебирать.
только после того как я через type нашел подходящий объект и его использовал, то некоторые параметры у него меняются.
к примеру "сколько раз был использован"
в примере параметры загружаются из файла, а мне надо в него положить.
Либо я несовсем понял пример как он работает, либо что то незватает
Номер ответа: 21
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #21
Добавлено: 14.11.07 19:33
А так? понятнее?
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
'Types
Public Type TronSettings
World As Byte
ShowFPS As Boolean
'Sound
InGameSound As Boolean
'Graphics
Res As Revo3dRes
UseFSAA As Long
UseReflection As Boolean
UseShadow As Long
UseSpecular As Boolean
UseAnisotropic As Boolean
UseTransWalls As Boolean
'Gameplay
LandSize As Single
MopedSpeed As Single
FragLimit As Long
OpponentCnt As Long
OpponentSkill As Long
Cam As Long
EnableAction As Boolean
PlayerName As String * 64
End Type
'Public variables
Public gOptions As TronSettings
'Sorry for the function name. *g*
'This is the C++ WinMain representative.
Public Sub Run_The_Whole_Damn_Show()
Dim i As Long
Dim CursorTex As cls2dTexture, BusyTex As cls2dTexture, ButtonTex As cls2dTexture, BackgrTex As cls2dTexture
Dim MenuText As cls2dText, FileData() As Byte, InitResult As Long
On Local Error GoTo Failed
ReDim FileData(Len(gOptions) - 1)
'Load settings from file.
If PathFileExists("settings\config.dat" = 0 Then
If PathFileExists("settings\default.dat" = 0 Then
MsgBox "Couldn't load the game. Revo Tron will exit now.", vbCritical, "Revo Tron"
Exit Sub
End If
Open "settings\default.dat" For Binary Access Read As #1
Else
Open "settings\config.dat" For Binary Access Read As #1
End If
Get #1, , FileData
CopyMemory gOptions, FileData(0), Len(gOptions)
Close #1
'Save settings back to file.
Open "settings\config.dat" For Binary Access Write As #1
CopyMemory FileData(0), gOptions, Len(gOptions)
Put #1, , FileData
Close #1
Failed:
End Sub
Номер ответа: 22
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #22
Добавлено: 14.11.07 19:39
Сначала грузим данные в массив байтов.
А потом накладываем массив на gOptions (gOptions - это TronSettings)
Номер ответа: 23
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #23
Добавлено: 14.11.07 19:39
сохранение - то же самое, только в обратную сторону
Номер ответа: 24
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #24
Добавлено: 20.11.07 12:57
интересно!!! надо попробовать.
я конечно плохо понял но все же попытаюсь высказаться.
Здесь мы создаем файл и в него записываем значения переменных (внизу примера)
как они там зранятся никто незнает?
а самим примером мы эти переменные из файла вытаскиваем!
в принципе все понятно.
Get #1, , FileData
CopyMemory gOptions, FileData(0), Len(gOptions)
Close #1
здесь немного запарился
Номер ответа: 25
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #25
Добавлено: 18.12.07 11:23
Private strText(1) As String
Private strMsg(1) As String
Private Sub InitText()
strText(0) = "Hallo"
strText(1) = "World"
End Sub
Private Sub WriteFile()
Open App.Path & "file.txt" For Append As #1
Print #1, strText(0)
Print #1, strText(1)
Close 1
End Sub
Private Sub ReadFile()
Open App.Path & "file.txt" For Random As #1
Get #1, , strMsg(0)
Get #1, , strMsg(1)
Close 1
End Sub
Private Sub Form_Load()
InitText
WriteFile
ReadFile
MsgBox strMsg(0) & " " & strMsg(1)
End Sub
скажу сразу не работает Sub ReadFile
Могу сделать пока что только такое.
Если могете подправте этот примерчик, чтоб он хотя бы работал.
Вторым пунктом если писать в .dat то меняется ли структура писания и читания файла. Если да то как?
Номер ответа: 26
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #26
Добавлено: 18.12.07 11:53
Так а почему ему работать? Ты выведи в msgbox открываемый (да и записываемый ) файл. App.Path возвращает путь к файлу без \ в конце, исключение - файл в корне диска.
Номер ответа: 27
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #27
Добавлено: 18.12.07 12:09
да если даже и без App.path то файл будет писаться в этуже папку.
Пример описаный выше мне ничего путного не дал. В нем описано считывание из dat file а я в него даже записать не могу.
вроде все просто записать две строковые переменные в файл, а потом их из файла прочесть. а сделать не могу
Номер ответа: 28
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #28
Добавлено: 18.12.07 17:19
Dim tset(1) As String
Private Sub Init_Test()
test(0) = "Hallo"
test(1) = "World"
End Sub
Private Sub Write_File()
Open "c:\test.dat" For Append As #1
Write #1, test(0)
Write #1, test(1)
Close #1
End Sub
Private Sub Read_File()
Open "c:\test.dat" For Input As 1
Input #1, tset(0)
Input #1, tset(1)
Close #1
End Sub
Private Sub Get_String()
MsgBox tset(0) & " " & tset(1)
End Sub
Private Sub Form_Load()
Init_Test
Write_File
Read_File
Get_String
End
End Sub