Kann mir jemand den Code umformen?

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

 

j0k3r

Betreff: Kann mir jemand den Code umformen?

BeitragFr, Sep 30, 2005 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,


Ich habe ein Problem.. ich habe mit Blitz2d angefangen und habe den Grundcode von dem Vokaleltrainer gefunden auf der CD vom Buch.
Leider gabs zum Zeitpunkt wo ich das Buch gekauft habe, kein Blitz2D mehr zu kaufen, also habe ich BlitzPlus..
Der Vokabeltrainer ist aber in Blitz2d geschriebn und benuitzt andere Befelhe..

Kann mir jemand diesen Code in Blitzplus umschreiben damit ich mit ihm experimentieren kann?

Code: [AUSKLAPPEN]

.labelstart
Graphics 700,200,8,2
Print"Geben Sie den Dateinamen ohne Endung ein(z.B.: englisch)
Print"Geben Sie ende! ein, um zu beenden."
.label1
lesen$=Input("Dateiname: ")+".txt"
If lesen$="ende!.txt" Then End
If FileType("Anlagen\"+lesen$)<>1 Then Print"Datei exestiert nicht. Prüfen Sie, ob die Datei im Ordner 'Anlagen' exestiert.":Goto label1
.label2
folge=Input("nach Reihenfolge(1) oder durcheinander(2) abfragen? Ziffer eingeben: ")
If Not(folge=1 Or folge=2) Then Print"Nur 1 oder 2 als Eingabe möglich":Goto label2


Graphics 800,600,16,1
SetBuffer BackBuffer()

If durchlauf=0 Then timer=CreateTimer(50)

 Type objekt
 Field frage$,antwort$,dran
 End Type

 Dim sound(3)
 sound(1)=LoadSound("richtig.wav")
 sound(2)=LoadSound("falsch.wav")
 sound(3)=LoadSound("ende.wav")

 Dim font(3)
 font(1)=LoadFont("Arial",20,1,0,0)
 
Global eingabe$
Global hintergrund=LoadImage("hintergrund.jpg")

datei=ReadFile("Anlagen\"+lesen$)
anzahl=0
While Not Eof(datei)
ReadLine (datei)
ReadLine (datei)
ReadLine (datei)
anzahl=anzahl+1
Wend
CloseFile datei

Dim objekt.objekt(anzahl)

datei=ReadFile("Anlagen\"+lesen$)
dr=0
While Not Eof(datei)
dr=dr+1
objekt(dr)=New objekt
objekt(dr)\frage$=ReadLine(datei)
objekt(dr)\antwort$=ReadLine(datei)
ReadLine (datei)

Wend
CloseFile datei

Dim dran(anzahl)

Color 0,0,0
SetFont font(1)
SeedRnd MilliSecs()
on=0
;#########

While alledran=0
If KeyDown(1) Then End

alledran=1
If folge=1 Then
 on=on+1
End If

If folge=2 Then
 .label3
 on=Rand(1,anzahl)
 If dran(on)=1 Then Goto label3
End If

dran(on)=1

DrawBlock hintergrund,0,0
Text 400,223,objekt(on)\frage$,1,1




[size=x-small]Flip
PeekEvent
Text 200,363
eingabe$=Input("Übersetzung: ")
If eingabe$="neu!" Then
 For x=1 To anzahl
  dran(x)=0
 Next
 alledran=0
 zahlges=0
 zahlrichtig=0
 zahlfalsch=0
 Goto labelstart
End If
If eingabe$="ende!" Then End[/size]


zahlges=zahlges+1

DrawBlock hintergrund,0,0
Text 400,223,objekt(on)\frage$,1,1

If eingabe$<>objekt(on)\antwort$ Then
 PlaySound sound(2)
 Text 400,372,"Falsch! ("+objekt(on)\antwort$+")",1,1
 zahlfalsch=zahlfalsch+1
 c=2
 Else Text 400,372,"Richtig!",1,1:zahlrichtig=zahlrichtig+1:PlaySound sound(1):c=1
End If



WaitTimer(timer)
Flip
If c=1 Then Delay 900
If c=2 Then Delay 2000

For x= 1 To anzahl
If dran(x)=0 Then alledran=0
Next
Wend
PlaySound sound(3)
.label4
DrawBlock hintergrund,0,0
If zahlges>0 Then Text 400,490,"Richtig: "+Str$((zahlrichtig*100)/zahlges)+"%  "+"Falsch: "+Str$((zahlfalsch*100)/zahlges)+"%",1
WaitTimer(timer)
Flip

Locate 340,520
eingabe$=Input("Nochmal?(j/n): ")
If Not(eingabe$="j" Or eingabe$="n") Then Goto label4
If eingabe$="j" Then
For x=1 To anzahl
 dran(x)=0
Next
alledran=0
zahlges=0
zahlrichtig=0
zahlfalsch=0
durchlauf=1
Goto labelstart
End If
End

Beim kleingeschriebenen habe ich schon runprobiert. nur zur anmerkung..

Bitte helft mir

j0k3r
 

Schnuff

BeitragSa, Okt 01, 2005 8:04
Antworten mit Zitat
Benutzer-Profile anzeigen
normalerweise ist BlitzPlus nur ein "Update",
mit dem man auch blitz2D widergeben kann.
Ich wüsste also nicht warum das nicht in
BlitzPlus auch funktionieren sollte.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Okt 01, 2005 8:43
Antworten mit Zitat
Benutzer-Profile anzeigen
in BlitzPlus ist BB2D nicht zu 100% intrigiert!

Es beginnt mit dem Print was nur in der Konsole funktioniert, aber im Graphics Fenster nichts ausgibt!
Genauso verhält es sich mit locate und input!
[BB2D | BB3D | BB+]
 

j0k3r

BeitragDi, Okt 04, 2005 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
zumindest funzen die Befhele teilweise nciht...

Kann mir niemand helfen?

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDi, Okt 04, 2005 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau mal ins Codearhiv
Printersatz
damit sollte es gehen!
[BB2D | BB3D | BB+]
 

j0k3r

BeitragDo, Okt 06, 2005 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Das scheint schon etwas geholfen zu haben,danke

aber: nun kmmt not enough parameters und ich weiss nicht wo.. könnt ihr das nochmal checken?
BlitzBasic: [AUSKLAPPEN]
Global PrintWriteX%
Global PrintWriteY%
Global Textheight%
Global BackImg% = CreateImage (GraphicsWidth () ,GraphicsHeight () )

Function Locate (x%,y%)
PrintWriteX = X
PrintWriteY = y
End Function

Function Print (A$ = \"\")
print_Change_sys ()
Text PrintWriteX,PrintWriteY,A$
Flip 0
If Textheight < FontHeight () Then Textheight = FontHeight ()
PrintWriteY = PrintWriteY + Textheight
Textheight = 0
PrintWriteX = 0
End Function

Function Write (A$)
print_Change_sys ()
Text PrintWriteX,PrintWriteY,A$
Flip 0
PrintWriteX = PrintWriteX + StringWidth (A$)
If Textheight < FontHeight () Then Textheight = FontHeight ()
End Function

Function print_Change_sys ()
Flip 0
CopyRect 0 ,0,GraphicsWidth () ,GraphicsHeight () ,0,0,BackBuffer () ,ImageBuffer (BackImg)
Flip 0
If PrintWriteY + FontHeight () > GraphicsHeight () Then
Cls
DrawBlock BackImg,0,GraphicsHeight () - PrintWriteY - FontHeight ()
PrintWriteY = GraphicsHeight () - FontHeight ()
Else
DrawBlock BackImg,0,0
End If
End Function

Function Input$ (A$ = \"\")
A$ = A$ + \" \"
print_Change_sys ()
If PrintWriteY + FontHeight () => GraphicsHeight () Then
CopyRect 0 ,0,GraphicsWidth () ,GraphicsHeight () ,0,0,BackBuffer () ,ImageBuffer (BackImg)
End If
Repeat
DrawBlock BackImg,0,0
zz = GetKeyNew ()
If zz > 31 And zz < 256 Then antwort$ = antwort$ + Chr (zz)
If zz = 8 Then
If Len (antwort$) > 0 Then
antwort$ = Left (antwort$, (Len (antwort$) - 1) )
End If
End If
If CursorStatus Then
Text PrintWriteX,PrintWriteY,a$ + antwort$ + Chr(95) ;Cursor
Else
Text PrintWriteX,PrintWriteY,a$ + antwort$
End If
If CursorZeit < MilliSecs () Then
CursorStatus = CursorStatus Xor 1
CursorZeit = MilliSecs () + 300;Cursor Blinkspeed
End If
If zz = 13 Then
DrawBlock BackImg,0,0
Text PrintWriteX,PrintWriteY,a$ + antwort$
If Textheight < FontHeight () Then Textheight = FontHeight ()
PrintWriteY = PrintWriteY + Textheight
Textheight = 0
PrintWriteX = 0
Flip 0
Return antwort$
End If
Flip 0
Forever
End Function

Function GetKeyNew ()
Local xx
If KeyHit (181)
xx = 47
ElseIf KeyHit (82) Then
XX = 48 ;0
ElseIf KeyHit (83) Then
XX = 44 ;,
ElseIf KeyHit (79) Then
XX = 49 ;1
ElseIf KeyHit (80) Then
XX = 50 ;2
ElseIf KeyHit (81) Then
XX = 51 ;3
ElseIf KeyHit (75) Then
XX = 52 ;4
ElseIf KeyHit (76) Then
XX = 53 ;5
ElseIf KeyHit (77) Then
XX = 54 ;6
ElseIf KeyHit (71) Then
XX = 55 ;7
ElseIf KeyHit (72) Then
XX = 56 ;8
ElseIf KeyHit (73) Then
XX = 57 ;9
End If
If xx = 0 Then XX = GetKey ()
FlushKeys ()
Return xx
End Function

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDo, Okt 06, 2005 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Wo kommt den der Fehler, ....du hast nur die Functionen hier gepostet!

Aus deinem obrigen Code könnte der Fehler hier liegen...
Text 200,363
da fehlt der Text der gedrückt werden soll!
[BB2D | BB3D | BB+]

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group