Types und Dim-Felder
Übersicht
BlitzBasic
Allgemein
FBI-blitzBetreff: Types und Dim-Felder |
Antworten mit Zitat |
|
|---|---|---|
|
Hi,
ich habe folgendes Problem: Bei Quests in meinem Adventure soll es -Antworten -Reaktionen -Folgen geben. Ich habe mir jetzt überlegt, dass ich alles in einem Type speichere. In Antworten wird die mögliche Antwort, in Reaktion die Reaktion und in Folge die Foge auf die Antwort (Sprich + Gesundheit, + Geld etc.). Das ganze sieht jetzt so aus: BlitzBasic: [AUSKLAPPEN] Type antworten Jetzt möchte ich aber, dass es pro Antwort mehrere Folgen geben kann! Wie könnte ich das machen? Perfekt wäre ja ein zugriff wie zum Beispiel: BlitzBasic: [AUSKLAPPEN]
Wie könnte ich sowas hinbekommen? Ich habe es nicht gescvhafft! Danke schon jetzt FBI-blitz |
||
|
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+ Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+ |
||
hitokiri |
Antworten mit Zitat |
|
|---|---|---|
|
Noch eine kleine Verständnissfrage:
bei jeder frage erschaffst du eine neue instanz des types "antworten" und liesst dann die werte der felder aus nem script aus ? und löscht die neue instanz danach gleich wieder ? |
||
FBI-blitz |
Antworten mit Zitat |
|
|---|---|---|
|
Also erst kommt die Frage bzw. der Auftrag.
Dann werden alle Antworten in antwort.antworten(1-5) geladen und nacher wieder gelöscht. Ich hoffe, das meintest du! |
||
|
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+ Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+ |
||
|
|
Jolinah |
Antworten mit Zitat |
|---|---|---|
|
Du könntest BlitzArrays verwenden Code: [AUSKLAPPEN] Type antworten Field antwort$ Field reaktion$ Field folge.folgen[5] End Type Dim antwort.antworten(5) antwort(0)\folge[0]\art = 10 |
||
FBI-blitz |
Antworten mit Zitat |
|
|---|---|---|
|
Also hier kommt:
BlitzBasic: [AUSKLAPPEN] Type antworten Memory access violation Was genau ist der Unterschied zwischen den runden und den Eckigen Klammern eigentlich? Ich habe damit noch nie gearbeitet( MIt eckigen Klammern, mit runden schon!) Danke! FBI-blitz |
||
|
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+ Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+ |
||
DarkMike |
Antworten mit Zitat |
|
|---|---|---|
| wenn du eckige klammer hast wird es für Blitzarrays verwendet, ausserdem sind ba´s(blitz arrays) immer global(oder wars lokal)ne global glaub ich zumindest, hat noch ein paar andere eingenschafften, aber da ich selber noch nicht mit ba´s gearbeitet habe müsste ich mal nachsehen! | ||
| 2 dinge sind unendlich die menschliche Dummheit und das Universum obwohl beim Universum bin ich mir nicht ganz sicher. (Albert Einstein) | ||
hitokiri |
Antworten mit Zitat |
|
|---|---|---|
|
du musst das array ja auch vorher definieren.
also vorher global folge.folgen[5] dürfen dann natürlich auch nur 5 Folgen sein. die eckigen Klammern sagen BB, dass es sich hier nicht um ein DIM sondern um ein Blitzarray handelt. Blitzarrays sind eigentlich das gleiche wie DIM's, haben aber eine Beschränkung auf eine Dimension. |
||
FBI-blitz |
Antworten mit Zitat |
|
|---|---|---|
|
Ich hab jetzt gerafft, was blitzarrays sind!
Dank der OH. Naja, aber warum kommt da jetzt ne Fehlermeldung? |
||
|
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+ Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+ |
||
hitokiri |
Antworten mit Zitat |
|
|---|---|---|
|
erm, weil du, wenn du danach den type folge.folgen erstellst dem ja auch einen wert zuweisen musst.
du hast einmal dein array folge.folgen[wert] und einmal nur ein objekt folge.folgen. du musst schon noch sagen in welches feld des blitzarrays du dann die neue instanz reinlegen willst. also, die fehlermeldung kommt weil dein blitzarray leer ist, alles 0 pointer |
||
FBI-blitz |
Antworten mit Zitat |
|
|---|---|---|
|
Ähhm.. Sry, aber das verstehe ich net ganz.
Könntest du mal an dem Beispiel erklären? Wär echt nett! Danke! FBI-blitz |
||
|
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+ Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+ |
||
hitokiri |
Antworten mit Zitat |
|
|---|---|---|
|
for i = 1 to 5
folge.folgen = new folge folge.folgen=folge.folgen[i] so sollte das klappen....glaub ich |
||
FBI-blitz |
Antworten mit Zitat |
|
|---|---|---|
|
Ach das meinst du! Hab ich ja ganz vergessen!
Danke! |
||
|
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+ Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+ |
||
hitokiri |
Antworten mit Zitat |
|
|---|---|---|
|
|
||
| P2 400 - 128mb RAM - 2mb shared video - 10GB HDD .... +Playstation2 | ||
|
|
Alfadur |
Antworten mit Zitat |
|---|---|---|
| ich hab das problem bei meinen games so gelöst das ich als folge nen string mitgebe, wo dann zb drinsteht "getxp:2000:dropitem:2:getquest:2:complquest:3" usw ... sind also mehrere folgen... den muß ich jetzt nur noch parsen und herauskommt das ich 2000 xp bekomme, item nr 2 gedropt wird wenn ichs habe, ein neues quest kommt dazu, ein altes wird damit beendet ... | ||
| A Cray is the only computer that runs an endless loop in less than four hours. | ||
FBI-blitz |
Antworten mit Zitat |
|
|---|---|---|
|
Hmm... Wenn ich jetzt das hier schreibe, kommt immer:
Variable must be a blitz array BlitzBasic: [AUSKLAPPEN] folge.folgen[temp] = New folgen |
||
|
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+ Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+ |
||
hitokiri |
Antworten mit Zitat |
|
|---|---|---|
|
Ich bin ja auch ein volltrottel.... das blitzarray ist ja erst noch leer und du weisst dem neu erstellten objekt ein leeres feld zu muss natürlich andersrum sein. folge.folgen[i] = folge.folgen |
||
FBI-blitz |
Antworten mit Zitat |
|
|---|---|---|
|
Das hier:
BlitzBasic: [AUSKLAPPEN] For temp = 0 To 10 gibt auch ne Fehlermeldung! |
||
|
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+ Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+ |
||
|
|
Alfadur |
Antworten mit Zitat |
|---|---|---|
|
http://www.blitzbase.de/tutorials/shadow_2.htm
Kombination Type+Blitzarray Types lassen sich mit Blitzarrays kombinieren. Dadurch bleibt jedes Objekt direkt ansprechbar. Das ganze funktioniert so ähnlich wie bei DIM/TYPE-Kombination: TYPE obj FIELD x FIELD y END TYPE LOCAL obj.obj[100] obj[0]=NEW obj obj[0]\x=0 obj[0]\y=0 Das ist aber noch nicht alles. Weiterhin lassen sich Blitzarrays als Eigenschaft mit dem Befehl FIELD definieren. Dies kann völlig neue Möglichkeiten eröffnen: TYPE obj FIELD x FIELD y FIELD image[10] END TYPE DIM feld.obj(100) feld(0)=NEW obj feld(0)\x=0 feld(0)\y=0 feld(0)\image[10]=0 |
||
| A Cray is the only computer that runs an endless loop in less than four hours. | ||
Übersicht
BlitzBasic
Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group
