Types schreiben & auslesen *HILFE!*
Übersicht

EwokonCrackBetreff: Types schreiben & auslesen *HILFE!* |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo! Für mein aktuelles projekt brauche in eine Speicherfunktion mit der ich Types schreiben und auslesen kann.
Code: [AUSKLAPPEN] Type gebaeude
Field x Field y Field ID Field typ Field baustart Field fertig End Type Mit einem Mausklick erstelle ich objekte an bestimmten positionen. In etwa so: Code: [AUSKLAPPEN] g.gebaeude = New gebaeude g\x = MouseX() g\y = MouseY() g\baustart = sekunden Dann bestimmte ich für jedes gebäude, entsprechend seinem typ, wielange es zum aufbau benötigt. Code: [AUSKLAPPEN] For g.gebaeude = Each gebaeude Select g\typ Case "haus1" If sekunden-30 > g\baustart Then g\fertig=True If g\fertig=True Then g\ID=haus1 Else g\ID=baustelle Case ... End Select Next Funktioniert alles prächtig. Doch nun bin ich beim speichern angelangt: Ich dachte per For Each die anzahl der erstellten types zu zählen und dann für jeden die entsprechenden felder zu speichern (speichern = schreiben mit WriteByte und co) und beim nächsten spielstart auszulesen. doch wie? ich komm einfach auf keine lösung. Noch ein problem: ich will überprüfen, ob ein bestimmtes gebäude in der nähe von einem anderen ist: Code: [AUSKLAPPEN] For g.gebaeude = Each gebaeude If g\typ="haus1" Then x=g\x y=g\y ID=g\ID For g.gebaeude = Each gebaeude If g\typ="schule" Then If ImageRectCollide(ID,x,y,0, g\x-5,g\y-5,100,50) Then ... Exit endif Next Next Ich muss prüfen, ob das haus in der nähe der schule steht. diese funktion meldet mir aber immer ne MAV Bitte um Hilfe! |
||
- Zuletzt bearbeitet von EwokonCrack am Mo, Jun 15, 2009 15:38, insgesamt einmal bearbeitet
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zu erstens:
Warum nicht so? BlitzBasic: [AUSKLAPPEN]
zu zweitens: Hast du eine nVidia-Grafikkarte? Schau mal hier. |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
EwokonCrack |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
1. habs so ausprobiert und es ging nicht.
!Code: [AUSKLAPPEN] If KeyHit(1) Then total=0 For g.gebaeude=Each gebaeude total=total+1 Next stream = WriteFile("spielstand.sav") WriteByte stream,total For g.gebaeude=Each gebaeude WriteShort stream,g\x WriteShort stream,g\y WriteString stream,g\typ WriteByte stream,g\bebaut Next CloseFile stream End EndIf streamin=ReadFile("spielstand.sav") total=ReadByte(streamin) total=total/2 For i=1 To total g.gebaeude=New gebaeude g\x=ReadShort(streamin) g\y=ReadShort(streamin) g\typ$=ReadString(streamin) g\bebaut=ReadByte(streamin) Next CloseFile streamin 2. An der Grafikkarte kanns nicht liegen. Hab mal rumprobiert und ich glaube es liegt daran, dass ich 2 For-Each schleifen ineinander gestapelt habe. aber eigentlich geht das doch!? |
||
- Zuletzt bearbeitet von EwokonCrack am So, Jun 14, 2009 14:37, insgesamt 2-mal bearbeitet
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
wenn es um die Kollision geht , kannst du auch bei Quadratischen Gebäuden Line_Intersect benutzen - siehe Codearchiv. Diese Prüfung jedes mit jedem mache ich auch so , immer in temp. Variablen speichern und dann in der 2ten Schleife prüfen. Viele Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ihr braucht kein total oder anzahl, für sowas gibt es EoF![]() MfG |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group