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

Morzan

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 19/01/2011
Número de Mensagens : 204
Insígnias de JAM :

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

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

[Dúvida]Alguém pode me explicar um código?

em Dom 03 Fev 2013, 23:06
Iae pessoal,
novamente estou aqui perguntando como funciona um código. Como na ultima vez eu vi em um tuto mais por não estar bem explicado não consegui entender direito.O código se trata de como fazer aparecerem letra por letra na tela, então eis o código:

CREATE
Código:
str1="um texto qualquer"
str2="";
texto=0

STEP
Código:
draw_set_color(c_black)
draw_set_font(font0)
texto+=0.25
str2=string_copy(str1,0,texto)
DRAW
Código:
draw_set_color(c_black)
draw_set_font(font0)
draw_sprite(sprite0,0,x,y)
draw_text(x,y,str2)

Minhas dúvida de interpretação é maior em entender o que significa apenas o aspas("") em str2="", mas se alguém puder esclarecer tudo ficarei grato,
Obrigado.
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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

Re: [Dúvida]Alguém pode me explicar um código?

em Dom 03 Fev 2013, 23:56
str2="" significa que não tem nada, é uma string nula. Ela é definida como nula porque no evento Draw há um código para desenhá-la e caso ela não tivesse sido declarada, ia gerar um erro (desenhar uma variável que não existe). Note que a cada 4 steps um novo caractere é adicionado.

Até mais!
avatar
Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

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

Prêmios
   : 0
   : 2
   : 1
Ver perfil do usuáriohttp://xcreatorgames.weebly.com/

Re: [Dúvida]Alguém pode me explicar um código?

em Dom 03 Fev 2013, 23:59
Primeiro, o codigo:
Código:

draw_set_color(c_black)
draw_set_font(font0)
No Evento STEP não é permitido e é desnecessário neste caso a não ser que use surfaces.
Quando a sua dúvida, str2="" inicializa a variavel str2 com uma string vazia, isso é para o GM saber que se trata de uma var string j[á que o default é numerica.
Flws!
avatar
Data de inscrição : 19/01/2011
Número de Mensagens : 204
Insígnias de JAM :

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

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

Re: [Dúvida]Alguém pode me explicar um código?

em Seg 04 Fev 2013, 00:26
Só mais 2 perguntas:
- quando no create é colocado "texto=0", é apenas para declaras a variável?
-string_copy faz exatamente oq?

desculpa pelo incômodo,
Obrigado.
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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

Re: [Dúvida]Alguém pode me explicar um código?

em Seg 04 Fev 2013, 00:32
- quando no create é colocado "texto=0", é apenas para declaras a variável?
Sim, isso é necessário por vários motivos. Um deles é que geralmente usamos operações, como +=. Se a variável não fosse declarada, o GM não saberia o seu valor e assim não poderia somar a um valor desconhecido. Assim um erro seria inevitável.

-string_copy faz exatamente oq?
Copia parte de uma string, exemplo:

a = 'abcdef123456'

string_copy(a, 1, 5) copia os 5 primeiros caracteres ('abcde'). Você deve colocar numa variável se não for usar no mesmo instante.

b = string_copy(a, 1, 5)

Note que se você for adicionando um valor a uma variável e depois usá-la para declarar quantos caracteres quer copiar, você criará o efeito letra-por-letra.

Seria mais ou menos assim:

b = 'a'
b = 'ab'
b = 'abc'
b = 'abcd'

E por aí vai.

Até mais!
avatar
Data de inscrição : 19/01/2011
Número de Mensagens : 204
Insígnias de JAM :

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

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

Re: [Dúvida]Alguém pode me explicar um código?

em Seg 04 Fev 2013, 01:03
Só uma ultima pergunta =P:
para que serve o index(numero 1 em "string_copy(a,1,5)"?
Muito obrigado novamente. =D
avatar
Ranking : Nota B
Notas recebidas : E + B+B
Data de inscrição : 02/06/2009
Número de Mensagens : 513
Insígnias de JAM :

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

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

Re: [Dúvida]Alguém pode me explicar um código?

em Seg 04 Fev 2013, 01:23
esse parametro index é a posição inicial da String onde vc vai aplicar a função ""string_copy" (no exemplo original, a 'str1')

coloque o valor 2, ao inves do 1 por exemplo,
e vc verá que o texto será escrito a partir do "m" ("m texto ...")
e não do "u" ("um texto ...")
avatar
Ranking : Nota A
Notas recebidas : A
Data de inscrição : 16/11/2009
Número de Mensagens : 203
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://www.areaonze.com

Re: [Dúvida]Alguém pode me explicar um código?

em Seg 04 Fev 2013, 06:18
Já foi extremamente bem explicado pela galera, mas só pra complementar (já que está aprendendo strings, pode ser útil):

string_length(str) : Retorna o número de caracteres da string STR.

string_pos(substr,str) : Retorna a posição de "substr" na "str" (0= ocorrência negativa ).

string_copy(str,index,count) : Retorna uma "substring" da string "str", começando na posição "index", com comprimento "count". ("substring" seria uma outra "string")

string_char_at(str,index) : Retorna o caractere que está na posição "index" na string "str".

Você encontra mais coisa na ajuda do GM (F1).
avatar
Data de inscrição : 19/01/2011
Número de Mensagens : 204
Insígnias de JAM :

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

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

Re: [Dúvida]Alguém pode me explicar um código?

em Seg 04 Fev 2013, 12:37
Obrigado por tudo,
Vlw
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