Entrar
Últimos assuntos
» Retorno da GMBR!!!por theguitarmester Ter 19 Mar 2024, 22:38
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» 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
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Aula 3 - Puzzle - Sokoban - Modo 1
Puzzle - Sokoban - Modo 1
Olá Pessoal, Olha eu Aqui Denovo ... Voltando Minhas Aulas Quase Extintas OO... mais estou aqui .
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 ... 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 ... 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
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 ... 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 ... 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
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
É Bom Você Ter Lido as Aulas Anteriores, Pois Inicialmente Usaremos Bastante esses Comandos
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á
É Bom Você Ter Lido as Aulas Anteriores, Pois Inicialmente Usaremos Bastante esses Comandos
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
Então Ditarei Como Fiz à Cima em Ordem os Objetos... para manter uma Ordem e para que agente se entenda melhor
obj_player
obj_bloco
obj_ponto
obj_ponto2
obj_parede
Pronto Crie Todos ....
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 ... apartir dessa aula acabou a mordomia ...Irei Explicar Bem Resumidamente... e se não intender é só postar aqui e depois explicarei melhor
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
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 ... 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
keyboard_check_pressed na aula 1 vemos o keyboard_check q me lembre ... 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 ... 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 ...
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 ), 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 . 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 ... então o bloco se moveria 16 pixels para a mesma posição que o player
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 ...
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 .... ou seja no mesmo lugar
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 ... é 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
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
________________________________________________________
PRONTO!!!!! Finalmente Acabou
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
Qualquer um pode fazer um agora
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 ... 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ó ... e assim pode-se aprender mais cada vez mais
EXERCÍCIOS
1º- Crie Fases Legais e Dificeis mais não impossiveis de passar
2º- faça suas sprites novamente se não achar que estão boas... e tente melhora-lás
3º- 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 )
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
Bem Essa Foi A Terceira Aula
Já Calculava que Ela Iria Ser Canssativa Assim Mesmo :/
Mas Mesmo Assim... Com Dedicação Você Aprenderá Mais
AGRADEÇO PELA COLABORAÇÃO DE TODOS
Té + Pessoal
Espero que Gostem
(SEM ENGINE DA AULA - POR FALA DE TEMPO PARA HOSPEDAR)
Última edição por Kevin em Qua 27 Out 2010, 14:53, editado 4 vez(es)
Re: Aula 3 - Puzzle - Sokoban - Modo 1
É 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
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- Games Ranking :
Notas recebidas : A
Data de inscrição : 11/01/2009
Reputação : 8
Número de Mensagens : 1339
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Re: Aula 3 - Puzzle - Sokoban - Modo 1
Ótimo aula, ajudará muitas pessoas aqui no fórum, está muito bem explicado. xD
Luan Maia- Games Ranking :
Notas recebidas : D+C+C+D
Data de inscrição : 01/07/2010
Reputação : 2
Número de Mensagens : 404
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Aula 3 - Puzzle - Sokoban - Modo 1
Otimo tuto cara!
Ficou bem legal e fácil de entender. xD
Agurdo mais tutos de você.
Ficou bem legal e fácil de entender. xD
Agurdo mais tutos de você.
Super Games- Games Ranking :
Notas recebidas : C
Data de inscrição : 10/06/2010
Reputação : 36
Número de Mensagens : 2799
Prêmios :
x 0 x 0 x 0
x 0 x 1 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Game Maker Studio 2.0
- Java
- C ou C++
Re: Aula 3 - Puzzle - Sokoban - Modo 1
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 ... vo tentar explicar o máximo possivel... tentarei sempre explicar todo o código, todos os detalhes ... ta certo que no 1º código fico um texto enorme OO... mais darei um edit para ficar mais legal para ler ... 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
FLWs e VLW Dancity
Luan_Maia escreveu:Ótimo aula, ajudará muitas pessoas aqui no fórum, está muito bem explicado. xD
rsrs... é ... VLW Luan
Super Games escreveu:Otimo tuto cara!
Ficou bem legal e fácil de entender. xD
Agurdo mais tutos de você.
... q bom que ficou fácil de entender ... logo postarei mais assim q possivel :/
bem é isso pessoal... FLWs.. té + ae
Tópicos semelhantes
» Aula 3 - Puzzle - Sokoban - Modo 2
» [Vídeo-Aula] Aula 4 - Variáveis
» Photoshop - Aula 01 - Modo de trabalho e Workspace
» Sokoban - Versão 1
» Sokoban Explorer
» [Vídeo-Aula] Aula 4 - Variáveis
» Photoshop - Aula 01 - Modo de trabalho e Workspace
» Sokoban - Versão 1
» Sokoban Explorer
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|