Seite 1 von 1

Bilder und Sounds wiedergeben

Verfasst: 30.11.2006 17:57
von c9ma
Hallo.

Ich bin ein unwissender Einsteiger in Sachen PureBasic und habe jetzt zwei Fragen:

Ich habe mir was ganz simples und einfaches geschrieben. Undzwar mit PrintN("") einfach Text in der Console anzeigen lassen.

Jetzt möchte ich am Ende des Vorgangs, also wenn die Console wieder schließt, ein Bild (zB .jpg) anzeigen (im Vollbild, nicht im Fenster) und gleichzeitig einen kleinen Sound abspielen lassen.

Nur weiß ich absolut nicht die Befehle dafür und wollte daher fragen ob mir Jemand die Befehle, bzw den Code, hier ins Fourm schreiben kann.


Also der Ablauf ist folgender:

1. Console öffnet
2. Text wird angezeigt
3. Console schließt
4. Bild wird auf dem Ganzen Bildschirm (Vollbild) angezeigt und gleichzeitig spielt das Programm eine kleine Sounddatei ab


Eine Frage habe ich noch. Wenn ich ein Bild und eine Sounddatei als Dateien in einem Ordner habe und diese mit dem angegebenem Pfad über das Programm lade habe ich ja sozusagen 3 Dateien. Die .exe, das .jpg und die zB. .wav.
Kann ich auch das Bild und den Sound in die .exe mit einbeziehen, sodass ich nurnoch eine Datei habe?

Wäre super wenn ihr mir diese Fragen beantwortet und mir so weiterhelfen würdet :-)

Mit freundlichen Grüßen,
c9ma

Verfasst: 30.11.2006 18:25
von Brügge
hi

also dein programm:

Code: Alles auswählen

    initsprite()
    initsound()

    openscreen(1024,768,32,"Screen")
    
        LoadSprite(0,"c:\programme\pb\dateiname.bmp")
        LoadSound(0,"c:\programme\pb\dateiname.wav")
  
        DisplaySprite(0, 100, 100)
        PlaySound(0,0)
        
        delay(5000)
    closescreen()

    

Verfasst: 30.11.2006 18:53
von a14xerus

Code: Alles auswählen

    initsprite() 
    initsound() 

    openscreen(1024,768,32,"Screen") 
    
        LoadSprite(0,"c:\programme\pb\dateiname.bmp") 
        LoadSound(0,"c:\programme\pb\dateiname.wav") 
  
        DisplaySprite(0, 100, 100) 
FLIPBUFFERS() ;<----------------
        PlaySound(0,0) 
        
        delay(5000) 
    closescreen()

Re: Bilder und Sounds wiedergeben

Verfasst: 30.11.2006 18:57
von a14xerus
c9ma hat geschrieben:Bild wird auf dem Ganzen Bildschirm (Vollbild) angezeigt und gleichzeitig spielt das Programm eine kleine Sounddatei ab
Du musste das Bidl eventuel noch zoomen (3D befehle), bzw das vollbild in der auflösung des bilder öffnen, damit man es ganz sieht.
sprites zeichnet man immer auf den screenbuffer, mit flipbuffers wird der geflippt und man seht das ergebniss, danach zeichnet ma nauf den anderen der 2 buffer, und man muss wieder flippen
normalerweise macht man das in einer schleife

in forum gibt es viele beispiele, nud auch in der hilfe wirst du fündig

Verfasst: 30.11.2006 19:04
von AndyX

Code: Alles auswählen

Global width = 1024, height = 768, depth = 32, posX = 0, posY = 0, delay = 5000

InitSprite()
InitSound()
OpenScreen(width,height,depth,"c9ma")
CatchSprite(0,?Picture,?Sound-?Picture)
CatchSound(0,?Sound,?SoundEnd-?Sound)

If posX <> 0 or posY <> 0
  posX = (width / 2) - (SpriteWidth(0) / 2)
  posY = (height / 2) - (SpriteHeight(0) / 2)
EndIf

DisplaySprite(0,posX,posY)
FlipBuffers()
PlaySound(0,0)

Delay(delay)
End

DataSection
  Picture:
  IncludeBinary "C:\Programme\PB\Dateiname.bmp" ;- <<< Pfad anpassen!
  Sound:
  IncludeBinary "C:\Programme\PB\Dateiname.wav" ;- <<< Pfad anpassen!
  SoundEnd:
EndDataSection

Verfasst: 30.11.2006 19:24
von a14xerus
falls du den unterschied catchsprite/loadspriet nicht kennst:
Bei Catch muss das bild per datasection in die exe eingefügt werden, brauch aber am ende nicht dem programm beigelegt werden (zb für grafiken in programmen)
loadsprite läd das bild wärend das programm läuft, das bidl muss also mitgeliefert werden (bei vielen bildern wie bei spielen)

Verfasst: 30.11.2006 22:50
von c9ma
sehr nice. danke sehr schonmal an alle die hier geantwortet haben.

und nun nochmal zu der anderen frage:

kann man die bmps und wav irgendwie in die .exe einfügen, sodass man sie nicht mit phad von der platte laden muss?

MfG

Verfasst: 30.11.2006 22:57
von a14xerus
Siehe AndyXs Post und meine erklärung danach :roll: :allright: