Verfasst: 13.05.2008 10:30
Habe viel alleine geschafft aber jetzt komme ich nicht mehr weiter ( und in der Hilfe finde ich auch nichts ! )
Und zwar habe ich ein paar kleinere Prob.
Erstens die Fehlermeldung die sofort kommt.
Ich habe verusucht einen Timer einzubauen ,also wenn F1 zum Starten des Spiels gedrückt wird, das es nicht sofort loslegt mit dem Spiel, sondern erstmal ein Timer. ( 6 Sekunden lang )
"eingebaut" ist er ja , nur ich bekomme eine Fehlermeldung ( Inhalt )
Hab es fast (... ) so gemacht wie es bei den anderm "StopScreen" Timer ist, also gleicher Code nur ein bisschen angepasst.
Auserdem würde ich gern das die Musik ( Movie ) schon am anfang gespielt wird.
Das sollte ja eig. mit "1" gehen ,geht es aber nicht.
Bei mir passiert im Menü nur das es wenn ich F2 drücke neugestarten / angehalten wird.
Wäre wirklich nett wenn mir jemand helfen könnte.
Hier das gesamte Packet ( an grafiken , Sounds, Screen Codes )
http://rapidshare.com/files/114543052/V ... 1.rar.html
Ich weis der Code ist sehr sehr unaufgeräumt ...
Und hier nur der Code
Und zwar habe ich ein paar kleinere Prob.

Erstens die Fehlermeldung die sofort kommt.
Ich habe verusucht einen Timer einzubauen ,also wenn F1 zum Starten des Spiels gedrückt wird, das es nicht sofort loslegt mit dem Spiel, sondern erstmal ein Timer. ( 6 Sekunden lang )
"eingebaut" ist er ja , nur ich bekomme eine Fehlermeldung ( Inhalt )
Hab es fast (... ) so gemacht wie es bei den anderm "StopScreen" Timer ist, also gleicher Code nur ein bisschen angepasst.
Auserdem würde ich gern das die Musik ( Movie ) schon am anfang gespielt wird.
Das sollte ja eig. mit "1" gehen ,geht es aber nicht.
Bei mir passiert im Menü nur das es wenn ich F2 drücke neugestarten / angehalten wird.

Wäre wirklich nett wenn mir jemand helfen könnte.

Hier das gesamte Packet ( an grafiken , Sounds, Screen Codes )
http://rapidshare.com/files/114543052/V ... 1.rar.html
Ich weis der Code ist sehr sehr unaufgeräumt ...

Und hier nur der Code
Code: Alles auswählen
If InitMovie()= 1 ; Wenn die Initialisierung = 0 Byte ist (AUS),
MessageRequester("Fehler","Konnte Dx nicht finden",0) ; wird eine Nachricht gesendet, in der eine Fehlermeldung steht.
EndIf
LoadMovie(0,"Sound\Hintergrund Sound.mid")
Movie = 0
EnableExplicit
Enumeration ; Sprites
#HINTERGRUND
#HINTERGRUND1
#MENSCH
#Augenlinks
#Augenrechts
#ZAHL1
#ZAHL2
#ZAHL6
#Startbildschirmspieler
#Movie
#Startscreen
EndEnumeration
#ATimer = 6000
#STOPZEIT = 30000
Structure NOTEN
x.l
y.l
Art.l
Speed.l
EndStructure
LoadFont(1,"Arial",12,#PB_Font_Bold)
LoadFont(2,"Arial",10,#PB_Font_Bold)
LoadFont(3,"Arial",8,#PB_Font_Bold)
LoadFont(4,"Arial",10,#PB_Font_Bold)
LoadFont(5,"Arial",6,#PB_Font_Bold)
;/
Define Quit, Titel$, MeinePunkte
Titel$ = "Schlechte Noten ? <-->made by AndyX<-->"
;/
Procedure Window()
Protected EventID
Shared Quit
EventID = WindowEvent()
Repeat
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
EventID = WindowEvent()
Until EventID = 0
EndProcedure
;/
Procedure Ende(Text$)
Shared Titel$
MessageRequester (Titel$, Text$)
End
EndProcedure
;/
Procedure StopScreen()
EnableExplicit
Enumeration ; Sprites
#X
#Y
EndEnumeration
Protected Start, x, y, StartTimer, Init, Zeit
Shared Quit, MeinePunkte
Repeat
Zeit = ElapsedMilliseconds()
Window()
ClearScreen(0)
DisplaySprite(#HINTERGRUND, 0, 0)
DisplayTransparentSprite(#Augenlinks, 530, 200)
DisplayTransparentSprite(#Augenrechts, 0, 200)
ExamineKeyboard()
If KeyboardPushed(#PB_Key_F5)
StartTimer = Zeit + 6000
Init = 1
EndIf
If Init
If StartTimer < Zeit
Start = 1
EndIf
EndIf
If KeyboardPushed(#PB_Key_Escape)
Quit = 1
EndIf
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
x = 200
y = 250
If Init
DrawText(x, y, "Neues Spiel neues Glück!", $FFFFFF)
y + 50
DrawText(x, y, "in " + Str((StartTimer - Zeit)/1000) + " sekunden geht's los !", $FFFFFF)
Else
DrawText(x, y, "Wow dein Highscore beträgt "+Str(MeinePunkte)+" Punkte",RGB(250,250,250), RGB(0,0,0))
y + 20
DrawText(x, y, "Nochmal spielen mit F5",RGB(250,250,250), RGB(0,0,0))
y + 20
DrawText(x, y, "Oder spiel durch ESC beenden",RGB(250,250,250), RGB(0,0,0))
y + 245
x - 200
DrawText(x, y, "Auto. beenden in 10 Sek <-- Funktion noch nicht eingebaut",RGB(250,250,250), RGB(0,0,0))
x + 490
DrawText(x, y, "Spiel is made by AndyX",RGB(250,250,250), RGB(0,0,0))
EndIf
StopDrawing()
Delay(1)
FlipBuffers()
Until Start Or Quit
If Quit
End
EndIf
EndProcedure
;/
Define Zeit, NotenTimer, Stopzeit, ScreenX, ScreenY, x, y, SpielerX, SpielerY
Define testX, testY, Test$, Speed
;/
If Not (InitSprite() And InitKeyboard())
Ende("Init Error")
EndIf
ScreenX = 650
ScreenY = 550
If OpenWindow(0, 0, 0, ScreenX, ScreenY, Titel$, #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(0), 0, 0, ScreenX, ScreenY, 0, 0, 0)
SetFrameRate(50)
Else
Ende("Screen Error")
EndIf
Else
Ende("Window Error")
EndIf
;/ Startbildschirm
UsePNGImageDecoder()
LoadSprite(#HINTERGRUND, "Images\Panorama.bmp",1)
LoadSprite(#HINTERGRUND1, "Images\Steuerung.png",0)
UsePNGImageDecoder()
LoadSprite(#Startbildschirmspieler,"Images\Spieler augen mitte.PNG",0)
TransparentSpriteColor(#Startbildschirmspieler,0)
Procedure Steuerung()
Repeat
Window()
ClearScreen(0)
DisplaySprite(#HINTERGRUND1, 0, 0)
ExamineKeyboard()
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
; Hier kommen noch die "Steuerungs erklärungsbefele" rein
StopDrawing()
Delay(1)
FlipBuffers()
Until KeyboardPushed(#PB_Key_All)
EndProcedure
; A Timer = Anfangstimer
ATimer = ElapsedMilliseconds() + #ATimer
Repeat
If KeyboardPushed(#PB_Key_F1)
ATimer = Zeit + 6000
Init = 1
EndIf
If Init
If ATimer < Zeit
Start = 1
EndIf
Window()
ClearScreen(0)
DisplaySprite(#HINTERGRUND, 0, 0)
DisplayTransparentSprite(#Startbildschirmspieler, 25, 290)
ExamineKeyboard()
StartDrawing(ScreenOutput())
If Init
DrawingMode(#PB_2DDrawing_Transparent)
x = 80
y = 20
DrawText(x, y, "Spiel Start in " + Str((anfangstimer - Zeit)/1000) + " sekunden geht's los !", $FFFFFF)
Else
DrawingFont(FontID(2))
DrawText(x, y, "Ihr müsst versuchen so viele Punkte zu machen in 30 Sekunden wie nur möglich")
y + 40
DrawText(x, y, "Zur erklärung der Punkte vergabe:")
x + 250
y + 20
DrawText(x, y, "Die 1 gibt 100 Punkte")
y + 20
DrawText(x, y, "Die 2 gibt noch 10 Punkte")
y + 20
DrawText(x, y, "Und die 6 gibt -50 Punkte")
x - 250
y + 10
DrawText(x, y, "")
y +20
DrawText(x, y, "Bei jeder nicht gefangenen 1 und jeder 2 werden 25 Punkte abgezogen")
x - 50
y + 280
DrawingFont(FontID(1))
DrawText(x, y, "Spielstarten[F1]",RGB(250,250,250), RGB(0,0,0))
y +30
DrawText(x, y, "Musik an/aus [F2]",RGB(250,250,250), RGB(0,0,0))
y +18
DrawingFont(FontID(5))
DrawText(x, y, "Kann nur im Hauptmenü bedient werden....",RGB(250,250,250), RGB(0,0,0))
y+ 12
DrawingFont(FontID(1))
DrawText(x, y, "Steuerung anzeigen[F3]",RGB(250,250,250), RGB(0,0,0))
y+ 30
DrawText(x, y, "Beenden[ESC]",RGB(250,250,250), RGB(0,0,0))
StopDrawing()
Delay(1)
FlipBuffers()
If KeyboardPushed(#PB_Key_F3)
Steuerung()
EndIf
;Hier wird die Musik "installiert"| eingebaut
; Aber die Musik sollte schon am anfang laufen, und sollte durch drücken von F2 Starten oder Beginnen., aber bei mir wird nur ein "neustart durchgeführt.
If KeyboardPushed(#PB_Key_F2)
movie = 1
Else
movie = 0
EndIf
If movie = 1
PlayMovie(0,0)
EndIf
Until KeyboardPushed(#PB_Key_F1) Or Quit
If Quit
End
EndIf
;/ Spiel
UsePNGImageDecoder()
LoadSprite(#Startbildschirmspieler,"Images\Spieler.PNG",0)
TransparentSpriteColor(#Startbildschirmspieler,0)
LoadSprite(#MENSCH,"Images\Spieler.PNG",0)
TransparentSpriteColor(#MENSCH,0)
LoadSprite(#Augenlinks,"Images\Spieler augen links.PNG",0)
TransparentSpriteColor(#Augenlinks, 0)
LoadSprite(#Augenrechts,"Images\Spieler augen rechts.PNG",0)
TransparentSpriteColor(#Augenrechts, 0)
LoadSprite(#ZAHL1,"Images\Note1.PNG",0)
TransparentSpriteColor(#ZAHL1, 0)
LoadSprite(#ZAHL2,"Images\Note2.PNG",1)
TransparentSpriteColor(#ZAHL2, 0)
LoadSprite(#ZAHL6,"Images\Note6.PNG",1)
TransparentSpriteColor(#ZAHL6, 0)
SpielerX = ScreenX / 2
SpielerY = ScreenY - SpriteHeight(#MENSCH) + 10
Speed = 5
NewList Noten.NOTEN()
Stopzeit = ElapsedMilliseconds() + #STOPZEIT
Repeat
Zeit = ElapsedMilliseconds()
If Stopzeit < Zeit
StopScreen()
ClearList(Noten())
MeinePunkte = 0
Stopzeit = ElapsedMilliseconds() + #STOPZEIT
EndIf
Window()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
Quit = 1
EndIf
If KeyboardPushed(#PB_Key_Right)
If SpielerX < ScreenX-120
SpielerX + Speed
EndIf
EndIf
If KeyboardPushed(#PB_Key_Left)
If SpielerX > 0
SpielerX - Speed
EndIf
EndIf
If KeyboardPushed(#PB_Key_A)
testX + 1
EndIf
If KeyboardPushed(#PB_Key_S)
testX - 1
EndIf
; neue noten (alle 500ms)
If NotenTimer < Zeit
NotenTimer = Zeit + 500
AddElement(Noten())
Noten()\x = Random(ScreenX-40)
Noten()\y = - 60
Noten()\Art = #ZAHL1 + Random(2)
Select Noten()\Art
Case #ZAHL1
Noten()\Speed = 9
Case #ZAHL2
Noten()\Speed = 3
Case #ZAHL6
Noten()\Speed = 2
EndSelect
EndIf
ClearScreen(0)
DisplaySprite(#HINTERGRUND, testX, testY)
DisplayTransparentSprite(#MENSCH, SpielerX, SpielerY)
ForEach Noten()
Noten()\y + Noten()\Speed
DisplayTransparentSprite(Noten()\Art, Noten()\x, Noten()\y)
If Noten()\y - SpielerY > -60 And Noten()\y - SpielerY < 120
If Noten()\x - SpielerX > -10 And Noten()\x - SpielerX < 110
Select Noten()\Art
Case #ZAHL1
MeinePunkte + 100
Case #ZAHL2
MeinePunkte + 10
Case #ZAHL6
MeinePunkte - 50
EndSelect
DeleteElement(Noten())
EndIf
ElseIf Noten()\y > ScreenY
Select Noten()\Art
Case #ZAHL1, #ZAHL2
MeinePunkte - 25
Case #ZAHL6
MeinePunkte - 0
EndSelect
DeleteElement(Noten())
EndIf
Next
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
FrontColor(0)
DrawText(170,0,"Dein Score beträtgt sagenhafte "+Str(MeinePunkte)+" Punkte")
StopDrawing()
Delay(1)
FlipBuffers()
Until Quit
End