Hi,
ich müßte mit Zahlen, die über die Tastatur eingegeben werden rechnen, aber die Werte lassen sich nicht aus einer string - in eine Ziffernvariable ändern...
Wer weiß was ?
LG
Manni
String in Zahl umwandlen ?
String in Zahl umwandlen ?
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
Re: String in Zahl umwandlen ?
setnum (num ; [string])
sollte eigentlich gehen, sofern wirklich nur Zahlen im String sind, sonst gibts ne Fehlermeldung. Mir fiele aber nichts ein wie du absichern willst das der Spieler wirklich nur Zahlen eingibt. Wäre eine andere Eingabemethode nicht sinnvoller? Ziffernpad zB?
sollte eigentlich gehen, sofern wirklich nur Zahlen im String sind, sonst gibts ne Fehlermeldung. Mir fiele aber nichts ein wie du absichern willst das der Spieler wirklich nur Zahlen eingibt. Wäre eine andere Eingabemethode nicht sinnvoller? Ziffernpad zB?
Re: String in Zahl umwandlen ?
Dachte ich auch dran, aber das passt so nicht ins Konzept.
Hab die Zahlen eingegrenzt, die man eingeben kann.
Dann sieht es nun so aus :
entertext (Wertung: [textvariable];600;670;2;1)
playsound (fight_snd_mouse;30)
if_string (textvariable;[empty])
break()
if_num (textvariable;0)
setnum (Wertung;0)
if_string (textvariable;1)
setnum (Wertung;1)
if_string (textvariable;2)
setnum (Wertung;2)
if_string (textvariable;3)
setnum (Wertung;3)
if_string (textvariable;4)
setnum (Wertung;4)
if_string (textvariable;5)
setnum (Wertung;5)
if_string (textvariable;6)
setnum (Wertung;6)
if_string (textvariable;7)
setnum (Wertung;7)
if_string (textvariable;8)
setnum (Wertung;8)
if_string (textvariable;9)
setnum (Wertung;9)
if_string (object;window_player1)
{
setnum (Wertung1;+[Wertung])
textout (71;[Wertung1] : ;85;70;2;255;225;0)
savenum (Wertung1)
break()
}
if_string (object;window_player2)
{
setnum (Wertung2;+[Wertung])
textout (72;[Wertung2] : ;85;160;2;255;225;0)
savenum (Wertung2)
break()
}
usw....
Gruß
Manni
Hab die Zahlen eingegrenzt, die man eingeben kann.
Dann sieht es nun so aus :
entertext (Wertung: [textvariable];600;670;2;1)
playsound (fight_snd_mouse;30)
if_string (textvariable;[empty])
break()
if_num (textvariable;0)
setnum (Wertung;0)
if_string (textvariable;1)
setnum (Wertung;1)
if_string (textvariable;2)
setnum (Wertung;2)
if_string (textvariable;3)
setnum (Wertung;3)
if_string (textvariable;4)
setnum (Wertung;4)
if_string (textvariable;5)
setnum (Wertung;5)
if_string (textvariable;6)
setnum (Wertung;6)
if_string (textvariable;7)
setnum (Wertung;7)
if_string (textvariable;8)
setnum (Wertung;8)
if_string (textvariable;9)
setnum (Wertung;9)
if_string (object;window_player1)
{
setnum (Wertung1;+[Wertung])
textout (71;[Wertung1] : ;85;70;2;255;225;0)
savenum (Wertung1)
break()
}
if_string (object;window_player2)
{
setnum (Wertung2;+[Wertung])
textout (72;[Wertung2] : ;85;160;2;255;225;0)
savenum (Wertung2)
break()
}
usw....
Gruß
Manni
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
Re: String in Zahl umwandlen ?
bei der Null steht if_num anstatt if_string. Geht das ansonsten so? sollte eigentlich
Re: String in Zahl umwandlen ?
Ich habe ein ähnliches Problem:
entertext(feldgrouptext;500;500;1;100;255;0;0)
setnum(feldgrouptemp;[feldgrouptext]-1)
if_num(feldgrouptemp;<0)
{
offspeech(12;12;Ich sollte eine positive Zahl eingeben!)
break()
}
if_num(feldgrouptemp;>[feld_anzahl]/17-1)
{
offspeech(12;12;So viele Felder habe ich noch nicht!)
break()
}
Das funktioniert wunderbar bis wenn jemand halt einen Buchstaben mit eingibt, dann kommt ein entsprechender Fehler wie von Zimond angekündigt.
Wäre cool wenn man also entweder beim entertext eine Regex mit angegeben könnte + Fehlermeldung oder das er halt Zeichen löscht die der Regex nicht entsprechen oder halt if_stringregex oder beim if_string als dritte Übergabe regex mitgeben könnte, wäre eine geniale Funktion, dann könnte man auch mal in Strings prüfen ob die bestimmte Werte über eine Regex matchen.
Ansonsten muss ich mich bei Gelegenheit mal ran setzen und ein Numpad Ingame nachbauen.
entertext(feldgrouptext;500;500;1;100;255;0;0)
setnum(feldgrouptemp;[feldgrouptext]-1)
if_num(feldgrouptemp;<0)
{
offspeech(12;12;Ich sollte eine positive Zahl eingeben!)
break()
}
if_num(feldgrouptemp;>[feld_anzahl]/17-1)
{
offspeech(12;12;So viele Felder habe ich noch nicht!)
break()
}
Das funktioniert wunderbar bis wenn jemand halt einen Buchstaben mit eingibt, dann kommt ein entsprechender Fehler wie von Zimond angekündigt.
Wäre cool wenn man also entweder beim entertext eine Regex mit angegeben könnte + Fehlermeldung oder das er halt Zeichen löscht die der Regex nicht entsprechen oder halt if_stringregex oder beim if_string als dritte Übergabe regex mitgeben könnte, wäre eine geniale Funktion, dann könnte man auch mal in Strings prüfen ob die bestimmte Werte über eine Regex matchen.
Ansonsten muss ich mich bei Gelegenheit mal ran setzen und ein Numpad Ingame nachbauen.
Re: String in Zahl umwandlen ?
Etwas aufwendiger aber eine Alternative wäre es das Entertext nachzubauen mit einer Funktion.
Im Prinzip brauchst du erstmal einen Modus den du setzt. Also etwas das festlegt jetzt soll eine Zahl eingegeben werden und andere Sachen wie Buttons sollen solange nicht funktionieren.
Du setzt erstmal ein Textout an die Stelle wo ein Entertext auch gewesen wäre und setzt im Textout einen noch leeren String ein zB "eingabe"
Dann startest du eine fortlaufende Funktion.
In dieser wird dann nach den Zahlentasten abgefragt :
if_keydown (1)
setstring (eingabe ; [eingabe]1)
if_keydown (2)
setstring (eingabe ; [eingabe]2)
usw
if_keydown (enter)
Was nach der Eingabe passieren soll und Funktion beenden. Auch beachten ob die Eingabe leer ist.
if_keydown (backspace)
setstring (eingabe ; [empty])
Einzelne Zeichen löschen ginge hier nicht leider.
Im Prinzip brauchst du erstmal einen Modus den du setzt. Also etwas das festlegt jetzt soll eine Zahl eingegeben werden und andere Sachen wie Buttons sollen solange nicht funktionieren.
Du setzt erstmal ein Textout an die Stelle wo ein Entertext auch gewesen wäre und setzt im Textout einen noch leeren String ein zB "eingabe"
Dann startest du eine fortlaufende Funktion.
In dieser wird dann nach den Zahlentasten abgefragt :
if_keydown (1)
setstring (eingabe ; [eingabe]1)
if_keydown (2)
setstring (eingabe ; [eingabe]2)
usw
if_keydown (enter)
Was nach der Eingabe passieren soll und Funktion beenden. Auch beachten ob die Eingabe leer ist.
if_keydown (backspace)
setstring (eingabe ; [empty])
Einzelne Zeichen löschen ginge hier nicht leider.
Re: String in Zahl umwandlen ?
Danke für den Tipp Zimond. Mal schauen wenn mich die Muse packt werden ich eins von beiden mal bauen.