BASIC

Author Topic: Schüsse mit einem DIM(Array) erstellen  (Read 5727 times)

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5009
  • O Rly?
    • View Profile
Hier der Code, wenns noch Fragen gibt, nicht zögern! :

Code: GLBasic [Select]
// --------------------------------- //
// Project: Dim Shots Tutorial
// Start: Tuesday, July 10, 2007
// IDE Version: 4.237

SYSTEMPOINTER TRUE // System-Mauszeiger im Spiel verwenden !
       
        // X und Y sind NULL, da nicht Deklariert!
        // Es dient rein fürs verständnis!
        DIM shotX[X]
        DIM shotY[Y]
       
       
       
WHILE TRUE
        LOCAL mx,my,b1,b2
        MOUSESTATE mx,my,b1,b2 // mousekoordinaten abfragen
       
        //---------------------------------------------------------------
        //      Schüsse erstellen ...........................................
        //---------------------------------------------------------------
        IF b1 AND Timer < GETTIMERALL() // wenn linke-Maustaste gedrückt, und Timer kleiner Gesammttimer ist
                INC Schuss,1 // die Variable um die Schüsse zu Zählen
               
                REDIM shotX[Schuss] // \
                                                        //      > erhöht die DIM's um die Anzahl der Schüsse
                REDIM shotY[Schuss] // /
               
                // Dem shot die aktuelle Mausposition übergeben
                shotX[Schuss-1] = mx // Schuss-1 da es beim aufrufen von DIM ab 0 gezählt wird ( 0 - 9 = 10 Felder!)
                shotY[Schuss-1] = my
               
                Timer = GETTIMERALL()+200 // Timer auf 200 ms mehr setzen als der Gesammttimer
        ENDIF
       
        //---------------------------------------------------------------
        //      Schüsse anzeigen, und auf Position prüfen, oder löschen......
        //---------------------------------------------------------------
        // alle Schüsse Abfragen!
        FOR num = 0 TO BOUNDS(shotX[],0)-1  // für BOUNDS(shotX[],0)-1 würde auch BOUNDS(shotX[],0)-1  gehen
                                                                                // da die Arrays immer die gleiche größe haben.
               
                        DEC shotY[num],1        // Schuss pro durchlauf eins nach oben setzen
                       
                        PRINT "|", shotX[num], shotY[num] // Gib einen Schuss auf den gespeicherten Koordinaten wieder
                       
                       
                        IF shotY[num] < 0       // Wenn der schuss den oberen Rand erreicht
                                DIMDEL shotX[], num             // Lösche den X-Eintrag
                                DIMDEL shotY[], num             // Lösche den Y-Eintrag
                                DEC Schuss,1                    // Setze die Schussanzahl nach unten
                        ENDIF
       
        NEXT
       
       
        PRINT Schuss, 10, 10  // Anzeige, wieviele Schüsse unterwegs sind ;)

SHOWSCREEN
WEND
END
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Shogun

  • Mr. Drawsprite
  • **
  • Posts: 67
    • View Profile
Schüsse mit einem DIM(Array) erstellen
« Reply #1 on: 2007-Sep-24 »
Hallo Schranzor, habe mir dein Beispiel mal angeschaut. Ich wollte statt der Maus eine Taste nutzen und die Grafik des Schusses ändern, komme aber nicht wirklich weiter.
Ob du mir nochmal ein bischen helfen kannst? Ich habe noch viel zu wenig Erfahrung um es wirklich zu verstehen. Meine nächsten Ziele sind wie oben beschrieben Schüsse und Lebenspunkte einer Einheit zum Beispiel.

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5009
  • O Rly?
    • View Profile
Schüsse mit einem DIM(Array) erstellen
« Reply #2 on: 2007-Sep-24 »
Hi Shogun.

Wenn du fragen hast, hier meine ICQ: 286862111

Melde dich einfach bin noch etwas online!

Grüße
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline jasper111

  • Mc. Print
  • *
  • Posts: 32
    • View Profile
Schüsse mit einem DIM(Array) erstellen
« Reply #3 on: 2007-Nov-25 »
Hallo,

wie sieht es mit Type aus. Kann ich mit den auch wie in BB arbeiten?

Gruß Jasper111
Rechtschreibfehler sind pure Absicht und dienen der allgemeinen Belustigung.
_____________________________________________________________

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5009
  • O Rly?
    • View Profile
Schüsse mit einem DIM(Array) erstellen
« Reply #4 on: 2007-Nov-25 »
Hi, klar kannste das.
Nur musst du einiges anders machen, und die Types in GLBasic sind 100x schneller als die in BB ;)

siehe da:
http://www.glbasic.com/forum/viewtopic.php?id=790
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline jasper111

  • Mc. Print
  • *
  • Posts: 32
    • View Profile
Schüsse mit einem DIM(Array) erstellen
« Reply #5 on: 2007-Nov-25 »
Hi,

sieht aber irgendwie  schwieriger aus, mag aber auch daran liegen das ich mit mühe Type in BB verstanden habe.

Gibt es ein ausführliches Tut für den Type in GLBasic ?

Gruß Jasper
Rechtschreibfehler sind pure Absicht und dienen der allgemeinen Belustigung.
_____________________________________________________________

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5009
  • O Rly?
    • View Profile
Schüsse mit einem DIM(Array) erstellen
« Reply #6 on: 2007-Nov-25 »
Nein.

Types kannst du dir so vorstellen:

Beim Arzt gibt es ein Formular, das man immer aussenfüllen muss wenn man das erste mal bei ihm ist, ich nenne es jetzt mal Standartformular, in GLBasic ist es so, dass das Standartformular die Decleration des Types und der Felder ist.

TYPE Patient
    Name$
    Alter
    Geburtsjahr
ENDTYPE

Jetzt brauch der Arzt aber noch einen Ordner, wo er die Standartformulare ablegen kann, die schon ausgefüllt worden sind.
(Ordner ist hier ein offenes Array)

LOCAL Patienten[] AS Patient

So, nun kommt ein Patient zum ersten mal zum Arzt, und die Nette Artzhelferen(mit ordentlich Holz vor der hütt'n) fragt den Patienten:
Waren sie den schonmal hier
NEIN, natürlich nicht, und deshalb muss man das Formular ausfüllen!

Da der Arzt alles schön sortiert haben will geht er nach Krankenkassen:

LOCAL AOK AS Patient
AOK.Name$ = "Max Musterman"
AOK.Alter = 30
AOK.Geburtsjahr = 1977
DIMPUSH Patienten[], AOK  // Fügt das Formular in den Ordner ein

So jetzt will der Arzt natürlich mal alle Durchgehen, um was zu Prüfen:

LOCAL Anzahl
FOREACH Check IN Patienten[]
     IF Check.Alter = 30
          INC Anzahl,1
     ENDIF
     PRINT "Es gibt "+Anzahl+" Patienten die 30 Jahre alt sind",10,10
NEXT


Also nochmal zusammengefast:

Alles bis auf die FOREACH-Schleife kommt vor der Hauptschleife, die FOREACH kommt in die Hauptschleife rein!
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline jasper111

  • Mc. Print
  • *
  • Posts: 32
    • View Profile
Schüsse mit einem DIM(Array) erstellen
« Reply #7 on: 2007-Nov-25 »
Hallo und danke für die schnelle Antwort.

gefält mir gut die erklärung(Holz vor der Hütte(haste auch Bilder :)  ))

Werde direkt mal probiern ob ich es begriffen habe.

Danke und Gruß Jasper
Rechtschreibfehler sind pure Absicht und dienen der allgemeinen Belustigung.
_____________________________________________________________

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5009
  • O Rly?
    • View Profile
Schüsse mit einem DIM(Array) erstellen
« Reply #8 on: 2007-Nov-25 »
Bilder von ihr gibts auf einschlägigen Seiten, die ich hier nich namentlich nennen will :D

Und nochmal.... kein Problem, wir Helfen gerne ;)
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10683
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Schüsse mit einem DIM(Array) erstellen
« Reply #9 on: 2007-Nov-26 »

für den anschaulichsten Vergleich von Holz + Types.

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5009
  • O Rly?
    • View Profile
Schüsse mit einem DIM(Array) erstellen
« Reply #10 on: 2007-Nov-26 »
WOHOOOOOOOOOOOOOO :D

Das Bundes-Verdienst-Kreuz......
*Niederknie und entgegennimm" :)
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard