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


Aula 3 - Puzzle - Sokoban - Modo 1

4 participantes

Ir para baixo

Aula 3 - Puzzle - Sokoban - Modo 1 Empty Aula 3 - Puzzle - Sokoban - Modo 1

Mensagem por Kevin Sex 06 Ago 2010, 22:35

Puzzle - Sokoban - Modo 1

Olá Pessoal, Olha eu Aqui Denovo Happy... Voltando Minhas Aulas Quase Extintas OO... mais estou aqui Happy.
Bem... Chegou a Renovação que Havia Dito à Vocês... Mais qual é Kevin? é simples. Viu que o Modo de Nossa Nova Aula é Puzzle... OK.... e por inquanto Falaremos do Sokoban... certo... e ensinarei fazer de 1 Modo... certo...
Então, Essa Serã Umas Das Grandes Renovações Happy... Mais Como Assim Kevin?
Bem... Praticamente Todos os Estilos de Jogos Terão Outros Modos, Não Exactamente Sempre Número... EX:.
Modo 1
Modo 2

Mais Também com Especificações mais exactas... EX:.

Modo Tiro
Modo Tiro Limite Balas

e outra renovação é que a cada início de 1 Modo da Aula.. ex... aqui é aula 3... iniciarei com essa aula a aula 3 Very Happy... criarei um tópico paralelo da aula 3 para darem suas opniões, pedirem mais modos de jogos e darem sujestões, espero que gostem da novidade.

VALE LEMBRAR Q NEM TODOS OS JOGOS PEDIDOS SERÃO ATENDIDOS.. GRATO Happy



Mais Sobre a Aula:

Nível de dificuldade: iniciante.
Requerimentos:
Versão do GM: 6, 7 ou 8 - Pro ou Lite - testado inicialmente no GM 8 PRO



Inicializando a Aula Aula 3 - Puzzle - Sokoban - Modo 1 529873

É Bom Você Ter Lido as Aulas Anteriores, Pois Inicialmente Usaremos Bastante esses Comandos Very Happy
Se Vc Quiser Criar uma Pasta Exclusiva para a Aula 3 é bom, pois poderá atualizações mais para frente
EX:. Quando Tiver na Aula 9 Poderei Adicionar uma aula na aula 3... é como se fosse um pack esses outros modos

Bem é isso... então vamos lá


SOKOBAN - MODO 1


Bem, Para Iniciarmos, Nós Usaremos bastante Recursos da 1ª Aula, Mais Iremos dar uma recaptulada aqui com os códigos
é EXPRESSAMENTE q em qualquer tutorial ou Aula que tenha um código pronto e tenha a explicação do código vc leia a explicação
para entender melhor o Código e assim manusear Melhor o GML mais Rápido

Vamos Para as Sprites

SPRITES:

Criaremos Inicialmente 8 Sprites

elas serão(na ordem):

spr_direita
spr_baixo
spr_esquerda
spr_cima
bloco
bloco_arrasta
bola_inativa
bola_ativa


Estes Terão que ser respectivamentes assim:

spr_direita - Player para a Direita
spr_baixo - Player para Baixo
spr_esquerda - Player para a Esquerda
spr_cima - Player para Cima
bloco - Bloco/Parede
bloco_arrasta - Bloco/Caixa de Arrastar Pela Fase
bola_inativa - Bola/Ponto q tem que por a caixa em cima
bola_ativa - Bola/Ponto q tem que por a caixa em cima de OUTRA COR


AS PROPRIEDADES/LIMITES/DEFINIÇÕES DELES SÃO:

EXPRESSAMENTE Recomendado que Seja "Todos" de 16X16 de TAMANHO

_________________________________________________________________________

OBJETOS:

OK Vamos Agora para os Objetos... Sim... chegamos Finalmente Nessa Parte cheers

Então Ditarei Como Fiz à Cima em Ordem os Objetos... para manter uma Ordem e para que agente se entenda melhor Happy

obj_player
obj_bloco
obj_ponto
obj_ponto2
obj_parede


Pronto Crie Todos Happy....

Agora Iremos de 1 em 1 E Faremos Todos os Códigos OO... UAU Kevin... mais ta sendo muito mal nessa aula XD... to mesmo Happy... apartir dessa aula acabou a mordomia Smile...Irei Explicar Bem Resumidamente... e se não intender é só postar aqui e depois explicarei melhor Happy

obj_player:

Coloque Qualquer Sprite do Player, Pra Cima, Pra Baixo, Tanto Faz

STEP:
Código:
if !instance_exists(obj_ponto){show_message("ACABOU OS PONTOS!! EBAAAA");room_goto_next();}
if keyboard_check_pressed(vk_right){x+=16;sprite_index=spr_direita}
if keyboard_check_pressed(vk_down){y+=16;sprite_index=spr_baixo}
if keyboard_check_pressed(vk_left){x-=16;sprite_index=spr_esquerda}
if keyboard_check_pressed(vk_up){y-=16;sprite_index=spr_cima}

EXPLICAÇÃO BÁSICA: Aqui Temos Uma Verificação se o obj_ponto; vemos se existe Nenhum na Fase, Se Isso Acontecer Acontece que Aparece Uma Mensagem e Muda de Fase

Mais qual é o Códgio?

if !instance_exists(obj_ponto){show_message("ACABOU OS PONTOS!! EBAAAA");room_goto_next();}

esse ae de cima Happy

mais como ele sabe de tudo isso?

bem como visto anteriormente o IF ele Verifica se Algo esta acontecendo, ou seja, ele faz o jogo se "questionar".

Já o ! antes do instance_exists(obj_ponto), ele Significa NOT ou Não em Português, então assim podemos ver que ele esta negando algo, então temos um questionador e um negador no código

o instance_exists(obj_ponto) ele "vê" se Existe na room o objeto indicado, ele só funciona com o IF, com o Questionador, o instance_exists(obj_ponto) ele verifica se há esse obj na fase... e para verificar se não há? SIMPLES para isso que temos o negador no códgio, ele inverterá o instance_exists(obj_ponto), ao invés dele ver se existe o objeto indicado, ele verificará se não existe, então até agora temos o questionador, e Negador e o Verificador.

o { Serve Para Espaçar um Código, para verificar até onde a ação será executada se caso o verificador ser ativo,e consequentemente tem o } para delimitar o final da ação.

show_message("ACABOU OS PONTOS!! EBAAAA") ele faz criar uma mensagem de "Janela" Parecida com aquela do Windows, Mais do Próprio GM, uma personalizada, o "ACABOU OS PONTOS!! EBAAAA" é o texto que irá aparecer.

; serve para espaçar os códigos, deixar mais organizado e até prevenir alguns Bugs :/...

room_goto_next() esse incrivelmente serve para passar de room Razz... sem precisar usar somas EX:. room_goto(room+1)... ele faz o trabalho todo sózinho, mas... ele apenas avança para a próxima room :/... mais é ótimo para jogos mais simples Very Happy


keyboard_check_pressed na aula 1 vemos o keyboard_check q me lembre Razz... não vimos esse, esse é basicamente a mesma coisa, quando comecei a usar o GM eu não via diferença... mais há e muita OO... o keyboard_check_pressed é ativado um evento ou ação quando for preciosada, sendo assim contado apenas no Impacto, não até quando vc segurar, darei o exemplo do teclado de vc digitando, EX:. quando vc aperta 1 vez e solta "rapidamente" ele escreve a letra apenas uma vez, mas segurando ele escreve várias vezes a mesma ação.... o mesmo é a diferença entre os dois... keyboard_check_pressed ele é apenas ativado uma vez, só pode ser ativo denovo de caso soltar o botão e apertar denovo, já o keyboard_check ele é ativo em quando vc tiver precionando o botão, e o keyboard_check_released (só para complementar) é o mesmo mais é ao soltar o botão, vc pode ficar segurando o botão mais nada acontece, mais quando vc solta a ação é ativada

vk_right, vk_down, vk_left, vk_up, como visto na aula 1, eles são representados pelas setas do Teclado Happy... cada um respectivamente com o seu nome. EX:. Left = Esquerda/Seta para a esquerda.

x, y São as Coordenadas do Objeto, ou seja, a posição x é a posição dele em horizontal e y em vertical, ver mais explicações sobre na aula 1 Happy...

sprite_index Muda a Sprite Indicada, No Caso Não há muito oq dizer, esse código apenas muda a figura do Objeto para a identificada na frente do =... EX:. sprite_index=spr_cima //TROCARIA A SPRITE PARA O CHAR PARA CIMA
__

Colisão com obj_bloco
Código:
if place_meeting(x+16,y,obj_parede){x=xprevious;}
if place_meeting(x,y+16,obj_parede){y=yprevious;}
if place_meeting(x-16,y,obj_parede){x=xprevious;}
if place_meeting(x,y-16,obj_parede){y=yprevious;}
if place_meeting(x+16,y,obj_bloco){x=xprevious;}
if place_meeting(x,y+16,obj_bloco){y=yprevious;}
if place_meeting(x-16,y,obj_bloco){x=xprevious;}
if place_meeting(x,y-16,obj_bloco){y=yprevious;}

EXPLICAÇÃO BÁSICA: Aqui Temos Verificação de que Lado estamos Colidindo com o obj_parede, dependendo da posição, uma ação... mais como?

place_meeting ele verifica em q "distância" ele ta colidindo, um exemplo: if place_meeting(x+16,y,obj_parede), aqui ele verifica se o player no caso tiver COLIDINDO 16 pixels antes do obj_parede ele ativa uma ação
xprevious é a posição do x anteriormente dessa posição (Creio que verificado por tempo Happy), mesmo com o yprevious

Colisão com obj_parede
Código:
x=xprevious
y=yprevious


EXPLICAÇÃO BÁSICA: esse códgio é simples, e não darei muita explicação por falar para que serve à cima, mais ele faz com que o player não passe da parede

__________________________________

obj_bloco:

Coloque a Sprite bloco_arrasta nele

Colisão com obj_player
Código:
x+=other.x-other.xprevious
y+=other.y-other.yprevious

EXPLICAÇÃO BÁSICA: é uma soma de Posições, para fazer com que o bloco se Mova... Incrivel neah? bem... só isso faz já o bloco se mover, se quiser dar uma olhada é só por o player e uns blocos desse na room Happy. mais como isso funciona? explicarei com números ficticios

pensamos que other.x fosse = a 32
other.xprevious fosse = a 16

se subtrairmos isso teremos o nº 16 Very Happy... então o bloco se moveria 16 pixels para a mesma posição que o player Happy
o mesmo com o y+=other.y-other.yprevious

darei exemplo com números maiores

other.x é igual a 216
e other.xprevious é igual a 200

o resultado subtraindo eles seria 16 OO... ta na cara neah? mais o bloco se moverá 16 pixel para o mesmo lado que o player Happy...


Colisão com obj_bloco e Colisão com obj_parede
Código:
x=xprevious
y=yprevious

__________________________________

obj_ponto:

Coloque a sprite do bola_inativa

Colisão com obj_bloco
Código:
instance_create(x,y,obj_ponto2)
instance_destroy()

EXPLICAÇÃO BÁSICA: esse códgio é simples, já devem saber oq é... mais explicarei àqueles que não sabem
instance_create(x,y,objeto) ele cria um novo objeto na fase, o objeto criado é o especificado no 3 argumento (3ª coluna) nas posições x e y ali... no caso do código ele criará o obj_ponto2 na posição x e y dele Happy.... ou seja no mesmo lugar Very Happy
instance_destroy() ele Destroy o Objeto, essa é a parte mais triste, ele criou um objeto mais ele se sacrificou... mais lembra do código do STEP do player? isso é importante acontecer :/
__________________________________

obj_ponto2:

Coloque a sprite do bola_ativa

CREATE

Código:
alarm[0]=1

EXPLICAÇÃO BÁSICA: aqui esse código ativa o alarme 0 com tempo 1 de STEP Happy... é o tempo mais curto q se pode colocar no alarm oO... isso é bom para ativar ações rápidas como por exemplo na situação à seguir, para que não ocorra Bugs é feito isso Happy

Alarm 0

Código:
if !place_meeting(x,y,obj_bloco){instance_create(x,y,obj_ponto)
instance_destroy()}
alarm[0]=1

EXPLICAÇÕES EM TODA AULA À CIMA Happy

________________________________________________________

PRONTO!!!!! Finalmente Acabou Happy

Cansativa a Aula? Sim XD.... mais aprendeu alguma coisa? espero que sim oO...
Coloque Todas as coisas na room do jeito que quiser e pronto.. seu sokoban personalizado já pode ser criado sem problemas Happy
Qualquer um pode fazer um agora Happy

Aqui Acaba Mais Uma Aula, Como Dito à Cima esse é apenas 1 Modo de Fazer o Sokoban, Poderá Ter Mais Como Poderá Não Ter... Tudo Depende da Minha Imaginação e do Apoio de Vocês Very Happy... Aulas 3 podem surgir mais à frente mesmo que tenha uma aul mais avançada já iniciada? SIM.. pois da aula 3 à aula 10 são modos de jogos, e não daria para falar de todos em 1 aula só Very Happy... e assim pode-se aprender mais cada vez mais Very Happy




EXERCÍCIOS formado


- Crie Fases Legais e Dificeis mais não impossiveis de passar

- faça suas sprites novamente se não achar que estão boas... e tente melhora-lás

- Adicione mais sistemas no Jogo, Dinheiro, Chaves Portas, VOCÊ PODE! pois foi vc q Criou!

(APENAS LEMBRANDO PARA DEIXAR UM BACKUP DO JOGO PARA PRÓXIMO MODO!!! SE TIVER UM NOVO MODO DO SOKOBAN, FATALMENTE SERÁ USADA ESSA ENGINE Happy)



COMENTE SOBRE A AULA E DEIXE SEU COMENTÁRIO SE GOSTOU OU NÃO
FALE OQ VC ACHA QUE DEVE MELHORAR
RECLAME, DE SUGESTÃO É SEU DIREITO surpreso2

Bem Essa Foi A Terceira Aula
Já Calculava que Ela Iria Ser Canssativa Assim Mesmo :/

Mas Mesmo Assim... Com Dedicação Você Aprenderá Mais Aula 3 - Puzzle - Sokoban - Modo 1 838487

AGRADEÇO PELA COLABORAÇÃO DE TODOS

Té + Pessoal

Espero que Gostem Razz

(SEM ENGINE DA AULA - POR FALA DE TEMPO PARA HOSPEDAR) zangado


Última edição por Kevin em Qua 27 Out 2010, 14:53, editado 4 vez(es)
Kevin
Kevin

Games Ranking : Nota C

Notas recebidas : C - C
Data de inscrição : 14/11/2008
Reputação : 9
Número de Mensagens : 1166
Prêmios : Aula 3 - Puzzle - Sokoban - Modo 1 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

http://www.programaCODM.webs.com/

Ir para o topo Ir para baixo

Aula 3 - Puzzle - Sokoban - Modo 1 Empty Re: Aula 3 - Puzzle - Sokoban - Modo 1

Mensagem por Dancity Sex 06 Ago 2010, 22:45

É isso ae kevin ;D Continue com as aulas. São muito boas para iniciantes.
Não é aquela aula que o cara só põe código e nem fala direito.
É do tipo que está já toda "exposta" com tudinho explicado
Dancity
Dancity

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 11/01/2009
Reputação : 8
Número de Mensagens : 1339
Prêmios : Aula 3 - Puzzle - Sokoban - Modo 1 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 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

Aula 3 - Puzzle - Sokoban - Modo 1 Empty Re: Aula 3 - Puzzle - Sokoban - Modo 1

Mensagem por Luan Maia Sex 06 Ago 2010, 22:49

Ótimo aula, ajudará muitas pessoas aqui no fórum, está muito bem explicado. xD

flw
Luan Maia
Luan Maia

Games Ranking : Sem avaliações

Notas recebidas : D+C+C+D
Data de inscrição : 01/07/2010
Reputação : 2
Número de Mensagens : 404
Prêmios : Aula 3 - Puzzle - Sokoban - Modo 1 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

Aula 3 - Puzzle - Sokoban - Modo 1 Empty Re: Aula 3 - Puzzle - Sokoban - Modo 1

Mensagem por Super Games Sáb 07 Ago 2010, 10:23

Otimo tuto cara!
Ficou bem legal e fácil de entender. xD
Agurdo mais tutos de você.
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 : Aula 3 - Puzzle - Sokoban - Modo 1 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

Aula 3 - Puzzle - Sokoban - Modo 1 Empty Re: Aula 3 - Puzzle - Sokoban - Modo 1

Mensagem por Kevin Sáb 07 Ago 2010, 14:38

Dancity escreveu:É isso ae kevin ;D Continue com as aulas. São muito boas para iniciantes.
Não é aquela aula que o cara só põe código e nem fala direito.
É do tipo que está já toda "exposta" com tudinho explicado

é sim Razz... vo tentar explicar o máximo possivel... tentarei sempre explicar todo o código, todos os detalhes Razz... ta certo que no 1º código fico um texto enorme OO... mais darei um edit para ficar mais legal para ler Very Happy... mais só lembrando ao pessoal que eu explicarei mais poucas vezes, então é bom sempre ler as aulas continuamente (todas... pelo menos o modo 1 de casa aula) para que vc saiba oq vc esta a fazer Happy

FLWs e VLW Dancity Very Happy

Luan_Maia escreveu:Ótimo aula, ajudará muitas pessoas aqui no fórum, está muito bem explicado. xD

flw

rsrs... é Very Happy... VLW Luan Happy

Super Games escreveu:Otimo tuto cara!
Ficou bem legal e fácil de entender. xD
Agurdo mais tutos de você.

Happy... q bom que ficou fácil de entender Very Happy... logo postarei mais assim q possivel :/

bem é isso pessoal... FLWs.. té + ae Happy

flw
Kevin
Kevin

Games Ranking : Nota C

Notas recebidas : C - C
Data de inscrição : 14/11/2008
Reputação : 9
Número de Mensagens : 1166
Prêmios : Aula 3 - Puzzle - Sokoban - Modo 1 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

http://www.programaCODM.webs.com/

Ir para o topo Ir para baixo

Aula 3 - Puzzle - Sokoban - Modo 1 Empty Re: Aula 3 - Puzzle - Sokoban - Modo 1

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


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