Spielstand speichern und laden

Übersicht BlitzBasic Blitz3D

Gehe zu Seite 1, 2, 3, 4, 5  Weiter

Neue Antwort erstellen

 

programmier-boy

Betreff: Spielstand speichern und laden

BeitragSo, Aug 27, 2006 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
ich habe mit folgendem Code versucht mein Spielstand zu speichern und wieder zu laden. Die munition lässt sich problemlos speichern und wieder laden ich habe nur das Problem dass die Position an der ich gepspeichert habe nicht wieder lädt.

Code: [AUSKLAPPEN]
Function Savegame(Datei$)
   Datei = WriteFile (Datei$)
   If Datei = 0 Then Return 0
   ;Position der Kamera
   WriteInt Datei, x
   WriteInt Datei, y
   WriteInt Datei, z
   ;Munition
   WriteInt Datei, muni
   ;Datei schließen
   CloseFile Datei
   Return 1
End Function

Function Loadgame(Datei$)
Datei = ReadFile (Datei$)
If Datei = 0 Then Return 0
;Position der Kamera
x = ReadInt (Datei)
y = ReadInt (Datei)
z = ReadInt (Datei)
;Munition laden
muni = ReadInt (Datei)
   CloseFile Datei
   Return 1
End Function


Ich habe noch im Main-Teil geschrieben bei druck auf taste F5 speichern und F6 laden.

Könnt ihr mir helfen????

Edit:
Kann es sein dass ich da beim speichern vll die aktuelle Position der Kamera ermitteln muss???
 

Mr Hopp

BeitragSo, Aug 27, 2006 14:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich sehe da eindeutig zu wenig Code, aber ich mache das dann immer so:

Ich schreibe an die gewünschte Stelle

Code: [AUSKLAPPEN]
Flushkeys
Waitkey


(D.h. dort stoppt das Programm) Und prüfe dann im Debugger alles nach. FALLS die werte x,y,z 0 sein sollten, wirst du das so merken Wink Und wenn sich der Verdacht bestätigt:

EntityX(Kammera)
EntityY(Kammera)
EntityZ(Kammera)
 

programmier-boy

BeitragSo, Aug 27, 2006 15:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich hab des jetz mit EntityX... gemacht und er speichert des jetz auch(zumindestens kommt kein Fehler) aber beim laden kommt der Fehler Illegal Memory Adress!

Code: [AUSKLAPPEN]
Function Savegame(Datei$)
   Datei = WriteFile (Datei$)
   If Datei = 0 Then Return 0
   ;Position der Kamera
   WriteInt Datei, EntityX(camera)
   WriteInt Datei, EntityY(camera)
   WriteInt Datei, EntityZ(camera)   
   ;Munition
   WriteInt Datei, muni
   ;Datei schließen
   CloseFile Datei
   Return 1
End Function

Function Loadgame(Datei$)
Datei = ReadFile (Datei$)
If Datei = 0 Then Return 0
;Position der Kamera
camera = ReadInt (Datei)
camera = ReadInt (Datei)
camera = ReadInt (Datei)
;Munition laden
muni = ReadInt (Datei)
   CloseFile Datei
   Return 1
End Function

Ich wette dass es ein total dummer fehler ist und ich nur zu dumm bin ihn zu finden aber trotzdem helfts mir bitte.

Edit:
Hier noch der restliche Code:
Code: [AUSKLAPPEN]
Graphics3D 1024,768,32,1

Schrift = LoadFont ("Arial",50)
SetFont Schrift
Color Rand(255),Rand(255),Rand(255)

Include "funktionen.bb"


Const player=1,umgebung=2,kugel=3
Collisions player,umgebung,2,2
Collisions kugel,umgebung,3,2
Collisions kugel,tischlampe,2,3

Global muni = 200

Type kugel
   Field entity,time_out#
End Type

Global camera = CreateCamera()
EntityRadius camera,4
EntityType camera,player
MoveEntity camera,0,200,0

CameraRange camera,.01,100

sun = CreateLight()
TurnEntity sun,0,30,0
AmbientLight 200,200,200

PositionEntity camera,0,10,0

cursor=LoadSprite("cursor.bmp",0,camera)
ScaleSprite cursor,.1,.1
MoveEntity cursor,0.05,-0.1,1.1
HideEntity cursor
ShowEntity cursor

Global sgewehr=Load3DSound("sounds/gewehr.wav")

boden = CreatePlane()
EntityType boden,umgebung
bretter = LoadTexture("textures/boden.jpg")
EntityTexture boden,bretter
MoveEntity boden,0,-6,0

decke = CreatePlane()
EntityType decke,umgebung
MoveEntity decke,1,6,1
TurnEntity decke,180,0,0
decke2 = LoadTexture("textures/decke.jpg")
EntityTexture decke,decke2

wand1 = CreatePlane()
EntityType wand1,umgebung
MoveEntity wand1,-4,0,0   
TurnEntity wand1,0,0,-90
wand = LoadTexture("textures/wand.jpg")
EntityTexture wand1,wand

wand2 = CreatePlane()
EntityType wand2,umgebung
MoveEntity wand2,30,0,0
EntityTexture wand2,wand
TurnEntity wand2,0,0,90

wand3 = CreatePlane()
EntityType wand3,umgebung
MoveEntity wand3,-100,0,6
TurnEntity wand3,-90,1,0
EntityTexture wand3,wand


wand4 = CreatePlane()
EntityType wand4,umgebung
MoveEntity wand4,1500,0,6
TurnEntity wand4,90,1,0
EntityTexture wand4,wand

PositionEntity camera,3,0.5,-5

tischlampe = LoadMesh("3ds/tischlampe/tischlampe.3ds")
ScaleEntity tischlampe ,.1,.1,.1
MoveEntity tischlampe,-2,-3.5,6
EntityType tischlampe,umgebung

sofa = LoadMesh("3ds/sofa/sofa.3ds")
ScaleEntity sofa,.5,.5,.5
MoveEntity sofa,25,-5,4.5
EntityType sofa,umgebung

tisch=LoadMesh("3ds/tisch/tisch.3ds")
EntityType tisch,umgebung
ScaleEntity tisch ,.1,.1,.1
MoveEntity tisch,1,-6,6

gewehr = LoadMesh("3ds/gewehr/gewehr.3ds",camera)
EntityType gewehr,umgebung
ScaleEntity gewehr,.1,.1,.1
MoveEntity gewehr,0.4,-1,0.5
TurnEntity gewehr,0,180,360

gewehrtisch = LoadMesh("3ds/gewehr/gewehr.3ds")
EntityType gewehrtisch,umgebung
ScaleEntity gewehrtisch,.1,.1,.1
MoveEntity gewehrtisch,2,-3.5,5
TurnEntity gewehrtisch,0,270,90






While Not KeyHit(1)

   If KeyDown(17) Then MoveEntity camera,0,0,.10
   If KeyDown(31) Then MoveEntity camera,0,0,-.2
   If KeyDown(30) Then MoveEntity camera,-.2,0,0
   If KeyDown(32) Then MoveEntity camera,.2,0,0
   If KeyHit(57) Then MoveEntity camera,0,10,0
   If KeyDown(63) Then Savegame("Save.dat")
   If KeyDown(64) Then Loadgame("Save.dat")
   TranslateEntity camera,0,-.07,0
   
      If MouseDown(1) And muni >0 Then createshoot(EntityX(camera),EntityY(camera),EntityZ(camera),dmx#,dmy#)
      If MouseHit(2) And muni >0 Then createshoot(EntityX(camera),EntityY(camera),EntityZ(camera),dmx#,dmy#)

   
   dmx#=dmx#-MouseXSpeed()*.25;-------------------------die variable "dmx" wird zu "dmx" - oder + die aktuelle geschwindigkeit der maus nach links oder rechts
   dmy#=dmy#+MouseYSpeed()*.5;--------------------------die variable "dmy" wird zu "dmy" - oder + die aktuelle geschwindigkeit der maus nach vorne oder hinten
   If dmy#>41 Then dmy#=41
   If dmy#<-80 Then dmy#=-80
   MoveMouse GraphicsWidth()/2,GraphicsHeight()/2;------bringt die mause in die mitte des bildschirms zurück
   RotateEntity camera,dmy,dmx,0;-----------------------dreht die camera mit den variablen "dmx" und "dmy"
   
   For k.kugel=Each kugel;------------------------------wieder des mit counter nur diesesmal sooft, so viele kugeln wie es gibt
      refreshshoot(k.kugel);---------------------------führt die function "refreshkugel()" aus
   Next
   
   TranslateEntity camera,0,-.2,0


UpdateWorld

RenderWorld
   Color 0,0,0
   Text 20,20,muni
Flip
Wend
End

FreetimeCoder

BeitragSo, Aug 27, 2006 15:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Also erstmal hast du einen Code gepostet der sowieso nicht funktionieren kann:

Code: [AUSKLAPPEN]
Function Loadgame(Datei$)
Datei = ReadFile (Datei$)
If Datei = 0 Then Return 0
;Position der Kamera
camera = ReadInt (Datei)    <-----
camera = ReadInt (Datei)    <-----
camera = ReadInt (Datei)    <-----
;Munition laden
muni = ReadInt (Datei)
   CloseFile Datei
   Return 1
End Function


Also ich hätte da zumindest

Code: [AUSKLAPPEN]
camerax = ReadInt (Datei)
cameray = ReadInt (Datei)
cameraz = ReadInt (Datei)

erwartet.
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA
 

Mr Hopp

BeitragSo, Aug 27, 2006 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
"Illegal Memory Access" führt eigentlich darauf hin zurück, dass der Dateipfad nicht stimmt. (D.h., dass die Datei entweder anders heißt, als angegeben, oder woanders ist, oder GAR NICHT vorhanden ist)

Edit: @FreetimeCoder Stimmt, so genau hab ICH auch nicht hingeguckt Very Happy

BladeRunner

Moderator

BeitragSo, Aug 27, 2006 15:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Datei = ReadFile (Datei$)

Du überschreibst den Dateinamen mit dem Handle.
Macht sicher auch Kopfschmerz.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

FreetimeCoder

BeitragSo, Aug 27, 2006 15:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Poste doch mal den Code, den du wirklich in deinem Spiel verwendest Wink
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA
 

programmier-boy

BeitragSo, Aug 27, 2006 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
FreetimeCoder hat Folgendes geschrieben:
Also erstmal hast du einen Code gepostet der sowieso nicht funktionieren kann:

Code: [AUSKLAPPEN]
Function Loadgame(Datei$)
Datei = ReadFile (Datei$)
If Datei = 0 Then Return 0
;Position der Kamera
camera = ReadInt (Datei)    <-----
camera = ReadInt (Datei)    <-----
camera = ReadInt (Datei)    <-----
;Munition laden
muni = ReadInt (Datei)
   CloseFile Datei
   Return 1
End Function


Also ich hätte da zumindest

Code: [AUSKLAPPEN]
camerax = ReadInt (Datei)
cameray = ReadInt (Datei)
cameraz = ReadInt (Datei)

erwartet.

ja und warum kann dieser code gar nicht funktionieren????? Ich hab jetz mal bei Save und Loadgame des mit x y und z gemacht aber dann kommt Illegal Memory Adress!


Edit:
Also wenn mir gesagt wird, dass der Code sowieso nicht funktionieren kann, dann möchte ich auch wissen warum, weil sonst kann ich den Fehler ja nicht beheben.
 

Penthouse Pauper

BeitragSo, Aug 27, 2006 20:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Öhm, duuuuuu... kanns sein, dass du rein zufällig der gleichen Variable "camera" hintereinander 3 verschiedene Werte zuordnest... kanns sein, dass camera eigentlich dein Kamera-Pointer ist und du da eine Variable draus machst... kanns sein, dass du dat mit PositionEntity camera x,y,z besser zum Laufen bringen würdest?
 

Mr Hopp

BeitragSo, Aug 27, 2006 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast die Kammera Identität, deren X-Position, Y-Position und Z-Position in eine einzige Variable gepackt Very Happy wäre es wenigstens ein Dim-Feld gewesen Very Happy

FreetimeCoder

BeitragSo, Aug 27, 2006 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Fazit man kann einer Variable nicht mehrere Werte gleichzeitg zu orden Wink
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA
 

programmier-boy

BeitragSo, Aug 27, 2006 22:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Penthouse Pauper hat Folgendes geschrieben:
Öhm, duuuuuu... kanns sein, dass du rein zufällig der gleichen Variable "camera" hintereinander 3 verschiedene Werte zuordnest... kanns sein, dass camera eigentlich dein Kamera-Pointer ist und du da eine Variable draus machst... kanns sein, dass du dat mit PositionEntity camera x,y,z besser zum Laufen bringen würdest?

aber ich kann doch mit PositionEntity nicht die aktuelle Position ermitteln. Falls doch wie geht des hab rumprobiert ging aber nichts.
 

Penthouse Pauper

BeitragSo, Aug 27, 2006 23:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, du benutzt PositionEntity um deine Cam auf eine bestimmte Position zu packen. Die x(,y,z)-Koordinate eines Objektes bekommst du mit EntityX(<entity>) (bzw. EntityY oder EntityZ) raus...

Wenn ich dir einen Tip geben darf, dann würde ich an deiner Stelle nach dem ein oder anderen guten Tutorial suchen und die nicht nur lesen, sondern wirklich durcharbeiten. Danach würde ich an deiner Stelle versuchen einige Codesnippets ausm Showcast oder so wirklich zu "verstehen"...

Aus deinem Problem geht hervor, dass du noch massive Probleme am Programmierfundament hast. So doof es klingt, aber erst lernen, dann rumprobieren... dann das erste richtige Spiel... und zwar ein Bomben-Ding Wink

Schaffst das schon, aber fang klein an und versuche nicht Counter-Strike IV zu entwickeln, okay? Wink
 

programmier-boy

BeitragSo, Aug 27, 2006 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
ich glaub ich habs ja fast.
Ich glaube ich hab nur noch irgenwo ne Varible falsch angegeben und ich find aber nicht wo.
Hier nochmal mein kompletter Code:

Code: [AUSKLAPPEN]
;Main-Teil
Graphics3D 1024,768,32,1

Schrift = LoadFont ("Arial",50)
SetFont Schrift
Color Rand(255),Rand(255),Rand(255)

Include "funktionen.bb"

Global Datei = "save.dat"

Const player=1,umgebung=2,kugel=3
Collisions player,umgebung,2,2
Collisions kugel,umgebung,3,2
Collisions kugel,tischlampe,2,3

Global muni = 200

Type kugel
   Field entity,time_out#
End Type

Global camera = CreateCamera()
EntityRadius camera,4
EntityType camera,player
MoveEntity camera,0,200,0

CameraRange camera,.01,100

sun = CreateLight()
TurnEntity sun,0,30,0
AmbientLight 200,200,200

PositionEntity camera,0,10,0

cursor=LoadSprite("cursor.bmp",0,camera)
ScaleSprite cursor,.1,.1
MoveEntity cursor,0.05,-0.1,1.1
HideEntity cursor
ShowEntity cursor

Global sgewehr=Load3DSound("sounds/gewehr.wav")

boden = CreatePlane()
EntityType boden,umgebung
bretter = LoadTexture("textures/boden.jpg")
EntityTexture boden,bretter
MoveEntity boden,0,-6,0

decke = CreatePlane()
EntityType decke,umgebung
MoveEntity decke,1,6,1
TurnEntity decke,180,0,0
decke2 = LoadTexture("textures/decke.jpg")
EntityTexture decke,decke2

wand1 = CreatePlane()
EntityType wand1,umgebung
MoveEntity wand1,-4,0,0   
TurnEntity wand1,0,0,-90
wand = LoadTexture("textures/wand.jpg")
EntityTexture wand1,wand

wand2 = CreatePlane()
EntityType wand2,umgebung
MoveEntity wand2,30,0,0
EntityTexture wand2,wand
TurnEntity wand2,0,0,90

wand3 = CreatePlane()
EntityType wand3,umgebung
MoveEntity wand3,-100,0,6
TurnEntity wand3,-90,1,0
EntityTexture wand3,wand


wand4 = CreatePlane()
EntityType wand4,umgebung
MoveEntity wand4,1500,0,6
TurnEntity wand4,90,1,0
EntityTexture wand4,wand

PositionEntity camera,3,0.5,-5

tischlampe = LoadMesh("3ds/tischlampe/tischlampe.3ds")
ScaleEntity tischlampe ,.1,.1,.1
MoveEntity tischlampe,-2,-3.5,6
EntityType tischlampe,umgebung

sofa = LoadMesh("3ds/sofa/sofa.3ds")
ScaleEntity sofa,.5,.5,.5
MoveEntity sofa,25,-5,4.5
EntityType sofa,umgebung

tisch=LoadMesh("3ds/tisch/tisch.3ds")
EntityType tisch,umgebung
ScaleEntity tisch ,.1,.1,.1
MoveEntity tisch,1,-6,6

gewehr = LoadMesh("3ds/gewehr/gewehr.3ds",camera)
EntityType gewehr,umgebung
ScaleEntity gewehr,.1,.1,.1
MoveEntity gewehr,0.4,-1,0.5
TurnEntity gewehr,0,180,360

gewehrtisch = LoadMesh("3ds/gewehr/gewehr.3ds")
EntityType gewehrtisch,umgebung
ScaleEntity gewehrtisch,.1,.1,.1
MoveEntity gewehrtisch,2,-3.5,5
TurnEntity gewehrtisch,0,270,90






While Not KeyHit(1)

   If KeyDown(17) Then MoveEntity camera,0,0,.10
   If KeyDown(31) Then MoveEntity camera,0,0,-.2
   If KeyDown(30) Then MoveEntity camera,-.2,0,0
   If KeyDown(32) Then MoveEntity camera,.2,0,0
   If KeyHit(57) Then MoveEntity camera,0,10,0
   If KeyHit(63) Then Savegame("Save.dat")
   If KeyHit(64) Then Loadgame("Save.dat")
   TranslateEntity camera,0,-.07,0
   
      If MouseDown(1) And muni >0 Then createshoot(EntityX(camera),EntityY(camera),EntityZ(camera),dmx#,dmy#)
      If MouseHit(2) And muni >0 Then createshoot(EntityX(camera),EntityY(camera),EntityZ(camera),dmx#,dmy#)

   
   dmx#=dmx#-MouseXSpeed()*.25;-------------------------die variable "dmx" wird zu "dmx" - oder + die aktuelle geschwindigkeit der maus nach links oder rechts
   dmy#=dmy#+MouseYSpeed()*.5;--------------------------die variable "dmy" wird zu "dmy" - oder + die aktuelle geschwindigkeit der maus nach vorne oder hinten
   If dmy#>41 Then dmy#=41
   If dmy#<-80 Then dmy#=-80
   MoveMouse GraphicsWidth()/2,GraphicsHeight()/2;------bringt die mause in die mitte des bildschirms zurück
   RotateEntity camera,dmy,dmx,0;-----------------------dreht die camera mit den variablen "dmx" und "dmy"
   
   For k.kugel=Each kugel;------------------------------wieder des mit counter nur diesesmal sooft, so viele kugeln wie es gibt
      refreshshoot(k.kugel);---------------------------führt die function "refreshkugel()" aus
   Next
   
   TranslateEntity camera,0,-.2,0


UpdateWorld

RenderWorld
   Color 0,0,0
   Text 20,20,muni
Flip
Wend
End


;Funktionen

Function createshoot(x#,y#,z#,mausX#,mausY#);------------headline zu functionen

   k.kugel=New kugel;-----------------------------------kopiere den type "kugel"
   k\entity=CreateSphere();-----------------------------k\entity wird zu einem kreis
   ScaleEntity k\entity,-.1,-.1,-.1;-----------------------verkleinere die kugel um das 10 fache
   PositionEntity k\entity,x,y,z;-----------------------positioniere das entity k\entity auf den x,y, und z koordinaten der camera
   RotateEntity k\entity,mausy,mausx,0;-----------------drehe die kugel in die richtung, in die die camera schaut
   MoveEntity k\entity,.20,-.5,0;------------------------bewege die kugeln ein bisschen nach rechts(damit man freie sicht hat, auserdem kommen die kugeln nicht genau vom gesicht, sondern von der waffe
   k\time_out#=2;---------------------------------------das time out der kugel. wenn es abgelaufen ist verschwindet diese
   PlaySound(sgewehr)
   ;########### Munition weniger machen ##########
   muni = muni - 1


End Function;--------------------------------------------ende der function

Function refreshshoot(k.kugel);--------------------------headline zu function

   MoveEntity k\entity,0,0,200;;-------------------------beweg die kugel nach vorne
   k\time_out#=k\time_out-.05;--------------------------zieh etwas von der zeit ab, die bestimmt wie lange die kugel da bleibt
   If k\time_out=<0;------------------------------------wenn die dableibzeit der kugel 0 oder weniger beträgt dann:
      FreeEntity k\entity;-----------------------------lösche die kugel
      Delete k;----------------------------------------lösche den typen k
   End If;----------------------------------------------(des is klar was des bringt oder?)

End Function;--------------------------------------------beendet die function


Function Savegame(Datei$)

   camerax = EntityX(camera)
   cameray = EntityY(camera)
   cameraz = EntityZ(camera)
   ;Datei =
   WriteFile (Datei)
   
   If Datei = 0 Then Return 0
   ;Position der Kamera
   WriteFloat Datei, camerax
   WriteFloat Datei, cameray
   WriteFloat Datei, cameraz
   
   ;Munition
   WriteInt Datei, muni
   ;Datei schließen
   CloseFile Datei
   Return 1
End Function

Function Loadgame(Datei$)
   ;Dateil =
   ReadFile (Datei)
   If Dateil = 0 Then Return 0
   ;Position der Kamera
   camera = ReadFloat(Datei)
   PositionEntity camera,camerax,cameray,cameraz
   ;Munition laden
   muni = ReadInt (Datei)
   CloseFile Datei
   Return 1
End Function


bin ich noch immer total daneben oder ist es schon näher am ziel?????
 

Ava

Gast

BeitragSo, Aug 27, 2006 23:54
Antworten mit Zitat
Ich glaube, Du weisst eigentlich gar nicht wirklich, was Du da eigentlich tust, oder - kann das sein? Wink

Also Deine Lade- und Speicherfunktionen sind immer noch völlig hinnüber. Was den Rest betrifft, habe ich mir den jetzt nicht genauer angesehen. Dummdidumm.

Code: [AUSKLAPPEN]
Function Savegame(Dateiname$)

   Datei = WriteFile (Dateiname)   
   If Datei = 0 Then Return 0

   ;Position der Kamera
   WriteFloat Datei, entityx(camera)
   WriteFloat Datei, entityy(camera)
   WriteFloat Datei, entityz(camera)
   
   ;Munition
   WriteInt Datei, muni

   ;Datei schließen
   CloseFile Datei

   Return 1
End Function

Function Loadgame(Dateiname$)

   Datei =   ReadFile (Dateiname)
   If Datei = 0 Then Return 0

   ;Position der Kamera
   camerax = ReadFloat(Datei)
   cameray = ReadFloat(Datei)
   cameraz = ReadFloat(Datei)
   PositionEntity camera,camerax,cameray,cameraz

   ;Munition laden
   muni = ReadInt (Datei)

   ;Datei schließen
   CloseFile Datei

   Return 1
End Function


Ich geb Dir jetzt kein Versprechen, dass es damit klappt. *smile* Aber so in etwa sollte es wohl aussehen...

mfG Cool
+ Ava +
 

programmier-boy

BeitragMo, Aug 28, 2006 0:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ava hat Folgendes geschrieben:
Ich glaube, Du weisst eigentlich gar nicht wirklich, was Du da eigentlich tust, oder - kann das sein? Wink

Also Deine Lade- und Speicherfunktionen sind immer noch völlig hinnüber. Was den Rest betrifft, habe ich mir den jetzt nicht genauer angesehen. Dummdidumm.

Code: [AUSKLAPPEN]
Function Savegame(Dateiname$)

   Datei = WriteFile (Dateiname)   
   If Datei = 0 Then Return 0

   ;Position der Kamera
   WriteFloat Datei, entityx(camera)
   WriteFloat Datei, entityy(camera)
   WriteFloat Datei, entityz(camera)
   
   ;Munition
   WriteInt Datei, muni

   ;Datei schließen
   CloseFile Datei

   Return 1
End Function

Function Loadgame(Dateiname$)

   Datei =   ReadFile (Dateiname)
   If Datei = 0 Then Return 0

   ;Position der Kamera
   camerax = ReadFloat(Datei)
   cameray = ReadFloat(Datei)
   cameraz = ReadFloat(Datei)
   PositionEntity camera,camerax,cameray,cameraz

   ;Munition laden
   muni = ReadInt (Datei)

   ;Datei schließen
   CloseFile Datei

   Return 1
End Function


Ich geb Dir jetzt kein Versprechen, dass es damit klappt. *smile* Aber so in etwa sollte es wohl aussehen...

mfG Cool
+ Ava +

hab ich da jetz was übersehn??? Wo bestimmst du die Variablen camerax,camery und cameraz??? die muss man doch so bestimmen oder?

Code: [AUSKLAPPEN]

camerax = Entityx(camera)
cameray = Entityy(camera)
cameraz = Entityz(camera)

falls nicht werd ich wohl doch nochmal bei Variablen bestimmen anfangen müssen.*seufz*

FreetimeCoder

BeitragMo, Aug 28, 2006 6:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt 4 Arten Variablen einzbauen:

GLobal
Const
Local
und einfach neu einfügen.

Mit Global werden Variablen für den ganzen Code zugreifbar gemacht, also auch für Funktionen.

Mit Const kannst du eine Variable nicht mehr verändern

Und Local ..äh.. hab ich selbst noch nicht verstanden Laughing

Ansonsten kannst du immer eine Variable neu hinzufügen ohne diese vorher zu deklarieren.
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA
 

Penthouse Pauper

BeitragMo, Aug 28, 2006 11:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Local = innerhalb des Programmteils in der sie definiert wurde

Wenn du Variablen "einfach neu definierst", dann sind sie übrigens autmatisch lokal, d.h. an den Geburtsort gebunden...

(Somit gibts eher 3...)

Blitz hat leider sehr viele Vereinfachungen, die letztendlich teilweise sehr verwirrend sein können... Blitzarrays & Dims, Global & Local, etc...
 

dreamfile

BeitragMo, Aug 28, 2006 11:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,

ob du Entityx(camera) in eine Variable packs oder nicht ist doch
egal. Kommt darauf an ob das Kind einen Namen braucht oder nicht.
Ausgegeben wird der Wert sowieso. In dem Fall oben kommt der Wert
direkt in deine Datei, ohne Variable.

Sascha
Der Neue
 

Penthouse Pauper

BeitragMo, Aug 28, 2006 11:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamfile, eh? ^^ passender Name zum Problem Wink

Gehe zu Seite 1, 2, 3, 4, 5  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group