[Resolvido]Dúvidas com scripts

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

[Resolvido]Dúvidas com scripts

Mensagem por .:Allison:. em Seg 14 Mar 2011, 21:20

Eu estou com várias dúvidas sobre os scripts:

- Como o script funciona
- Qual a diferença de escrever um script e em um objeto
- Como chamar uma variável no Script
- O que são arguments
- Como usar os arguments

A parte mais difícil pra mim são os arguments, eu não consigo entender de jeito maneira, vou dar um exemplo de um código, mim digam pra que serve esse argument
Código:
///////////////////////////////////////////////////////////////////
//                                                              //
//                              Button                          //                         
//                                                              //
//  Description: Draws a Win32 Button                          //
//                                                              //
//  Arguments:                                                  //
//                                                              //
//  argument0................x                                  //
//  argument1................y                                  //
//  argument2................text                              //
//                                                              //
//            Copyright (C) 2005 by Michael Schwarz            //
//                                                              //
//      Please give me credits if you use this script!!!        //
//                                                              //
///////////////////////////////////////////////////////////////////



_color=draw_get_color()
if not(variable_local_exists("fbu")) {
fbu=0
press=false
}


xtmp = argument0
ytmp = argument1
wtmp = string_width(argument2)+12+argument0
htmp = string_height(argument2)+8+argument1
if(press=true) {press=false; return true;}
press=false

if (mouse_check_button(mb_left)) {
if (mouse_x > xtmp && mouse_x < wtmp) {
if (mouse_y > ytmp && mouse_y < htmp) {
draw_set_color(0)
draw_rectangle(xtmp,ytmp,wtmp,htmp,false)
draw_set_color(8421504)
draw_rectangle(xtmp+1,ytmp+1,wtmp-1,htmp-1,false)
draw_set_color(13160664)
draw_set_color(13160664)
draw_rectangle(xtmp+2,ytmp+2,wtmp-2,htmp-2,false)
draw_set_color(0)
draw_text(xtmp+7,ytmp+5,argument2)
press=true
mouse_clear(mb_left)
} else {
draw_set_color(16777215)
draw_line(xtmp,ytmp,wtmp-1,ytmp)
draw_line(xtmp,ytmp,xtmp,htmp)
draw_set_color(4210752)
draw_line(wtmp,ytmp,wtmp,htmp)
draw_line(wtmp,htmp,xtmp,htmp)
draw_set_color(8421504)
draw_line(wtmp-1,ytmp+1,wtmp-1,htmp-1)
draw_line(wtmp-1,htmp-1,xtmp-1,htmp-1)
draw_set_color(13160664)
draw_set_color(13160664)
draw_rectangle(xtmp+1,ytmp+1,wtmp-2,htmp-2,false)
draw_set_color(0)
draw_text(xtmp+6,ytmp+4,argument2)

}
} else {
draw_set_color(16777215)
draw_line(xtmp,ytmp,wtmp-1,ytmp)
draw_line(xtmp,ytmp,xtmp,htmp)
draw_set_color(4210752)
draw_line(wtmp,ytmp,wtmp,htmp)
draw_line(wtmp,htmp,xtmp,htmp)
draw_set_color(8421504)
draw_line(wtmp-1,ytmp+1,wtmp-1,htmp-1)
draw_line(wtmp-1,htmp-1,xtmp-1,htmp-1)
draw_set_color(13160664)
draw_set_color(13160664)
draw_rectangle(xtmp+1,ytmp+1,wtmp-2,htmp-2,false)
draw_set_color(0)
draw_text(xtmp+6,ytmp+4,argument2)
}
} else {
draw_set_color(16777215)
draw_line(xtmp,ytmp,wtmp-1,ytmp)
draw_line(xtmp,ytmp,xtmp,htmp)
draw_set_color(4210752)
draw_line(wtmp,ytmp,wtmp,htmp)
draw_line(wtmp,htmp,xtmp,htmp)
draw_set_color(8421504)
draw_line(wtmp-1,ytmp+1,wtmp-1,htmp-1)
draw_line(wtmp-1,htmp-1,xtmp-1,htmp-1)
draw_set_color(13160664)
draw_set_color(13160664)
draw_rectangle(xtmp+1,ytmp+1,wtmp-2,htmp-2,false)
draw_set_color(0)
draw_text(xtmp+6,ytmp+4,argument2)
}
draw_set_color(_color)

Fico agradecido desde já!


Última edição por X-Games em Sex 18 Mar 2011, 18:44, editado 2 vez(es)

.:Allison:.

Ranking : Nota B
Número de Mensagens : 630
Idade : 20
Data de inscrição : 25/07/2010
Notas recebidas : B
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://clubmaker.forumeiros.com

Voltar ao Topo Ir em baixo

Re: [Resolvido]Dúvidas com scripts

Mensagem por Math Maker em Seg 14 Mar 2011, 21:49

Cara, pesquisar um pouco faz bem a saúde... Da uma olhada nesse link:

Código:
http://gmbr.forumeiros.com/t12433-indice-de-aulas-e-tutoriais-de-dharrison#111010

Nesse script os arguments fazem de si uma função. Os dados são posição x (horizontal), posição y (vertical) e o texto aplicado na mesma. Quando você usa esse sript você o declara como uma função:

Código:
win32bt(x,y,str)

Bem, acho que tudo vai ficar mais esclarecido depois de ler alguns tutoriais.

Math Maker

Número de Mensagens : 107
Idade : 21
Data de inscrição : 26/02/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido]Dúvidas com scripts

Mensagem por .:Allison:. em Seg 14 Mar 2011, 21:57

Não achei oque procurava, ai ele só tem uma breve explicação, queria um diagnóstico completo!! mais vlw pela ajudaa!!

.:Allison:.

Ranking : Nota B
Número de Mensagens : 630
Idade : 20
Data de inscrição : 25/07/2010
Notas recebidas : B
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://clubmaker.forumeiros.com

Voltar ao Topo Ir em baixo

Re: [Resolvido]Dúvidas com scripts

Mensagem por Willy em Seg 14 Mar 2011, 23:59

Para usar um script, se usa assim:

Em um objeto, você chama o script dessa maneira:
Código:
///exemplo:
scr_script(obj_bloco,32,16)
scr_script é o nome do script
O que tem dentro do "()" são os arguments, nesse caso, é o argument0, argument1 e argument2.

No scripit, por exemplo, você usa assim:

Código:
if instance_exists(argument0){
if place_free(x+argument1,y)
x+=32
}else if place_free(x-argument2,y){
x-=16
}
Os arguments sao definidos no objeto, ao executar o script, ele simplesmente interpreta o argument como o valor que foi dado a ele.
Seria como se ele lesse o script assim:
Código:
if instance_exists(obj_bloco){
if place_free(x+32,y)
x+=32
}else if place_free(x-16,y){
x-=16
}
Se quiser usar variaveis no script, basta colocar normalmente entre os seus "ifs", desde que o objeto que chamou o script tenha as variaveis declaradas (exeto as globais).
O uso de script pode ser usado para tornar mais facil a criação de blocos de códigos extensos. Ai, ao invez de criar em todo objeto que for usar esse bloco umas 30 linhas, basta usar 1 como o scr_script()

Espero ter ajudado!
blz

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Dúvidas com scripts

Mensagem por .:Allison:. em Qua 16 Mar 2011, 17:46

Humm.. mais eu achei esse negócio de arguments inútil, qual a finalidade dele, eu posso fazer o código sem os arguments, só com os números normais ?

.:Allison:.

Ranking : Nota B
Número de Mensagens : 630
Idade : 20
Data de inscrição : 25/07/2010
Notas recebidas : B
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://clubmaker.forumeiros.com

Voltar ao Topo Ir em baixo

Re: [Resolvido]Dúvidas com scripts

Mensagem por Willy em Qua 16 Mar 2011, 23:11

Inútil?
Jamais!

Script é o melhor amigo de um programador de GameMaker, torna-se muito mais manipulavel e pratico o uso dos scripts.
Sim, você pode colocar um valor FIXO no lugar dos arguments. Com os arguments, eu posso usar um unico escript para MUITOS objetos diferentes.
Um exemplo de script que eu uso bastante, é o sistema de morte.
Por exemplo, ao colidir-me com um objeto mortal, ele executa o script com os seguintes argumens: scr_morte(1,obj_morto,x,y,snd_morre). "1" é o tanto de vidas que ele vai perder,"obj_morto" é o objeto dele morrendo e snd_morte é o som de morte, "x" e "y" é a posição do objeto.
No script:
Código:
vidas-=argument0
instance_create(argument2,argument3,argument1)
sound_play(argument5)
Nesse caso, o script é em pequeno, mas imagine se esse script tivesse umas 15 linhas e tivesse que ser ativado em diferentes situações? Eu teria que re-escrever todo o código e alterar toda hora, dependendo do situação.
Ai eu pergunto, o que é mais facil, escrever 15 linhas ou 1 simples linha?

Nos aruments, você não poe apenas números, você pode por qualquer tipo de variavel(0,true,"texto",etc).
Bom, qualquer duvida é so falar!

Espero ter ajudado!
blz

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Dúvidas com scripts

Mensagem por Conteúdo patrocinado Hoje à(s) 06:46


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