Input() Position

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

***JONATHAN***

Betreff: Input() Position

BeitragDi, Jul 03, 2007 9:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
Ich hab mal eine Frage zu der Input() Funktion.
Ich mach grade so ein Text-Spiel mit der normalen Konsole, das man durch Eingabe von Zahlen steuern kann.
Dabei will ich, dass die Input Box, in die man dann die Zahlen eingibt, immer an der selben Stelle liegt.
Ich stell mir das irgendwie so vor:

Eingabe$=Input$,0,10("Bitte gib hier die Nummer ein: ")

0 und 10 sollten dann die Koordinaten sein...

Gibt es irgendsowas??? Ich hoffe auf eure Hilfe Laughing

Abrexxes

BeitragDi, Jul 03, 2007 9:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Function GetInput$(x,y,sPrompt$,sFilter$,sDefault$,iMaxLength)
   ; x = x location of the prompt, if any, or text input
   ; y = y location ...
   ; sPrompt$ is the prompt, such as "Please enter your name:"
   ; sFilter$ is very useful. It ONLY allows the user to enter certain characters. For example, "ync" would only allow "y","n" or "c"
   ;          There are also a few special 'codes':
   ;            "/all" or "" means allow anything to be entered
   ;             "/123" allows only 0 through 9 to be entered
   ;            "/abc" allows only letters of the alphabet to be entered
   
   FlushKeys
   iFlashInterval = 300      ; The blinking cursor speed
   sTotal$ = sDefault$
   iNumDigits = Len(sDefault$)
   
   If Lower$(sFilter$) = "/123" Then sFilter$ = "0123456789"               ; All the numbers
   If Lower$(sFilter$) = "/abc" Then sFilter$ = "abcdefghijklmnopqrstuvwxyz"   ; All the letters
   
   iTotalWidth = StringWidth(sPrompt$) + (iMaxLength * FontWidth())
   iTotalHeight = FontHeight()
   
   hTextBuffer = CreateImage(iTotalWidth,iTotalHeight)   ; Where the text will be drawn before blitting to the backbuffer()
   hCleanCopy = CreateImage(iTotalWidth,iTotalHeight)   ; Will hold a clean copy of the backbuffer (not the whole thing)
   MaskImage hTextBuffer,255,0,255                  ; Make the text background transparent so we can show text with BG showing
   SetBuffer ImageBuffer(hTextBuffer)               ; We're going to draw to the text buffer
   ClsColor 255,0,255                           ; Temporarily make the cls color the transparent color (magenta)
   Cls                                       ; Now clear to magenta
   ; Foreground (text) will be drawn in the current color
   
   CopyRect x,y,iTotalWidth,iTotalHeight,0,0,BackBuffer(),ImageBuffer(hCleanCopy)   ; Save a clean copy of the back buffer where the
                                                               ;    text is going to be

   SetBuffer BackBuffer()
   Repeat
      ; Blinking cursor code *******************************************************************************************************
      iCurrentTime = MilliSecs()
      If bFlash = True Then
         If (iCurrentTime - iOldFlashTime) >= iFlashInterval Then
            bFlash = False
            iOldFlashTime = MilliSecs()
         EndIf
      Else
         If (iCurrentTime - iOldFlashTime) >= iFlashInterval Then
            bFlash = True
            iOldFlashTime = MilliSecs()
         EndIf
      EndIf
      
      ; Input starts here **********************************************************************************************************
      iKeyPressed = GetKey()
      If iKeyPressed = 13 Then
         sKeyPressed$ = ""
      Else
         sKeyPressed$ = Chr$(iKeyPressed)
      EndIf
      
      ; If the key passes, add it to the total *************************************************************************************
      If iKeyPressed Then
         If (sFilter$ = "/all") Or (sFilter$ = "") Or (Instr(sFilter$,sKeyPressed$) > 0) Then ; "all" does not filter any keys out
            If Len(sTotal$) < iMaxLength Then
               sTotal$ = sTotal$ + sKeyPressed$                        ; Add it to the total string if it passes
               iNumDigits = iNumDigits + 1
            EndIf
         EndIf
      EndIf
      
      ; If backspace was pressed, delete the last character from the total and update the number of digits *************************
      If KeyDown(14) And iNumDigits > 0 Then
         sTotal$ = Left$(sTotal$,iNumDigits - 1)
         iNumDigits = iNumDigits - 1
         Delay 50
      EndIf
      
      ; Draw the clean background and then the text on the backbuffer() ************************************************************
      DrawBlock hCleanCopy,x,y

      ; Draw the cursor if enough time has passed (change iFlashInterval for different speeds) *************************************
      If Len(sTotal$) = iMaxLength Then
         rx = StringWidth(sPrompt$ + sTotal$) - StringWidth(Right$(sTotal$,1))
         rw = StringWidth(Right$(sTotal$,1))
      Else
         rx = StringWidth(sPrompt$) + (Len(sTotal$) * FontWidth())
         rw = FontWidth()
      EndIf
 
      If bFlash = True Then
         Text x,y,sPrompt$ + sTotal$
         Rect x + rx,y,rw,FontHeight(),True
      Else
         Text x,y,sPrompt$ + sTotal$
      EndIf

      Flip
   Until iKeyPressed = 13 ; This is the 'return/enter' key
   
   ClsColor 0,0,0   ; Reset back to black
   Return sTotal$
End Function



Gut zum rumtesten. Wink

cu
 

Beatenvoy

BeitragDi, Jul 03, 2007 10:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Das meinst du!


Code: [AUSKLAPPEN]
Function PrintX(Text$,x,y)
 Locate x,y
 Print Text$
End Function

hectic

Sieger des IS Talentwettbewerb 2006

Betreff: Re: Input() Position

BeitragDi, Jul 03, 2007 10:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Worauf Abrexxes wohl hindeuten wollte ist,

JONATHAN hat Folgendes geschrieben:
...Ich mach grade so ein Text-Spiel mit der normalen Konsole, das man durch Eingabe von Zahlen steuern kann...

dass Input und Locate eher nicht zu benutzen sind, weil der Code an der Stelle stehen bleibt und somit nichts anderes machen kann. Programmiert man das ganz aber mit GetKey, so kann man auch beliebig positionieren und im Hintergrund Animationen oder ähnliches machen. Zum ''lernen'' finde ich allerdings das Codebeispiel ein bisschen zu kompliziert. Wer er es zunächst ganz einfach haben möchte...

Code: [AUSKLAPPEN]
Graphics 400,200,0,2
SetBuffer BackBuffer()

a%=0
b$=""


While Not KeyHit(1)
 anim=anim+1:Text 20,170,"Der Beweis, dass der Code weiter läuft "+anim

 a=GetKey()

 If a>0
  If a=8
   If Len(b)>0
    b=Left(b,Len(b)-1)
   End If
  Else
   b=b+Chr$(a)
  End If
 End If

 Text 20,20,"schreiben: "+b+"|"

 Flip
 Cls
Wend
End
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

***JONATHAN***

BeitragDi, Jul 03, 2007 10:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, es war mir ein bisschen zu komliziert, jetzt schau ich mir erst mal deins an, aber schonmal vorab ein dickes
thx Very Happy Very Happy Very Happy

Puccini

BeitragDi, Jul 03, 2007 10:48
Antworten mit Zitat
Benutzer-Profile anzeigen
hier mal meine funktion:

da kannste auch einstellen das schon text im Input drinsteht Wink

das viereck rundrum kannste weglassen! hab ich nur so mal zum rumspielen für mich gemacht!

Code: [AUSKLAPPEN]

Function GetInput$(x,y,prompt$,inputtext$="")

zeichenanzahl=0
FlushKeys()

Repeat
width=StringWidth(prompt$+inputtext$)

; Input **********************************************************************************************************
Color 200,200,200
Rect x-10,y-10,width+21,30,1
Color 150,150,150
Rect x-7,y-7,width+15,24,1
Color 255,255,255
iKeyPressed = GetKey()
   If  iKeyPressed = 13 Then
      sKeyPressed$ = ""
   Else
      sKeyPressed$ = Chr$(iKeyPressed)
   EndIf
If  iKeyPressed Then
inputtext$ = inputtext$ + sKeyPressed$
zeichenanzahl= zeichenanzahl+ 1
EndIf
If KeyDown(14) And zeichenanzahl> 0 Then          ;Backspace
inputtext$ = Left$(inputtext$,zeichenanzahl- 1)
zeichenanzahl= zeichenanzahl- 1
Delay 50
EndIf

Text x,y,prompt$+inputtext$
Flip


Until iKeyPressed = 13 ; Enter
FlushKeys()
Return inputtext$


End Function
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39
 

***JONATHAN***

BeitragDi, Jul 03, 2007 11:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Die sind ja alle schön und gut, aber hat keiner eine Funktion, bei der man einfach nur die Koordinaten eingeben kann und die dann das Eingegebene noch speichert.

Die stell ich mir ungefähr so vor:

Eingabe$(10,10,"Dein Name: ",Speichern$)

Damit man dann später z.B. schreiben kann:

Print "Hallo " + Speichern$

Puccini

BeitragDi, Jul 03, 2007 11:27
Antworten mit Zitat
Benutzer-Profile anzeigen
das macht doch meine funktion!


Code: [AUSKLAPPEN]
speichern$=GetInput(10,20,"Bitte gibt deinen namen ein: ")


oder reicht dir das nich??
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39

Abrexxes

BeitragDi, Jul 03, 2007 11:29
Antworten mit Zitat
Benutzer-Profile anzeigen
***JONATHAN*** hat Folgendes geschrieben:
Die sind ja alle schön und gut, aber hat keiner eine Funktion, bei der man einfach nur die Koordinaten eingeben kann und die dann das Eingegebene noch speichert.

Die stell ich mir ungefähr so vor:

Eingabe$(10,10,"Dein Name: ",Speichern$)

Damit man dann später z.B. schreiben kann:

Print "Hallo " + Speichern$


Das macht meine oben ja, du musst ja nicht den Code studieren, kopiere die FunKtion in deinen Code und rufe sie auf.

Code: [AUSKLAPPEN]

Meintext$= GetInput$(0,10,"Eingabe","/all","Nichts",28)
 

***JONATHAN***

BeitragDi, Jul 03, 2007 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, ich depp. Ja klar, ich hab nur einen dummen Fehler gemacht! Rolling Eyes

Vielen Dank an alle für eure Hilfe!!! Razz
 

***JONATHAN***

BeitragDi, Jul 03, 2007 11:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine Frage hätte ich noch:

Ich hab jetzt den Code von Puccini genommen. Aber dann flimmert der Bildschirm total. Ich hab den Code ein bisschen verändert, weil ich den Kasten nicht haben wollte, liegt es vielleicht daran???
So sieht der Code im Moment aus:

Function GetInput$(x,y,prompt$,inputtext$="")

zeichenanzahl=0
FlushKeys()

Repeat
width=StringWidth(prompt$+inputtext$)

; Input **********************************************************************************************************

iKeyPressed = GetKey()
If iKeyPressed = 13 Then
sKeyPressed$ = ""
Else
sKeyPressed$ = Chr$(iKeyPressed)
EndIf
If iKeyPressed Then
inputtext$ = inputtext$ + sKeyPressed$
zeichenanzahl= zeichenanzahl+ 1
EndIf
If KeyDown(14) And zeichenanzahl> 0 Then ;Backspace
inputtext$ = Left$(inputtext$,zeichenanzahl- 1)
zeichenanzahl= zeichenanzahl- 1

EndIf

Text x,y,prompt$+inputtext$
Flip


Until iKeyPressed = 13 ; Enter
FlushKeys()
Return inputtext$


End Function

Puccini

BeitragDi, Jul 03, 2007 11:57
Antworten mit Zitat
Benutzer-Profile anzeigen
??
sorry, ich habs noch nich anders getestet, aber das is erstmal mysteriös ^^

was hast du für einen graphicmod?
und setbuffer backbuffer()??
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39
 

***JONATHAN***

BeitragDi, Jul 03, 2007 12:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Graphics 1280,1024
SetBuffer BackBuffer()


Wenn ich dann aber mal Cls + Flip und dann nochmal Flip,
dann hört es auch, ich glaub da liegt irgendwo der Fehler...
 

***JONATHAN***

BeitragDi, Jul 03, 2007 12:14
Antworten mit Zitat
Benutzer-Profile anzeigen
hmmm....ich hab als Hintergrund ein großes graues Rechteck. Und das wird anscheinend immer wiedergeladen und dann gelöscht. Deshalb flimmert es. Es liegt also nicht an GetInput$

Trotzdem frag ich mich, wie ich verhindern kann, dass es flimmert...

Abrexxes

BeitragDi, Jul 03, 2007 12:32
Antworten mit Zitat
Benutzer-Profile anzeigen
***JONATHAN*** hat Folgendes geschrieben:
Und das wird anscheinend immer wiedergeladen und dann gelöscht. Deshalb flimmert es.


Kaum, es sei denn du sitzt an einem Pentium 60. Zeig doch mal den ganzen Code.

cu

Goodjee

BeitragDi, Jul 03, 2007 12:34
Antworten mit Zitat
Benutzer-Profile anzeigen
2 flips sind doof...also lass das in der funktion weg
 

***JONATHAN***

BeitragDi, Jul 03, 2007 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Abrexxes hat Folgendes geschrieben:
Zeig doch mal den ganzen Code.


Okay, wenn er reinpasst Laughing Ist schon ganz schön viel... Wink

Code: [AUSKLAPPEN]
AppTitle "Rollenspiel"

Graphics 1280,1024
SetBuffer BackBuffer()


Geld=100
XP=0


Optionen=1
WHaendler=1
THaendler=1
Markt=1





Font1=LoadFont("Arial",20,1,0,0)

lKasten=LoadImage("leerer Kasten.bmp")


langschwert=LoadImage(".bmp")
bogen=LoadImage(".bmp")
knüppel=LoadImage("knüppel.bmp")
dolch=LoadImage(".bmp")
stab=LoadImage(".bmp")

pferd=LoadImage(".bmp")
ross=LoadImage(".bmp")
schimmel=LoadImage(".bmp")
esel=LoadImage(".bmp")

pgb=LoadImage(".bmp")
agb=LoadImage(".bmp")
flb=LoadImage(".bmp")


;Color 127,127,127           Wenn ich diese Rechteck da lassen würde, würde es extrem flimmern...
;Rect 0,0,1055,1024




Goto Hauptprogramm





.clean


Cls

If Whaendler=1 DrawImage lKasten,1055,50
If wd=2 DrawImage Dolch,1055,50
If wb=2 DrawImage Bogen,1055,50
If ws=2 DrawImage Stab,1055,50
If ws=2 DrawImage Schwert,1055,50
If wk=2 DrawImage Knüppel,1055,50



If Thaendler=1 DrawImage lKasten,1055,300
If tp=1 DrawImage Pferd,1055,300
If tr=1 DrawImage Ross,1055,300
If ts=1 DrawImage Schimmel,1055,300
If te=1 DrawImage Esel,1055,300


If Markt=1 DrawImage lKasten,1055,550
If bp=1 DrawImage prall,1055,550
If ba=1 DrawImage angemessen,1055,550
If bf=1 DrawImage fast,1055,550







Color 255,0,0
SetFont Font1

Text 1120,50, "Deine Waffe:"

Text 1128,300, "Dein Tier:"

Text 1110,550, "Dein Proviant:"

Text 1067,825, "Deine Erfahrungspunkte:"

Text 1160,855, XP


Rect 0,20,1055,8

Flip
Cls
Flip



Return







.Hauptprogramm

;DrawImage lKasten,1055,50            Das hab ich mal weggemacht, weil du die Bilde ja nicht hast, das wäre aber eigentlich
;DrawImage lKasten,1055,300           ein leere Kasten
;DrawImage lKasten,1055,550





Color 255,0,0
SetFont Font1

Text 1120,50, "Deine Waffe:"

Text 1128,300, "Dein Tier:"

Text 1110,550, "Dein Proviant:"

Text 1067,825, "Deine Erfahrungspunkte:"

Text 1160,855, XP


Rect 0,20,1055,8



Text 0,30,"ROLLENSPIEL"

Text 0,45,""

Text 0,60,"Herzlich Willkommen bei dem ULTIMATIVEN ROLLENSPIEL :-)"

Text 0,75,""

Text 0,90,""

Text 0,105,"Das hier ist das 'Hauptmenü'. Hierüber kannst du alle wichtigen Funktionen auswählen."


Text 0,120,""

Text 0,135,"1 - Spiel starten"
Text 0,150,"2 - Einstellungen"
Text 0,165,"3 - Anleitung"
Text 0,180,"4 - Beenden"

Text 0,195,""




.Hfrage


Text 0,210,""

HFrage = GetInput$(0,0,"Was willst du machen? (Jeweilige Zahl eingeben:) ")





If HFrage= 1 Then Gosub clean Goto anfang
If HFrage= 2 Then Gosub clean Goto optionen
If HFrage= 3 Then Gosub clean Goto anleitung
If HFrage= 4 Then Gosub clean Goto ende

If HFrage <> 1 Or 2 Or 3 Or 4 Print"Bitte 1,2,3 oder 4 eingeben!" Goto HFrage





.Hauptmenü



Text 0,30,""

Text 0,45,"1 - Spiel starten"
Text 0,60,"2 - Einstellungen"
Text 0,75,"3 - Anleitung"
Text 0,90,"4 - Beenden"

Text 0,105,""


.frage

Text 0,120,""



Frage = GetInput$(0,0,"Was willst du machen? (Jeweilige Zahl eingeben:) ")

If Frage= 1 Then Gosub clean Goto anfang
If Frage= 2 Then Gosub clean Goto optionen
If Frage= 3 Then Gosub clean Goto anleitung
If Frage= 4 Then Gosub clean Goto ende

If Frage <> 1 Or 2 Or 3 Or 4 Print"Bitte 1,2,3 oder 4 eingeben!" Goto Frage

Flip






.Optionen



Text 0,30,"EINSTELLUNGEN:"

Flip

Name$=GetInput$(0,0,"Dein Name: ")

Gosub clean
Flip

Alter2=GetInput$(0,0,"Dein Alter: ")

Gosub clean
Flip


Text 0,45,""

Optionen=2


.frage0
Text 0,60,""

Gosub clean


Frage0=GetInput$(0,0,"1 - Zurück ins Hauptmenü, 2 - Spiel beenden: ")



If Frage0=1 Then Gosub clean Goto hauptmenü
If Frage0=2 Then Gosub clean Goto ende

If Frage0 <> 1 Or 2 Text 0,75,"Bitte 1 oder 2 eingeben!" Goto Frage0

Flip



.anleitung





Text 0,30,""

Text 0,45,"ANLEITUNG:"

Text 0,60,""

Text 0,75,"Dieses Rollenspiel steuerst du durch Eingabe von Zahlen."

Text 0,90,""

Text 0,105,"Wenn du während dem Spiel deinen Geldstand einsehen willst, gib 9 ein!"

Text 0,120,""

Text 0,135,"Wenn es manchmal nicht von selbst weiter geht, muss du ENTER drücken!"

Flip

WaitKey

.frage1
Text 0,150,""
Frage1=GetInput$(0,0,"1 - Zurück ins Hauptmenü, 2 - Spiel beenden: ")

If Frage1=1 Then Gosub clean Goto hauptmenü
If Frage1=2 Then Gosub clean Goto ende


If Frage1 <> 1 Or 2 Text 0,150,"Bitte 1 oder 2 eingeben!" Goto Frage1












.anfang

Flip


;Optionen?


If Optionen=1 Gosub clean Goto optionen1
If Optionen=2 Gosub clean Goto optionen2

.optionen1

Flip

Text 0,30,"Bitte erst die Einstellungen eingeben!"

Text 0,45,""

Text 0,60,"1 - Spiel starten"
Text 0,75,"2 - Einstellungen"
Text 0,90,"3 - Anleitung"
Text 0,105,"4 - Beenden"

Text 0,120,""

frage2=2

.frage2
Text 0,135,""
Frage2 = GetInput$(0,0,"")

If Frage2= 1 Then Gosub clean Goto anfang
If Frage2= 2 Then Gosub clean Goto optionen
If Frage2= 3 Then Gosub clean Goto anleitung
If Frage2= 4 Then Gosub clean Goto ende

If Frage2 <> 1 Or 2 Or 3 Or 4 Text 0,135,"Bitte 1,2,3 oder 4 eingeben!" Goto Frage2






;ANFANG
.optionen2

Gosub clean

Text 0,30,"KAPITEL 1 - DER AUFSTIEG DES BÖSEN"

Flip



WaitKey

Gosub clean

Text 0,45,"Dein Name ist " + Name$ + ", du kommst aus Catan, einem kleinem Dorf, das tief in einem großem Wald liegt."
Text 0,60,"Du bist der Sohn eines reichen Kaufmanns und willst nun, du bist schon " + Alter2 + " Jahre, in die Weiten der"
Text 0,75,"großen Welt reisen, um dort dein Abenteuer zu erleben."

Flip

WaitKey

Gosub clean

Text 0,90,""

Text 0,105,"Doch bevor es soweit ist, muss du noch einige Sachen erledigen!"

Text 0,120,""

Text 0,135,"1. Du brauchst umbedingt eine Waffe, um dich gegen die wilden Monster dort draußen zu verteidigen."
Text 0,150,"2. Du musst dir ein Transporttier zulegen, schließlich willst du den ganzen Weg nicht laufen."
Text 0,165,"3. Brauchst du noch Verpflegung für deine Reise."



.frage3

Frage3=GetInput$(0,0,"Q-ERLEDIGUNGEN: Was willst du als erstes erledigen? ")



If Frage3=1 Then Goto Waffenhaendler
If Frage3=2 Then Goto Tierhaendler
If Frage3=3 Then Goto Markt
If Frage3=9 Then Gosub Geld


If Frage3 <> 1 Or 2 Or 3 Or 9 Text 0,180,"Q-ERLEDIGUNGEN: Bitte 1,2,3 oder 9 eingeben!" Goto Frage3

Flip


;WAFFENHÄNDLER
.Waffenhaendler


If Whaendler=1 Goto WH1
If WHaendler=2 Goto WH2


.WH1

Gosub clean

Text 0,30,"WAFFENHÄNDLER"
Text 0,45,""
Text 0,60,"Der Waffenhändler hat folgende Waffen im Angebot:"

Text 0,75,"1 - Ein scharfes Langschwert, 35 Gold"
Text 0,90,"2 - Einen vergifteten Dolch, 20 Gold"
Text 0,105,"3 - Einen schweren Knüppel, 15 Gold"
Text 0,120,"4 - Einen langen Stab, 25 Gold"
Text 0,135,"5 - Einen edlen Bogen, 35 Gold"





.Frage5
Frage5=GetInput$(0,0,"Q-WAFFENKAUF: Welche Waffe nimmst du? ")
 


If Frage5=1 Then Goto Langschwert
If Frage5=2 Then Goto Dolch
If Frage5=3 Then Goto Knueppel
If Frage5=4 Then Goto Stab
If Frage5=5 Then Goto Bogen
If Frage5=9 Then Gosub Geld

If Frage5<> 1 Or 2 Or 3 Or 4 Or 5 Or 9 Text 0,150,"Q-WAFFENKAUF: Bitte 1,2,3,4,5 oder 9 eingeben!" Goto Frage5

Flip


.Langschwert

Waffe$="Langschwert"

XP=XP+50

WHaendler=2

Geld=Geld - 35

ws=2

Gosub clean

Text 0,30,"Du hast dir ein Langschwert gekauft"

Flip

WaitKey

Goto kaufen



.Dolch

wd=2

Waffe$="Dolch"

XP=XP+50

WHaendler=2

Geld=Geld - 20

Gosub clean

Text 0,30,"Du hast dir einen Dolch gekauft"

Flip

WaitKey

Goto kaufen



.Knueppel

wk=2

Waffe$="Knueppel"

XP=XP+50

WHaendler=2

Geld=Geld - 15

Gosub clean

DrawImage knüppel,1055,50

Text 0,30,"Du hast dir einen Knüppel gekauft"

Flip

WaitKey

Goto kaufen



.Stab

ws=2

Waffe$="Stab"

XP=XP+50

WHaendler=2

Geld=Geld - 25

Gosub clean

Text 0,30,"Du hast dir einen Stab gekauft"

Flip

WaitKey

Goto kaufen



.Bogen

wb=2

Waffe$="Bogen"

XP=XP+50

WHaendler=2

Geld=Geld - 35

Gosub clean

Text 0,30,"Du hast dir einen Bogen gekauft"

Flip

WaitKey

Goto kaufen



.WH2

Gosub clean

Text 0,30,"Du hast dir doch schon ein/en " + Waffe$ + " gekauft!

Flip

WaitKey

Goto kaufen






;TIERHÄNDLER
.Tierhaendler

If THaendler=1 Goto T1
If Thaendler=2 Goto T2

.T1

Gosub clean

Text 0,30,"TIERHÄNDLER"
Text 0,45,""
Text 0,60,"Der Tierhändler hat folgende Tiere im Angebot:"

Text 0,75,"1 - Ein edles Pferd, 45 Gold"
Text 0,90,"2 - Ein normales Ross, 35 Gold"
Text 0,105,"3 - Einen alten Schimmel, 20 Gold"
Text 0,120,"4 - Einen dicken Esel, 10 Gold"


.Frage6
Frage6=GetInput$(0,0,"Q-TIERKAUF: Welches Tier nimmst du? ")
 



If Frage6=1 Then Goto Pferd
If Frage6=2 Then Goto Ross
If Frage6=3 Then Goto Schimmel
If Frage6=4 Then Goto Esel
If Frage6=9 Then Gosub Geld

If Frage6<> 1 Or 2 Or 3 Or 4 Or 9 Text 0,135,"Q-TIERKAUF: Bitte 1,2,3,4 oder 9 eingeben!" Goto Frage6

Flip



.Pferd

tp=2

Tier$="edles Pferd"

XP=XP+50

Thaendler=2

Geld=Geld - 45

Gosub clean

Text 0,30,"Du hast dir ein edles Pferd gekauft!"

Flip

WaitKey

Goto kaufen



.Ross

tr=2

XP=XP+50

Thaendler=2

Geld=Geld - 35

Tier$="normales Ross"

Gosub clean

Text 0,30,"Du hast dir ein normales Ross gekauft!"

Flip

WaitKey

Goto kaufen


.Schimmel

ts=2

Tier$="edles Pferd"

XP=XP+50

Thaendler=2

Geld=Geld - 20

Gosub clean

Text 0,30,"Du hast dir ein edles Pferd gekauft!"

Flip

WaitKey

Goto kaufen



.Esel

te=2

Tier$="alten Schimmel"

XP=XP+50

Thaendler=2

Geld=Geld - 10

Gosub clean

Text 0,30,"Du hast dir einen alten Schimmel gekauft!"

Flip

WaitKey

Goto kaufen



.T2

Gosub clean

Text 0,30,"Du hast dir schon ein/en " + Tier$ + "gekauft!"

Flip

WaitKey

Goto kaufen





;MARKT
.Markt

If Markt=1 Goto M1
If Markt=2 Goto M2


.M1

Gosub clean

Text 0,30,"MARKT"

Text 0,45,"Der Marktverkaufer stellt dir folgende Fresspackete zur Wahl:"

Text 0,60,"1 - Einen prall gefüllten Beutel, 15 Gold"
Text 0,75,"2 - Einen angemessen gefüllten Beutel, 10 Gold"
Text 0,90,"3 - Einen fast leeren Beutel, 5 Gold"

.Frage7
Frage7=GetInput$(0,0,"Q-PROVIANTKAUF: Welchen Beutel nimmst du? ")

If Frage7=1 Then Goto pgbeutel
If Frage7=2 Then Goto agbeutel
If Frage7=3 Then Goto flbeutel
If Frage7=9 Then Gosub Geld

If Frage7<> 1 Or 2 Or 3 Or 4 Or 9 Text 0,105,"Q-PROVIANTKAUF: Bitte 1,2,3 oder 9 eingeben!" Goto Frage7

Flip



.pgbeutel

bp=2

XP=XP+50

Essen$="prall gefüllten Beutel"

Geld=Geld - 15

Markt=2

Gosub clean

Text 0,30,"Du hast dir einen prall gefüllten Beutel gekauft!"

Flip

WaitKey

Goto kaufen



.agbeutel

ba=2

XP=XP+50

Essen$="angemessen gefüllten Beutel"

Geld=Geld - 10

Markt=2

Gosub clean

Text 0,30,"Du hast dir einen angemessen gefüllten Beutel gekauft!"

Flip

WaitKey

Goto kaufen



.flbeutel

bf=2

XP=XP+50

Essen$="fast leeren Beutel"

Geld=Geld - 5

Markt=2

Gosub clean

Text 0,30,"Du hast dir einen fast leeren Beutel gekauft!"

Flip

WaitKey

Goto kaufen





.M2

Gosub clean

Text 0,30,"Du hast dir bereits " + Essen$ + " gekauft!"

Flip

WaitKey

Goto kaufen





;GELD
.Geld

Gosub clean

Print"In deinem Geldbeutel befinden sich " + Geld + " Goldstücke"

Flip

WaitKey

Return






;KAUFEN
.kaufen

If Thaendler=2 And Whaendler=2 And Markt=2 Goto anfang2


Gosub clean

Text 0,30,"Q-ERLEDIGUNGEN: Wohin willst du jetzt gehen?"

Text 0,45,"1 - Waffenhändler"
Text 0,60,"2 - Tierhändeler"
Text 0,75,"3 - Marktplatz"


.frage4

Frage4=GetInput$(0,0,"")

If Frage4=1 Then Goto Waffenhaendler
If Frage4=2 Then Goto Tierhaendler
If Frage4=3 Then Goto Markt
If Frage4=9 Then Gosub Geld

If Frage4 <> 1 Or 2 Or 3 Or 9 Text 0,90,"Q-ERLEDIGUNGEN: Bitte 1,2,3 oder 9 eingeben!" Goto Frage4

Flip



.anfang2

Gosub clean

Text 0,30,"Puh, endlich alles erledigt..."
Text 0,60,"Hier ist nochmal deine komplette Ausrüstung:"

Flip

WaitKey

Gosub clean



Text 0,30,"Deine Waffe:"
Text 0,45,"Ein/en " + Waffe$

Text 0,60,""

Text 0,75,"Dein Tier:"
Text 0,90,"Ein/en " + Tier$

Text 0,105,""

Text 0,120,"Deine Proviant:"
Text 0,135,"Ein " + Essen$

Text 0,150,""

Text 0,165,"Deine Geld:"
Text 0,180,Geld + " Gold"

Flip

WaitKey

Gosub clean

Text 0,30,"Um weiter zu spielen kaufe dir die Vollversion diese grandionen Rollenspiels!"

Flip

WaitKey

Gosub clean

Text 0,30,"Es kostet nur 50 Euro!!!"

Flip

WaitKey

Gosub clean

Text 0,30,"Was? Du willst nicht?!?"

Flip

WaitKey

Gosub clean

Text 0,30,"Na dann eben nicht!"

Flip

WaitKey

Goto anfang3
















.anfang3



End









.ende


End






;das hier ist die Fuktion, die ich aus dem Forum bekommen habe...

Function GetInput$(x,y,prompt$,inputtext$="")

zeichenanzahl=0
FlushKeys()

Repeat
width=StringWidth(prompt$+inputtext$)

; Input **********************************************************************************************************

iKeyPressed = GetKey()
If iKeyPressed = 13 Then
sKeyPressed$ = ""
Else
sKeyPressed$ = Chr$(iKeyPressed)
EndIf
If iKeyPressed Then
inputtext$ = inputtext$ + sKeyPressed$
zeichenanzahl= zeichenanzahl+ 1
EndIf
If KeyDown(14) And zeichenanzahl> 0 Then ;Backspace
inputtext$ = Left$(inputtext$,zeichenanzahl- 1)
zeichenanzahl= zeichenanzahl- 1

EndIf

Text x,y,prompt$+inputtext$
Flip


Until iKeyPressed = 13 ; Enter
FlushKeys()
Return inputtext$


End Function


So, das war's schon, du hast es ja so gewollt Laughing .
Ich hoffe du kannst mir jetzt auch sagen, woran das flimmern liegt...

/EDIT: So vielleicht?!? Ja jetzt ist es übersichtlicher Very Happy . Und kann mir vielleicht auch jemand bei meinem Problem (siehe oben) helfen???
  • Zuletzt bearbeitet von ***JONATHAN*** am Di, Jul 03, 2007 17:22, insgesamt 2-mal bearbeitet

Puccini

BeitragDi, Jul 03, 2007 17:07
Antworten mit Zitat
Benutzer-Profile anzeigen
es gibt hier ne nette funktion zum Code-Posten!

schau mal unter der smilieleiste nach, da steht "Code" das klickst du einmal an, fügst danch deinen code ein und clickst es nochmal an!

dann sieht man das besser als wenn man jetzt deinen post durchgehen muss, auserdem wird das dann net so ewig lang!
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39

BladeRunner

Moderator

BeitragDi, Jul 03, 2007 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
1. CodeTag nutzen
2. Keine Doppelposts.
3. Goto ist fürn Hintern.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

***JONATHAN***

BeitragDi, Jul 03, 2007 17:24
Antworten mit Zitat
Benutzer-Profile anzeigen
1. ok
2. ok
3. Ich find die irgendwie cool, auch wenn sie unübersichtlich sind^^

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group