Conectar-se
Quem está conectado
19 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 19 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
Ranking : Nota D
Notas recebidas : E+D
Data de inscrição : 29/10/2011
Número de Mensagens : 128
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://gmls.forumeiros.com/

Player digitar

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.
avatar
Ranking : Nota C
Notas recebidas : B+D
Data de inscrição : 18/01/2011
Número de Mensagens : 482
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 5

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Player digitar

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)}
avatar
Ranking : Sem avaliações
Data de inscrição : 21/11/2010
Número de Mensagens : 775
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 25

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Player digitar

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
Conteúdo patrocinado

Re: Player digitar

Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum