Movie Implementierung :(

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

#c0rEDaMagE

Betreff: Movie Implementierung :(

BeitragMo, Jun 19, 2006 13:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Ich bin zurzeit dabei ein kleines RPG zu programmieren um so BB zu lernen.
Jetzt hab ich ein Intro gemacht aber er gibt mir jedes mal einen Memory Access violation an:

Code: [AUSKLAPPEN]

;Intro
; OpenMovie
; MovieHeight
; MovieWidth
; MoviePlaying
; DrawMovie
Graphics 640,480,16,1
Const WIDTH = 640
Const HEIGHT = 480
SetBuffer BackBuffer()
ClsColor 0,0,0
Color 0,255,0

;movie muss avi / mpeg sein

; Next, open the movie file. Feel free to change this to an AVI or MPEG file.
intro=OpenMovie("video/intro.mpeg")

If intro=0 Then RuntimeError "Fehler - kann Video nicht laden""
If Not(MoviePlaying(intro)) Then RuntimeError "Fehler - Kann Video nicht abspielen!"

w=MovieWidth(640) ; the width of the movie
h=MovieHeight(480) ; the height of the movie

; Now set up the starting position and timing variables
x=(1); the x position of the movie on screen
y=(1) ; the y position of the movie on screen
period=100 ; the interval between frames
time=MilliSecs() ; the time of the last frame update

; And here's the main loop
Repeat

; Wait for the specified period



; GIFs have no timing info, and as such will redraw the next frame on each call to DrawMovie.
; AVIs and MPEGs do have timing info, and as such will redraw the most recent frame on each call to DrawMovie.
; Ergo, this time limiter only has an impact, and is only required for GIFs.
Repeat
; do nothing
Until MilliSecs()-time>=period
time=MilliSecs() ; save the current time for the next frame

; Redraw the screen, by...

Cls ; clear the screen
DrawMovie intro,x,y,w,h ; draw the movie

; Flip the buffers
Flip

Until KeyHit(1) ; Escape to exit

; Remove the movie from memory before closing down
CloseMovie(intro)

Include "Luciana.bb"


Ich hab das nach der Command reference gearbeitet als es nicht ging hab ich halt den code kopiert und angepasst -> ging immer noch nicht.

Ich verwende Blitz 3d 1.96.

lg
c0re
 

Dreamora

BeitragMo, Jun 19, 2006 13:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem sind die nutzung von movieheight / width. Dort must du intro nutzen nicht die grösse des Fensters.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

#c0rEDaMagE

BeitragMo, Jun 19, 2006 14:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank, allerdings bleibt jetzt der Bildschirm schwarz bis ich Escape drücke. Kann das am Codec(Mpeg 1) liegen?Sound hat das Video nicht da ich das über einen extra Sound start mache um auch im Hauptmenü noch Musik unterlegung zu haben.
 

$tankY

BeitragMo, Jun 19, 2006 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 640,480,16,1

ersetz ma die 16 durch 0, vllt liegt es daran
 

Dreamora

BeitragMo, Jun 19, 2006 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
DrawMovie intro,x,y,w,h

Könnte übrigens auch ein problem sein sofern der film grösser ist als das Fenster bzw. x + w grösser ist als das fenster breit bzw. y + h grösser als das fenster hoch
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

#c0rEDaMagE

BeitragMo, Jun 19, 2006 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
puh, Vielen Dank ihr beiden es geht zwar ein bisschen langsam aber es geht Smile

EDit: zu früh gefreut jetzt zeigt er bei meinem Hauptmenü nur noch den Input an. Code des Hauptmenüs:

Code: [AUSKLAPPEN]
   Delay 1000
   Text 320,280,"Project Luciana"
   Delay 1000
   Text 320,320,"1.Start"
   Delay 1500
   Text 320,340,"2.Ende"
   mainmenustart$="1"
   mainmenuende$="2"
   
   Locate 320,360
   mainmenuchoose$=Input("Wähle: ")
   
   
   If mainmenuchoose$=mainmenuende$ Then End
   If mainmenuchoose$=mainmenustart$ Then
   Cls
   Delay 1500
   Text 320,280,"Include des Newgamefiles"
   Delay 3000
   ;Include "startnewgame.bb"
   ;Goto startnewgame
   Delay 2000
   Else
   Text 320,550,"False Input Type."
   Goto mainmenu
   Delay 10000

   EndIf
 

$tankY

BeitragMo, Jun 19, 2006 20:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
   Delay 1000
   Text 320,280,"Project Luciana"
   Delay 1000
   Text 320,320,"1.Start"
   Delay 1500
   Text 320,340,"2.Ende"
   mainmenustart$="1" ;$ kann man weglassen, verbraucht nur speicher
   mainmenuende$="2"
   
   Locate 320,360
   mainmenuchoose$=Input("Wähle: ")
   
   
   If mainmenuchoose$=mainmenuende$ Then End
   If mainmenuchoose$=mainmenustart$ Then
   Cls ;Hier loeschst du alles, was du zuvor auf den buffer geschrieben hast
   Delay 1500
   Text 320,280,"Include des Newgamefiles"
   Delay 3000
   ;Include "startnewgame.bb"
   ;Goto startnewgame
   Delay 2000
   Else
   Text 320,550,"False Input Type."
   Goto mainmenu
   Delay 10000

   EndIf

Edit: Input ist nicht gut, wenn du graphics benutzt, suche ma nach einer eingabe routine und schau dir das an! Dein Programmierstil ist auch nicht sehr besonders, vllt solltest du dir die deutsch OH downloaden (glaub blitzbase.de) und das tut von robsite nochma anschauen.

x-pressive

BeitragDi, Jun 20, 2006 8:11
Antworten mit Zitat
Benutzer-Profile anzeigen
So viel Code, um ein einfaches Intro abzuspielen? Jessas... das geht auch kompakter:

Code: [AUSKLAPPEN]
Movie% = OpenMovie("intro.mpg")
While Movie <> 0 And KeyHit(1) = False And MouseHit(1) = False And KeyHit(57) = False
   DrawMovie Movie,0,0,800,600 : Flip 1 : If Not MoviePlaying(Movie) Exit
Wend
If Movie <> 0 Then CloseMovie Movie : Movie = 0


Arrow Damit das Intro auf jedem Computer abgespielt werden kann, am besten normales (Standard-) MPEG mit Einstellungen für normale VCD oder SVCD verwenden.

Arrow Das Intro am besten in der Auflösung 640x480 oder 800x600 rendern und während der Wiedergabe die Bildschirmauflösung auf diese Grösse setzen.
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL
 

#c0rEDaMagE

BeitragDi, Jun 20, 2006 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen dank werde nacher alles ausprobiern.

Wie gesagt bin noch totaler anfänger und das ist halt so geschrieben wie ichs im Moment noch nur kann. Und Movie ist Mpeg4 v2 codiert dürfte auch gehn oder?
 

Dreamora

BeitragDi, Jun 20, 2006 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur wenn auf dem Zielsystem der Codec vorhanden ist.
Deswegen wurde empfohlen nur VCD / SVCD zu nehmen, das sind standard codecs die eigentlich da sind auf allen systemen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group