GLB:Power-Ups und Sound

Aus PandoraWiki

Wechseln zu: Navigation, Suche

Im letzten Teil schauen wir, wie ein Power-Up hinzugefügt werden kann und wie dadurch die Schusskraft verändert wird. Und zum Abschluss fügen wir noch eine Hintergrundmusik sowie einige Soundeffekte dazu. Wie immer findet ihr im Pandora-Datei-Archive den Beispiel-Code ( http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,46,31 )

Wenn ihr den letzten Teil durchgearbeitet habt, wisst ihr ja, dass wir 2 verschiedene Gegnertypen haben: ENEMY1 und ENEMY2.

Im Programm selber kann man ENEMY2 als ROTEN Gegner erkennen. Nun soll dieser, falls er getroffen wird, ein Power-Up hinterlassen. Dazu müssen wir nur in unserem EnemySCRIPT ein neues Objekt hinzufügen.

                ObjectADD(ID_POWERUP,Object.PosX[ix],Object.PosY[ix])

Das Script für das Power-Up findet ihr wiederum in der Datei items.gbas.

        CASE ID_POWERUP
            SELECT Object.State[ix]
                CASE 1
                    IF Object.PosX[ix]>-16
                        DEC Object.PosX[ix],0.5
                    ELSE
                        Object.State[ix]=0
                    ENDIF
            ENDSELECT
            DRAWSPRITE SPR_POWERUP,Object.PosX[ix],Object.PosY[ix]
            SetCollBox(ix,0,0,15,15)
            IF CheckCollPlayer(ix)=COLL_PLAYER
                Object.State[ix]=0
                PLAYSOUND(SFX_EXTRA,GetPan(Object.PosX[ix]),0.7)
                SPR_SHOT=24
            ENDIF
    ENDSELECT

Dieses Item überprüfen wir nun auf die Kollision mit dem Spieler und falls eine stattfindet löschen wir das Item in der Objektliste und verändern unseren Schuss.

Nun zum Thema Sound. Das is unter GLBasic eine einfache Sache. In der Datei level000.gbas laden wir unsere Soundeffekte und weisen ihnen gleich eine Konstante zu.

    LOADSOUND "./isdo/sfx/shot.wav",SFX_SHOT,4
    LOADSOUND "./isdo/sfx/explosion.wav",SFX_EXPLOSION,4
    LOADSOUND "./isdo/sfx/extra.wav",SFX_EXTRA,4

Dann laden wir unsere Hintergrundmusik, stellen die Lautstärke ein und lassen sie laufen.

    PLAYMUSIC "./isdo/sfx/music.wav",TRUE
    MUSICVOLUME 0.9

Eine Soundeffekt wird in GLBasic mit dem Befehl PLAYSOUND abgespielt. Wenn Ihr zum Beispiel das ItemSCRIPT beachtet wird mit

                PLAYSOUND(SFX_EXTRA,GetPan(Object.PosX[ix]),0.7)

Der Sound mit der ID SFX_EXTRA mit der Lautstärke 0.7 abgespielt. Die Funktion GetPan in unserer Library bewirkt, dass der Soundeffekt je nach Position des Objekts eher Links oder Rechts ertönt.

So. Nun hoffe ich, dass ich dem einen oder anderen mit diesem Tutorial etwas geholfen habe. Und wie gesagt wenn ich irgendwo helfen kann, meldet euch bei mir im Pandora oder GLBasic Forum oder einfach via PN in einem der beiden: