Player digitar

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Player digitar

Mensagem por Ueliton em Seg 12 Dez 2011, 13:36

Como eu coloco no jogo uma caixa que quando o player clicar nela aparece um cursor para o player digitar? Por exemplo o jogador colocou o nome de Game Maker, e encima do player fica o nome escolhido.

Ueliton

Ranking : Nota D
Número de Mensagens : 128
Data de inscrição : 29/10/2011
Notas recebidas : E+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://gmls.forumeiros.com/

Voltar ao Topo Ir em baixo

Re: Player digitar

Mensagem por irlansn em Seg 12 Dez 2011, 14:04

É um pouquinho complicado mas da pra fazer sem problemas:
crie 2 scripts...

1º: TextArea_Init
Código:
over=false;
global.ID=0;
global.virtual_ID=noone;
global.edit=noone;
for (i=0;i<=global.ID+1;i+=1;)
{
global.str[i]='';
}
global.beam='|';
global.time=0;

2º: TextArea
Código:
/*
TextArea(id,x,y,width,height,encrypt)
*/


var _id,_x,_y,_w,_h,_crypt,_str,_n,_ind,_color;
_id=argument0;
_x=argument1;
_y=argument2;
_w=_x+argument3;
_h=_y+argument4;
_crypt=argument5;

if (mouse_x>_x && mouse_y>_y && mouse_x<_w && mouse_y<_h)
{
    if (global.ID<>_id)
    {
    window_set_cursor(cr_beam);
    global.ID=_id;
    }else
    if (mouse_check_button_pressed(mb_left))
    {
    keyboard_string=global.str[_id];
    global.edit=_id;
    }
}else
{
    if (mouse_check_button_pressed(mb_left)&&global.edit==_id)
    {global.edit=noone;
    }
    if (global.ID==_id)
    {
    window_set_cursor(cr_arrow);
    global.ID=noone;
    global.beam='';
    }
}
if (global.edit==_id)
{
_color=c_white;
global.str[_id]=keyboard_string;

    if (string_width(keyboard_string)>(_w-_x))
    {
    keyboard_string=string_copy(keyboard_string,0,string_length(keyboard_string)-1)
        if (string_height(global.str[_id])<abs(_h-_y)-16)
        {
        keyboard_string+="#";
        }
    }

    if (global.time>1)
    {
        if (global.beam=='|')
        {
        global.beam='';
        }else
        {
        global.beam='|';
        }
        global.time=0;
    }else
    {
    global.time+=.1;
    }
}else
{
_color=make_color_rgb(164,164,164);
}


draw_set_color(_color);
draw_rectangle(_x,_y,_w,_h,0);
draw_set_color(c_black);
draw_rectangle(_x,_y,_w,_h,1);
var _type;
if (global.edit==_id)
{
_type=global.beam;
}else
{
_type='';
}
_text='';
if (_crypt)
{
    for (i=0;i<string_length(global.str[_id]);i+=1;)
    {
    _text+="*";
    }
}else
{
_text=global.str[_id];

}
draw_text(_x+2,_y+2,_text+_type);

return global.str[_id];

No Create:
Código:
TextArea_Init();

No draw coloque:
Código:
//TextArea(id,x,y,width,height,encrypt)
global.Nome=TextArea(0,10,10,100,100,false);
with(obj_player) {draw_text(x,y-10,global.Nome)}

irlansn

Ranking : Nota C
Número de Mensagens : 482
Idade : 18
Data de inscrição : 18/01/2011
Notas recebidas : B+D
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Player digitar

Mensagem por Tedi Ripper em Seg 12 Dez 2011, 14:08

primeiro, use o get_string pro player digitar, é o mais simples, se quiser uma caixa que fique na room, vc tem q pegar uns scripts especiais e chatos de mecher (se quiser, fala que eu te passo um link bem facil).
ai vc salva uma variavel, algo assim:
Código:
global.nome=get_string("Qual é o seu nome?","") //armazena o nome que o player digitar na var nome

isso pode ser no create, se nao for, no create desse objeto tem q ter global.nome=""

ai em um objeto que fique na room enquanto o player se move, no draw coloque:
Código:
draw_text(obj_player.x,obj_player.y,string(global.nome))

é isso ai, assim vai mostrar o nome do player em cima dele.
qualquer duvida, posta ai
flw flw

Tedi Ripper

Ranking : Nota C
Número de Mensagens : 765
Idade : 19
Data de inscrição : 21/11/2010
Notas recebidas : C
Reputação : 24
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Player digitar

Mensagem por Conteúdo patrocinado Hoje à(s) 13:48


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum