Was mache ich falsch?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Svolf

Betreff: Was mache ich falsch?

BeitragSa, März 18, 2006 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann mir einer sagen was ich falsch mache also so würde es aussehen wenns geht :

Code: [AUSKLAPPEN]

Graphics 640, 480, 16, 1
SetBuffer BackBuffer()

stars = LoadImage("Bilder\stars.bmp") ;
defiant = LoadImage("Bilder\cursor.bmp") ;

MaskImage defiant, 0, 0, 255

Color 255,0,0

FlushMouse
FlushKeys

Repeat

Cls

x_star = x_star + 1
If x_star = 201 Then x_star = 1

TileImage stars, x_star, 1
DrawImage defiant, MouseX(), MouseY()

fntArialI=LoadFont("Arial",32,False,True,False)
SetFont fntArialI
Color 148,128,228
Text 310,80, "Willkommen im Quizi!",True,False
FreeFont fntArialI

Color 255,0,0
Text 300,200, "Start"

Color 255,0,0
Text 295,250, "Credits"

Color 255,0,0
Text 305,300, "Ende"

If MouseHit(1) Then
If RectsOverlap(MouseX(),MouseY(),1,1,305,300,StringWidth("Ende"),StringHeight("Ende")) Then
 Cls : End

ElseIf RectsOverlap(MouseX(),MouseY(),1,1,300,200,StringWidth("Start"),StringHeight("Start")) Then

Planetb=LoadImage("Bilder\Planetb.bmp")
MaskImage Planetb, 255,255,255

Color 255,0,0

Punkte=0

Repeat

Cls

DrawImage Planetb, -195,-150

Color 0,255,0
Text 285,10, "Punkte"

Color 255,0,0

Line 90,400,90,500
Line 90,400,510,400

Line 510,400,510,500
Line 60,200,60,250
Line 60,250,550,250
Line 550,250,550,200
Line 550,200,60,200

Line 260,30,360,30
Line 360,30,360,60
Line 360,60,260,60
Line 260,60,260,30

Color 0,255,0
Text 80,220 ,"Was ist ein Isotop?"
Text 100,420, "a: Ein Haus"
Text 100,450, "c: Ein Schrank"
Text 320,420, "b: Ein Tisch"
Text 320,450, "d: Ein Stuhl"

x=GetKey()
If x = 97 Then
Punkte = Punkte + 1
ElseIf x = 98 Then
Punkte = Punkte + 0
ElseIf x = 99 Then
Punkte = Punkte + 0
ElseIf x = 100 Then
Punkte = Punkte + 0
EndIf
 
Locate 100,100
Print Punkte

Flip
Until KeyHit(1)
EndIf
EndIf
 
Flip
Until KeyHit(1)
 End
 


Nun möchte ich das er wenn eien Aufgabe richtig ist sich das merkt und zu eienr 2 geht das sieht dann bei mir so aus:



Code: [AUSKLAPPEN]


Graphics 640, 480, 16, 1
SetBuffer BackBuffer()

stars = LoadImage("Bilder\stars.bmp") ;
defiant = LoadImage("Bilder\cursor.bmp") ;

MaskImage defiant, 0, 0, 255

Color 255,0,0

FlushMouse
FlushKeys

Repeat

Cls

x_star = x_star + 1
If x_star = 201 Then x_star = 1

TileImage stars, x_star, 1
DrawImage defiant, MouseX(), MouseY()

fntArialI=LoadFont("Arial",32,False,True,False)
SetFont fntArialI
Color 148,128,228
Text 310,80, "Willkommen im Quizi!",True,False
FreeFont fntArialI

Color 255,0,0
Text 300,200, "Start"

Color 255,0,0
Text 295,250, "Credits"

Color 255,0,0
Text 305,300, "Ende"

If MouseHit(1) Then
If RectsOverlap(MouseX(),MouseY(),1,1,305,300,StringWidth("Ende"),StringHeight("Ende")) Then
Cls : End

ElseIf RectsOverlap(MouseX(),MouseY(),1,1,300,200,StringWidth("Start"),StringHeight("Start")) Then

Planetb=LoadImage("Bilder\Planetb.bmp")
MaskImage Planetb, 255,255,255

Color 255,0,0

Punkte=0



Cls

DrawImage Planetb, -195,-150

Color 0,255,0
Text 285,10, "Punkte"

Color 255,0,0

Line 90,400,90,500
Line 90,400,510,400

Line 510,400,510,500
Line 60,200,60,250
Line 60,250,550,250
Line 550,250,550,200
Line 550,200,60,200

Line 260,30,360,30
Line 360,30,360,60
Line 360,60,260,60
Line 260,60,260,30


Color 0,255,0
Text 80,220 ,"Was ist ein Isotop?"
Text 100,420, "a: Ein Haus"
Text 100,450, "c: Ein Schrank"
Text 320,420, "b: Ein Tisch"
Text 320,450, "d: Ein Stuhl"

x=GetKey()
If x = 97 Then
Punkte = Punkte + 1
Goto Frage2
ElseIf x = 98 Then
Punkte = Punkte + 0
Goto Frage2
ElseIf x = 99 Then
Punkte = Punkte + 0
Goto Frage2
ElseIf x = 100 Then
Punkte = Punkte + 0
Goto Frage2
EndIf


. Frage2


Color 0,255,0
Text 80,220 ,"dsfbdsmfnbdsnfbsm?"
Text 100,420, "a: Ein Haus"
Text 100,450, "c: Ein Schrank"
Text 320,420, "b: Ein Tisch"
Text 320,450, "d: Ein Stuhl"



Locate 345,40
Print Punkte

Flip

EndIf
EndIf

Flip
Until KeyHit(1)
End


Doch das ghet nicht. Wenn man Start drückt kommt nur kurz das andere Mneu und das wars. Er sprigt sofort zu .Frage2.
Was mache ich falsch wie kann man das machen, dass er bei Frage 1 Punkte zählt und dann zu frage 2 überghet.

Goodjee

BeitragSa, März 18, 2006 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
guck dir mal keydown und keyhit an.....und vllt für ein quizspiel auch waitkey
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, März 18, 2006 22:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Ehm, erstmal währe es echt Sinnvoll den Code mal einzurücken. Ich habe bestimmt 30 Sekunden gebraucht um festzustellen wo die Hauptschleife endet. Somit hatte ich dann auch keine Lust mehr mich weiter in den Code zu arbeiten. Aber um denoch mal ein bischen Hilfeleistung zu geben, würde ich dir den Umgang mit Dims empfehlen, wenn immer nur 4 mögliche Antworten gegeben sein sollen. Eine Möglichkeit währe dann...

Code: [AUSKLAPPEN]
dim frageantwort$(5,2)

frageantwort(0,0)="Was ist ein Isotop?"
frageantwort(1,0)="a: Ein Haus"
frageantwort(2,0)="b: Ein Schrank"
frageantwort(3,0)="c: Ein Tisch"
frageantwort(4,0)="d: Ein Stuhl"
frageantwort(5,0)="a" ;Oder was auch immer hier ein Isotop sein soll?!?

frageantwort(0,1)="Was ist eine Gravitation?"
frageantwort(1,1)="a: Ein tolles Computerspiel"
frageantwort(2,1)="b: Eine Anziehung von Massen"
frageantwort(3,1)="c: Eine Fallgeschwindigkeit"
frageantwort(4,1)="d: Ein komischer Esel"
frageantwort(5,1)="b"

frageantwort(0,2)="Was ist eine Elektrolyse?"
frageantwort(1,2)="a: Stromschlag bekommen"
frageantwort(2,2)="b: Blitzschlag bei Gewitter"
frageantwort(3,2)="c: Messen von elektrischer Spannung"
frageantwort(4,2)="d: Aufspalltung chemischer Stoffe"
frageantwort(5,2)="d"
u.s.w.

Dann beim fragen eine Positionsvariable erstellen die bei jeder Antwort um 1 erhöht wird. Ist die Antwort richtig, wird der Punktestand erhöht.

Zum anzeigen kann man dann wie folgt vorgehen.

Code: [AUSKLAPPEN]
Text 0,200,frageantwort(0,Position)
Text 0,220,frageantwort(1,Position)
Text 0,240,frageantwort(2,Position)
Text 0,260,frageantwort(3,Position)
Text 0,280,frageantwort(4,Position)

Zum abfragen kann man folgendermassen vorgehen.

Code: [AUSKLAPPEN]
If RectsOverlap([i]Der übliche Kramm[/i]) Then
  If Lower(frageantwort(5,Position))=Lower(Chr$((MouseY()/20)+97)) Then
    ;Du hast es!!!
    Position=Position+1
    Punkte=Punkte+1
  Else
    ;Du Niete!!!
    Position=Position+1
  End If
End If

Bei Lower(Chr$((MouseY()/20)+97)) Muß die Zahl dann noch angepasst werden! Ferig... Die Daten lassen sich auch so ganz gut in eine Datei rein packen und entsprechend auslesen...

Alfadur

BeitragMo, März 20, 2006 6:18
Antworten mit Zitat
Benutzer-Profile anzeigen
hatte da mal was gemacht : http://blitz.inarie.de/viewtopic.php?t=311

vielleicht kannste aus dem ersten code was lernen ...
A Cray is the only computer that runs an endless loop in less than four hours.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group