GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Retorno da GMBR!!!
por vinians Qui 14 Mar 2024, 19:07

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


#IEM Aula 04 - If/While e Expressões

+6
THECHAOS
Super Games
.:Allison:.
Giu
Gsa2134
All-x
10 participantes

Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty #IEM Aula 04 - If/While e Expressões

Mensagem por All-x Qui 31 Dez 2009, 19:41

INTRODUÇÃO EM GML



Aula 04 - If/While e Expressões



(Atualizado 08/02/2015)

IF:

É uma estrutura de checagem condicional que em português significa "se". Agora explicarei uma estrutura básica de código usando if:

Código:
if variavel = 0
{
    variavel2 = 100
}

Tradução:

Código:
Se variavel é igual a 0 o que esta entre chaves acontece, ou seja, variavel2 igual a 100.

Vamos fazer mais um exemplo simples. O Super Mario tem duas variáveis bem conhecidas, moedas e vidas. Para se conseguir uma vida coletando moedas, tem que conseguir 100 destas.

Baixe a seguinte engine:





Nela a movimentação do personagem está pronta. Não se preocupe em entender esses códigos de movimento e gravidade, pois nas próximas aulas estarei ensinando a movimentação.

No evento Other>>Game Start do controle coloque:

Código:
//Número de vidas
global.vidas = 3

//Número de moedas
global.moedas = 0

Ou seja, sempre que o jogo iniciar o personagem terá 3 vidas e 0 moedas.

Agora no step vamos fazer uma checagem de variáveis, e como o step é constante ele sempre estará checando:

Código:
//Se moedas for maior ou igual a 100
if global.moedas >= 100
{
    //Retira 100 moedas
    global.moedas -= 100
    
    //Ganha uma vida
    global.vidas += 1
}

Você deve ter percebido o uso do ">" neste código, em matemática significa maior que, também tem o "<" (menor que), e adicionamos este símbolo antes do sinal de igual. Explicarei melhor isso mais abaixo, em Expressões.

Colocamos esse operador ali porque se você aumentar o número de moedas muito rápido, global.moedas pode passar de 100. Se fosse "if global.moeda =100..." o código não funcionaria bem, pois só se fosse exatos 100 que a outra expressão aconteceria.

Na engine tem um objeto chamado "moeda", cuidado!!! Nunca de nomes de variáveis e objetos e qualquer outro elemento(background, sprite, sons, rooms, fonts, paths e etc) iguais, senão acontecerão erros. Ex: você não pode dar o mesmo nome a uma sprite e a um objeto.

Então você percebeu agora, porque a variável se chama "global.moedas" e o objeto "moeda"?

Nesse objeto moeda adicione o evento Collision e selecione o objeto player e coloque o seguinte código:

Código:
global.moedas += 1

instance_destroy()

Ou seja, ganhamos 1 moeda e a instancia de objeto moeda será destruída quando colidir com o player.

Agora para vermos as variáveis vamos ao objeto controle para desenhar as nossas variáveis. Sempre use um objeto separado para desenhar coisas como pontuação, vidas e etc.

No evento Draw do objeto controle abra o editor de códigos e coloque o seguinte código:

Código:
draw_text(10,10,"Vidas: " + string(global.vidas) + "#" + "Moedas: "+string(global.moedas))

Esse código desenha as variáveis global.vidas e global.moedas.

Quando for desenhar textos sempre os coloque-os entre aspas "texto". E ja que estamos desenhando textos, tivemos que converter valores reais (números) em strings (palavras) usando a função string(str).

"#" serve para pular uma linha. E sempre que for adicionar mais de um texto e mais de uma variável intercalados usa-se o  somando seus valores para formar um novo texto.

Agora testem suas engines, para ver como sairam os resultados. Caso tenha saido algo errado baixe esta outra engine que esta completa:





WHILE:

while é quase igual ao if, só há uma diferença:

Imagine todo o jogo como um ciclo que ocorre infinitamente. Quando esse ciclo passa pelo if  ele faz a checagem normalmente, independente se a condição for verdadeira ou não e continua sem interromper esse ciclo.

Já quando o ciclo passa pelo while (que é um ciclo também), o ciclo pausa até que a condição vinculada a ele seja falsa. Exemplo:

- Crie um novo projeto.
- Adicione um novo objeto e um nova room.
- No Create do objeto coloque:

Código:
moeda=0

if moeda < 100
{
    moeda += 1
}

-No Draw coloque (para sabermos o valor final da variável moeda):

Código:
draw_text(10, 10, moeda)

- Insira o objeto na room e execute.

O valor da variável moeda mostrado é 1. Isso porque o Create ocorre apenas uma vez no inicio do ciclo do objeto e só deu tempo de checar a condição uma única vez.

- Agora troque o IF por WHILE e execute novamente.

Repare que:

- A tela fica preta por alguns instantes (Essa é a pausa no ciclo principal do jogo, aguardandoo ciclo while acabar).
- O valor de moeda agora é 100.

Ou seja, o while segurou o Create até que a variável moeda não fosse mais menor que 100.

Muito cuidado ao usar o while, se a condição nunca ficar falsa o jogo vai ficar travado.

EXPRESSÕES:

Vimos que para if e while funcionarem, antes eles checam uma condição para que o que está dentro das chaves ocorra.

Essa condição é uma expressão. As que usamos até agora foram simples, mas há formas de checar mais de uma condição em uma mesma expressão, e ainda usar uma expressão em uma operação aritmética.

Para que fique tudo mais organizado, pegue o costume de usar parenteses nas suas condições. Ex:

if (moedas >= 100) ...

A nossa expressão é (moedas >= 100), ela retorna 1 (true) ou 0 (false) para o if. Ou seja um valor booleano.

Operadores de comparação:

> maior que
< menor que
>= maior ou igual que
<= menor ou igual que
== igual a (É diferente de apenas =, que  significa atribuição)
!= diferente de

Agora vamos as expressões compostas:

AND:

Código:
if ( (energia > 50) and (arma == 3) )
{
    energia -= 50
}

Nesse código a ação só acontece se duas condições forem satisfeitas, ter mais de 50 de energia e a arma ser 3. Se uma das duas for falsa a ação não ocorre. Usamos o operador and que faz com que dois lados de uma condição tenham que ser verdadeiros para a ação ocorrer.

OR:

Código:
if ( (cor == c_red) or (cor == c_orange) )
{
    cor_quente = true
}

Nessa expressão é necessário que apenas uma condição seja verdadeira para que a ação ocorra. Usamos o operador or que faz com que pelo menos um dos lados de uma expressão tenha que ser obrigatoriamente verdadeiro para a ação ocorrer.

Como vimos expressões nos devolvem 1 ou 0 como valor. Podemos usar isso para simplificar códigos:

Código:
x += (anda == true) * 5;

Ou seja, caso anda ter o valor 1 o objeto vai mudar de posição em +5. Repare também que estou usando "== true" nas expressões. Na verdade se eu quero verificar se ela é verdadeira, não preciso adicionar nada. Dai o código seria:

Código:
x += (anda) * 5;

Obteremos o mesmo resultado. É a mesma coisa com o exemplo das moedas. Se eu quisesse poderia ter feito assim:

Código:
if ( moedas >= 100 ) == true
{

}

Só que é desnecessário checar se ela é "verdade é verdadeira", sacaram? Mas quando queremos checar se a expressão é falsa não devemos omitir o  "== false".

Enfim terminamos mais essa!

Próxima aula: Else e Switch



Até a próxima!!!

FLWS!


Última edição por Alex FC em Qua 11 Fev 2015, 10:17, editado 26 vez(es) (Motivo da edição : Atualização)
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por Gsa2134 Qui 28 Jan 2010, 14:22

num sei se eh ress pq foi postado no ano novo mas eu testei aki o meu e ele n desenhou as vidas e as moedas kra explica ae ta totalmente igual nossas engines
[Edit]
Percebi q vc ta usando game maker 7 lite ou pro num sei e eu 8 lite alguma diferença pros codes na mudança de versão ou do lite pra pro?
Gsa2134
Gsa2134

Data de inscrição : 27/01/2010
Reputação : 0
Número de Mensagens : 229
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por Giu Seg 01 Fev 2010, 16:49

num sei se eh ress pq foi postado no ano novo mas eu testei aki o meu e ele n desenhou as vidas e as moedas kra explica ae ta totalmente igual nossas engines
[Edit]
Percebi q vc ta usando game maker 7 lite ou pro num sei e eu 8 lite alguma diferença pros codes na mudança de versão ou do lite pra pro?
Acontece que você não pôs o objeto "controle" na room...
Giu
Giu

Data de inscrição : 31/01/2010
Reputação : 0
Número de Mensagens : 1
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por Gsa2134 Seg 01 Fev 2010, 17:45

vlw agora foi Happy
Gsa2134
Gsa2134

Data de inscrição : 27/01/2010
Reputação : 0
Número de Mensagens : 229
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por .:Allison:. Qua 11 Ago 2010, 22:46

Cara eu fiz tudo certo mais qdo eu coloco pra iniciar o jogo aparece: Failed to run the game. Oque eu faço ?
.:Allison:.
.:Allison:.

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 25/07/2010
Reputação : 4
Número de Mensagens : 630
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 14 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://clubmaker.forumeiros.com

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por Super Games Qui 12 Ago 2010, 09:31

X-Games deve ter alguma coisa no seu jogo que o GM não permiti.

Topico:
Desculpa reviver, mais Alex FC seu tutorial me ajudou muito, pois eu so sei o basico de GML. Vlw
Super Games
Super Games

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 10/06/2010
Reputação : 36
Número de Mensagens : 2799
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Java
  • C ou C++


Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por THECHAOS Sáb 14 Ago 2010, 13:14

Cara otimo tutorial
THECHAOS
THECHAOS

Data de inscrição : 14/08/2010
Reputação : 0
Número de Mensagens : 15
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por guilhermemig17 Sáb 14 Ago 2010, 15:01

nossa cara isso é muito noob para programação
acho que devia mostrar um link completo de uma vez!
e só para matar curiosidade elif é senão!
ou seja se:
if 2>1:
o game maker vai mostrar 'é'
else:
o game maker vai mostrar 'nao e'
então vai dar:
é
por que 2>1 realmente!
guilhermemig17
guilhermemig17

Data de inscrição : 03/06/2010
Reputação : 4
Número de Mensagens : 252
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por alucardcsn Sex 27 Abr 2012, 01:41

nao tem mais o download =(
alucardcsn
alucardcsn

Data de inscrição : 22/04/2012
Reputação : 1
Número de Mensagens : 10
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Um pequeno erro...

Mensagem por Lutchero Sex 22 Jun 2012, 23:55

Cara, o tutorial está bom demais, estou começando a entender a GML, mas lá vai uma dica : Vi um erro aí ao pintar a viriável "vidas" e trocar o "v" por "V" ao pintar. Faltou o sinal mais (+) antes da string. Deve ser esse o erro que deu no jogo da Allison.

O seu código está assim:
draw_text(10,10,"Vidas: " string(vidas) "#" "Moedas: " string(moedas))
O correto seria assim:
draw_text(10,10,"Vidas: " +string(vidas) )

Quanto ao fato de pular linhas em código, pesquisei e vi que "#" só pula linhas no próprio texto: (10,10,"Texto#Texto"), não encontrei até agora como que pula linhas no código, tentei encerrar a função com ponto e vírgula, não deu. bravo
Qualquer coisa eu posto aqui no fórum ao encontrar, por que não dá pra pular linnha usando a função>> "#".

Eu uso o GM 8, talvez em versões mais antigas deve que o seu código funcionava, mas aqui só deu erro, todo caso, eu não sei muito de programação, comecei a estudar a alguns dias, então, desculpa ae por qualquer coisa, é que gosto de aprender corretamente. ABRAÇÃO A TODOS!
[b]


Última edição por Lutchero em Dom 24 Jun 2012, 19:24, editado 1 vez(es)
Lutchero
Lutchero

Data de inscrição : 22/06/2012
Reputação : 1
Número de Mensagens : 5
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Solução para o problema da string

Mensagem por Lutchero Sáb 23 Jun 2012, 00:17

Eu realmente estou começando a entender a GML, o problema que eu disse antes foi fácil resolver, me coloquei a ver o código e lembrar o que aprendi no seu tutorial mesmo e cheguei a solução! Quando eu vi que o GM aceito minha solução fiquei tão feliz! Laughing

A questão é que você tentou pular linhas e descobri em um fórum gringo que os números que você colocou são coordenadas estou falando dos números abaixo em vermelho:
draw_text(10,10,"Vidas: " string(vidas) "#" "Moedas: " string(moedas))

Logo entendi o porquê a vida aparece no canto superior da tela, na verdade seria isso a sintaxe:
draw_text(x,y,"texto aqui")

Sabendo disso foi fácil perceber que se eu aumentasse o valor do eixos Y, o texto apareceria mais para baixo. Bingo! veja o que fiz por mim mesmo, estou orgulhoso de mim:
draw_text(

10,10,"Vidas: "
+string(vidas)

)

draw_text(

10,25,"Moedas: "
+string(moedas)

)


Como vê eu apenas fiz duas funções e mudei o eixo Y da segunda que era 10 para 25 e tá resolvido o problema.
Obrigado Alex FC, você me ajudou muito, e as aulas de lógica que li na net estão me ajudando muito também.
O grande problema de tutoriais é que explica por alto e passa por cima de muita coisa, como o caso das coordenadas na função "draw_text". Se tivesse falado antes, seria mais fácil entender. Eu espero aprender logo para não passar por cima de nada quando eu for ensinar...
ABRAÇÃO A TODOS!


Última edição por Lutchero em Dom 24 Jun 2012, 19:25, editado 1 vez(es)
Lutchero
Lutchero

Data de inscrição : 22/06/2012
Reputação : 1
Número de Mensagens : 5
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Erro nas moedas e nas vidas

Mensagem por Lutchero Sáb 23 Jun 2012, 00:31

Cara, eu testei o código aqui e deu errado, eu pegava 2 moedas e sempre contava 1, fui ver o COLLISION do PLAYER e você esqueceu mais uma vez o sinal mais (+). Happy

o seu código:
moedas =1//adiciona 1 moeda
Essa instrução que você dá aqui é que toda vez que pegar uma moeda, vai totalizar 1 moeda, quer dizer; se tiver 50 moedas e pegar outra, vai voltar pra uma, assim nunca chega a 100 pra ganhar um vida, sacanagem isso ae. bravo

O correto:
moedas +=1//adiciona 1 moeda
Agora está certo por que toda vez que eu pegar 1 moeda vai somar +1. Ufa! Agora posso juntar 100 e pegar uma vida! feliz2

No entanto, observei mais um problema, deduzi que você também havia esquecido e acertei:
if moedas>=100{moedas=0 vidas =1}

O correto é assim:
if moedas>=100{moedas=0 vidas +=1}
Estou começando a desconfiar que o seu teclado não tem a teclar mais(+)... Brincadeira mano, te respeito muito, não leva a mal a brincadeira. era só acrescentar o mais(+) antes do igual(=) e tá ótimo, por que do jeito que você fez, sempre que você pegar 100 moedas, você fica com 1 vida. QUE ROUBO! VOCÊ PÕE PRA COMEÇAR COM 3 E ME ROUBA 2?

Como eu disse mano, eu não sei muito de programação, mas sei que esse tipo de erro não pode haver, não sei fez lógica, mas se não é um conselho meu, ajuda, está me ajudando.


Toda forma, valeu a intenção! tudo de bom cara!


Última edição por Lutchero em Dom 24 Jun 2012, 19:16, editado 1 vez(es)
Lutchero
Lutchero

Data de inscrição : 22/06/2012
Reputação : 1
Número de Mensagens : 5
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por All-x Sáb 23 Jun 2012, 22:00

Ok, só foi um problema de formatação que substituiu todos os sinais de + ou de - por espaços em branco. Isso acontece ao ativar e desativar o bbcode na edição do post. Não que eu tenha esquecido.

De qualquer forma, obrigado por avisar. Já estou editando.

Ps: Terá que arcar com o post triplo.

FLWS!
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Foi mal se errei

Mensagem por Lutchero Dom 24 Jun 2012, 19:09

Alex FC escreveu:Ok, só foi um problema de formatação que substituiu todos os sinais de + ou de - por espaços em branco. Isso acontece ao ativar e desativar o bbcode na edição do post. Não que eu tenha esquecido.

De qualquer forma, obrigado por avisar. Já estou editando.

Ps: Terá que arcar com o post triplo.

FLWS!

Laughing Não foi a intenção, eu fui vendo os erros aos poucos enquanto conferia os códigos, a direção decide o que fazer. Por mim tudo bem se forem tão exigentes, mas ressalto que os meus post sendo triplo ou não, ajudam muito a entender o funcionamento das funções correntes e suas sintaxes.
Talvez só editando o post seja melhor, me lembrarei disso, mas não vou mudar isso agora que já fiz. u.u

Desculpa ae se fui rude, vou melhorar nessa área e programar melhor a minha variável emoções. kkkkkk

Abração!
Lutchero
Lutchero

Data de inscrição : 22/06/2012
Reputação : 1
Número de Mensagens : 5
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por All-x Sáb 20 Out 2012, 18:37

Aula atualizada - 20/10/12:

- Melhora na grafia e explicação;
- Atualização das engines.

Ps: As próximas aulas serão atualizadas em breve.

FLWS!
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por LincolnSalles Sex 26 Out 2012, 19:21

Usei esse exemplo no estudo que to fazendo e ficou ok.
Mas toda vez que meu player morre executa o código mudando as variáveis para: vidas-=1 e modedas=0
O problema é que coloquei o create do player para começar com 3 vidas e 0 moedas. Então toda vez que o player morre e reinicia apesar de perder 1 vida, o mesmo volta a ter 3 vidas, porque não sei computar na conta para diminuir a vida perdida no evento create ou em outro lugar.
Como faz para o player reiniciar já computando a vida perdida?
Também gostaria de diminuir o tamanho da fonte do draw_text, tentei font_add após ou antes o draw_text mas não deu certo.
LincolnSalles
LincolnSalles

Data de inscrição : 20/09/2012
Reputação : 0
Número de Mensagens : 40
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por All-x Sex 26 Out 2012, 19:43

Coloque o código que está no Create no evento Other >> Game Start.

O evento create acontece toda vez que o objeto é criado. Logo se a room for reiniciada o create vai acontecer novamente e as vidas voltaram a 3 e as moedas a 0.

Já o evento Game Start ocorre 1 vez só durante a execução do jogo que é quando ele é iniciado.

Para o texto ficar menor há duas maneiras:

-Crie uma font e escolha o tamanho:

#IEM Aula 04 - If/While e Expressões Ss_font

1: Tipo da fonte;
2: Tamanho da fonte;
3: Clique em All para usar letras com acento.

E coloque draw_set_font(NOME DA SUA FONTE) antes da função draw_text.

-Ou use a função draw_text_transformed:

draw_text_transformed(x,y,string,xscale,yscale,angle)
Argumento
Descrição
xposição x do texto
yposição y do texto
stringtexto
xscalelargura do texto
yscalealtura do texto
anglerotação do texto

FLWS
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por LincolnSalles Sex 26 Out 2012, 21:48

Valeu mesmo, consegui mudar a fonte.
Quanto declarar as variaveis moedas e vidas no evento Game Start em vez do create, funcionou enquanto o player está vivo. Quando o mesmo morre da um erro que o game maker ao inicializar a room não acha a variável vidas e moedas. Como sou bem iniciante, não sei mas acredito que é porque o evento só é criado uma vez com o objeto player e se o mesmo é destruído não tem mais essa variável. Tentei declará-la em outro objeto de controle e fazer referência a ele no objeto player, mas como também estava dando erro quando o player morria, resolvi o problema declarando a variável como global com globalvar, conforme eu li no manual do game maker 8, que estou usando junto com as aulas aqui do fórum.
Ficou assim:
globalvar vidas, moedas
{vidas=3;
moedas=0}
Dessa forma ao reiniciar a room com a morte do player o mesmo já começa menos 1 vida e 0 moedas. Valeu pela ajuda.
LincolnSalles
LincolnSalles

Data de inscrição : 20/09/2012
Reputação : 0
Número de Mensagens : 40
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por All-x Sex 26 Out 2012, 22:11

Ok. Se quiser mais alguns exemplo olhe as aulas 2, 10 e 11:

https://gmbr.forumeiros.com/t3569-aulas-de-game-maker-por-alex-fc

A 2 explica como funcionam as variáveis e a 10 e a 11 sobre vidas e saude.

EDIT: Atualizei a aula com as variáveis globais. Não sei onde estava com a cabeça para utilizar variaveis locais nesse exemplo.

É que estou atualizando varias aulas e isso acabou passando batido. Sorry Very Happy.

FLWS!
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por LincolnSalles Sáb 27 Out 2012, 01:55

é eu comecei acompanhando as suas aulas hoje desde a primeira até a 4, e vou chegar até o final dessa sessão de aulas que vc fez, são bem resumidas e uma boa forma de começar a ir familiarizando com o gml, o complemento é o pdf da documentação completa do game maker 8 em portugues que eu tenho, tb ta ajudando muito, vl pelas aulas.
LincolnSalles
LincolnSalles

Data de inscrição : 20/09/2012
Reputação : 0
Número de Mensagens : 40
Prêmios : #IEM Aula 04 - If/While e Expressões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IEM Aula 04 - If/While e Expressões Empty Re: #IEM Aula 04 - If/While e Expressões

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos