Nameneingabe

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Nameneingabe

    Aaalso, ich habe mir nen script zur Namenseingabe gebaut, das auch soweit einwandfrei läuft... der code:

    Quellcode

    1. Information about object: Namenswahl
    2. Sprite: <no sprite>
    3. Solid: false
    4. Visible: true
    5. Depth: 0
    6. Persistent: false
    7. Parent: <no parent>
    8. Mask: <same as sprite>
    9. Create Event:
    10. set variable NameFarmer to ""
    11. set variable NameFarmerLaenge to 0
    12. set variable Shift to 0
    13. Draw Event:
    14. set a font for drawing text
    15. at position (0,0) draw the value of: NameFarmer
    16. Key Press Event for <any key> Key:
    17. if keyboard_lastkey is not equal to vk_enter
    18. if keyboard_lastkey is not equal to vk_insert
    19. if keyboard_lastkey is not equal to vk_delete
    20. if keyboard_lastkey is not equal to vk_end
    21. if keyboard_lastkey is not equal to vk_down
    22. if keyboard_lastkey is not equal to vk_pagedown
    23. if keyboard_lastkey is not equal to vk_left
    24. if keyboard_lastkey is not equal to vk_right
    25. if keyboard_lastkey is not equal to vk_home
    26. if keyboard_lastkey is not equal to vk_up
    27. if keyboard_lastkey is not equal to vk_pageup
    28. if keyboard_lastkey is not equal to vk_printscreen
    29. if keyboard_lastkey is not equal to vk_pause
    30. if keyboard_lastkey is not equal to vk_alt
    31. if keyboard_lastkey is not equal to vk_control
    32. if keyboard_lastkey is not equal to vk_backspace
    33. if keyboard_lastkey is not equal to vk_shift
    34. set variable LetzteTaste to keyboard_lastchar
    35. if NameFarmerLaenge is not equal to 15
    36. set variable NameFarmerLaenge relative to 1
    37. set variable NameFarmer relative to keyboard_lastchar
    38. Key Press Event for <Backspace> Key:
    39. set variable NameFarmerLaenge relative to -1
    40. set variable NameFarmer relative to -LetzteTaste
    Alles anzeigen


    sooo, das ganze istn bisschen unübersichtlich, soll aber eigentlich nur abfragen ob auch keine tasten wie zb. ende gedrückt wurden, weil er ja ansonsten den letzten buchstaben nochmal tippen würde... und das mit der variable LetzteTaste habe ich gemacht, damit er die letzte taste AUSSER backspace speichert, damit man mit backspace nen buchstaben löschen kann... das ganze läuft dann per release key backspace... da soll er die variabe LetzteTaste von dem namen abziehen, aber das will er irgendwie nicht... es scheint mir so als könnte man keine stringvariablen von stringvariablen abziehen, sondern nru addieren, aber wie soll ich das sonst machen?

    achso, die variable farmernamelaenge sit nur dazu da, damit der name nur 15 buchstaben enthalten kann.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Lord_Doominik ()

  • du kannst das auch viel einacher machen. in der variable "keyboard_string" werden die letzen 1024 (iirc) eingegeben buchstaben gespeichert.
    [PHP]name=keyboard_string;
    name=string_copy(name,0,10)[/PHP]
    da wird zuerst der keyboard_string in die variable "name" gespeichert, da der aber bis zu 1024 zeichen lang sein kann wird der durch die zweite Zeile auf 10 Zeichen beschränkt. Vor dem ganzenwärs aber noch gut "io_clear();" aufzrufen damit der keyboard_string geleert wird, sonst sin noch vorher gedrückte buchstaben drin.

    Wichtig wär auch bei der ausgabe mit string_replace die # mit \# zu ersetzen, da im GM ein # als Zeilenumbruch interpretiert wird und mit \# wird ein # ausgegeben. Das sähe dann in etwa so aus:
    [PHP]variable=string_replace_all(name,'#',"\#");[/PHP]
    oder bei einer einfachen ausgabe dann so:
    [PHP]draw_text(x,y,string_replace_all(name,'#',"\#"));[/PHP]
  • och menno, dann müsste ich ja alles umwerkelen... :(...

    aber das problem wäre ja nciht gelöst... es wäre nur ein anderer weg um den namen auszugeben... da würde er halt dens tring nehmen und on draw ausgeben, aber zurücknkönnte man auchnicht... ich will ja an sich das man mit backspace einen char zurrück kann... das nameneingeben funzt ja soweit auch... zudem würde man des zuerst mit dem io clearen k, aber wenn man dann sowas wie ende drückt oder so kommt son blödes zeichen da rein... ich weiß net, aber ich finde das recht... naja, ich würde es lieber anders machen, vorallem da so das problem mti backspace nciht behoben ist, da man die variable keyboard_string ja auch nicht -1 zeichen oder -keyboard_lastchar (eigentlich ja keyboard lastchar AUSSER BACKSPACE) setzen kann...

    öhm nochwas... laut meines wissens werden doch mit

    Quellcode

    1. name=string_copy(name,0,10)


    die 1. 10 zeichen aus der variable genommen, also könnte man 10 zeichen eingeben, und danach garnichtsmehr... dann wäre das mti backspace ja noch komplizierter bei der sache... seitdenn man schreibt danach 1014 zeichen um die variable voll zu kriegen, damit sie die alten wieder überschreibt...

    *dasjetztirgendwiegarnetpeil*
    für mcih klingt das alles leicht unlogisch und unpraktisch...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Lord_Doominik ()

  • hmm eigentlich klappt das ja beim keyboard_string mit backspace und bei ende kommt auch kein komisches zeichen...
    egal dann eben mit deiner methode mach einfach
    [PHP]name=string_delete(name,string_length(name),1);[/PHP]
    des löscht den letzten buchstaben von dem string
  • ok. das funzt jetzt eninwandfrei... danke!!! aso, der gm macht bei mri aber anstatt backspace son viereck... sosnt würde meins ja auch gehen...

    aber das funzt suuuper... DANKEDANKEDANKEDANKEDANKE

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Lord_Doominik ()