Skocz do zawartości

Okno z formularzem do wypełnienia


Rekomendowane odpowiedzi

Cześć, czy ma ktoś przykład gry/programu, w którym są okna z formularzami do wypełnienia? Np. gdybym chciał tworzyć rpga, byłoby super gdyby był formularz np. do wpisania nazwy postaci i byłoby jeszcze lepiej gdyby ta nazwa zapisana została jako string , dzięki czemu nazwa postaci mogłaby pojawiać się w różnych sytuacjach podczas gry.

Odnośnik do komentarza
Udostępnij na innych stronach

Przepraszam za dublowanie posta, wiem że tak nie powinno się robić, ale bardzo zależy mi na tym aby mieć ten kod na dzisiaj. Czy ktoś o dobrym sercu przesłałby mi kod , który umożliwia tworzenie formularzy do wpisania? Będę bardzo wdzięczny, niestety projekt Threefa nie otwiera się na moim GM :(

Odnośnik do komentarza
Udostępnij na innych stronach

To powiem Ci że aktualną jest 1.4.1763 ;)

 

 

Z chęcią zaktualizuję ale czy nie wykrzaczy mi się to co do tej pory zrobiłem? a co do tego formularza, to jak mniej więcej to zrobić? Czy muszę dodać każde zdarzenie przy kliknięciu danego klawisza , które dodaje jedną literkę do ciągu string? Czy jest może jakiś inny , szybszy sposób?

Odnośnik do komentarza
Udostępnij na innych stronach

2 Obiekty:

Information about object: o_window_controler

Sprite:

Solid: false

Visible: true

Depth: 0

Persistent: false

Parent:

Children:

Mask:

 

No Physics Object

Create Event:

 

execute code:

 

active=noone

Information about object: o_window

Sprite:

Solid: false

Visible: true

Depth: 0

Persistent: false

Parent:

Children:

Mask:

 

No Physics Object

Create Event:

 

execute code:

 

text=""

width=200

height=20

hmargin=8

vmargin=2

 

no_line_break=0

string_limit=0

enter_break_line=false

 

Step Event:

 

execute code:

 

if(o_window_controler.active!=id) {

//If not selected

if(mouse_check_button_pressed(mb_left) && point_in_rectangle(mouse_x,mouse_y,x,y,x+width,y+height)) {

//Select me

o_window_controler.active=id

keyboard_string=text

}

} else {

//if selected

text=keyboard_string

 

//Replace line break and enable real # symbol

if(no_line_break) {

text=string_replace_all(text,"#","\#")

}

 

//Text limit

if(string_limit>0) {

text=string_copy(text,1,string_limit-1)

}

 

//End editing

if(keyboard_check_pressed(vk_enter)) {

if(enter_break_line) {

//Add line break symbol on press enter

//Should not be used with no_line_break=true

keyboard_string+="#"

} else {

o_window_controler.active=noone

}

}

 

//End editing

if(keyboard_check_pressed(vk_escape)) {

o_window_controler.active=noone

}

}

 

Draw Event:

 

execute code:

 

draw_set_valign(fa_top)

draw_set_halign(fa_left)

draw_set_color(c_black)

draw_rectangle(x,y,x+width,y+height,1)

 

//Typing cursor

cursor=""

if(o_window_controler.active=id && sin(get_timer()/200000)>0) {

cursor="_"

}

 

draw_text_ext(x+hmargin,y+vmargin,text+cursor,-1,width-hmargin*2)

 

 

I 3 zmienne do kontrolowania rodzaju pola:

GML
no_line_break

string_limit

enter_break_line

Odnośnik do komentarza
Udostępnij na innych stronach

Tak. To w przypadkach gdy chciałbyś robić jakieś pola do wpisywania haseł czy coś tego typu. Oczywiście trzeba potem to przerobić bo musi inaczej wyświetlać a inaczej przechowywać dane... ale to tylko przykład!

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...

Witam, przykład był bardzo pomocny i jeszcze raz dziękuję, ale zastanawiam się jaki kod zastosować, aby móc wpisywać polskie znaki? Czy jest to do zrobienia w GMie?

 

EDIT

 

I od razu drugie pytanie:

 

Czy można zrobić tak aby kliknąć myszą w połowie danego formularza i zacząć pisanie tekstu np. w połowie napisanego już zdania? I analogicznie, czy da się zrobić tak, aby strzałki na klawiaturze przesuwały nas np. do połowy napisanego wcześniej wyrazu? Chodzi mi o takie funkcjonalności jaki są w notatniku, wordzie i innych edytorach tekstu.

 

EDIT 2

I od razu 3 pytanie, czy można stworzyć funkcję ctrl +c oraz ctrl+v aby działała przy formularzu?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 miesiące temu...

Dzięki Threef , rzeczywiście działa. Niestety mam kolejny problem z wpisywaniem do formularza , tym razem do formularza zwykłego ,niezakrytego gwiazdkami.  W momencie gdy wpisuje znak @ w wersji windows , wszystko jest ok. Problem pojawia się gdy odpalam w wersji html, wtedy zamiast znaku @ pojawia się znak  "   . Dlaczego?  probowałem opcji replace_string ale dalej nie działa

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy
13 godzin temu, I am vader napisał:

Ponieważ w wersji HTML5 korzysta z klawiatury brytyjskiej gdzie w tamtym miejscu jest ".

 

Podobno jest to naprawione w ostatnich wersjach: http://bugs.yoyogames.com/view.php?id=21331 , mój ticket zresztą. Nie sprawdzałem, ale tez miałem ten problem i string_replace musiałem robić.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...