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
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


[Tutorial] Recursos externos

+2
SIGILOSO
Fuzenrad
6 participantes

Ir para baixo

externos - [Tutorial] Recursos externos Empty [Tutorial] Recursos externos

Mensagem por Fuzenrad Dom 29 Ago 2010, 13:36

Como usar recursos externos

Alguns tem essa curiosidade, já procuraram sobre, mas a falta de explicações complica bastante, no fórum eu não encontrei um tutorial sobre o assunto que não se aprofundasse tanto quanto eu pretendo nesse. É relativamente fácil usar recursos externos em seus jogos, fazendo-os de forma mais profissional e dinâmica.

Observação: Ao usar recursos externos lembre-se que mudanças externas podem ser feitas por qualquer um, entretanto jogos com a possibilidade de modificação de alguns recursos, podem fazer surgir layouts personalizados, playlist de músicas a escolha do jogador entre outros.

As principais funções para manipulação de arquivos externos são:

Música e efeitos sonoros
sound_add()
sound_replace()
sound_delete()

Backgrounds e imagens fixas
background_add()
background_replace()
background_delete()

Sprites e imagens móveis
sprite_add()
sprite_replace()
sprite_delete()

Eu recomendo usar o comando _add() para uso geral, no qual não existe a imagem no source, dependendo exclusivamente do arquivo externo, o _replace() é recomendado quando se tem uma imagem padrão caso não exista o arquivo e _delete() pra liberar a memória do jogo, fazendo-o assim ficar mais rápido. Em geral dominar essas funções com perfeição e harmonia requer estudo, tentativas e principalmente dedicação.

Esses comandos são muito bons para arquivos grandes, como músicas no formato mp3 ou wav, imagens de fundo etc.

Arquivos de som
Pra começar vou carregar uma música apartir de um arquivo e então executá-la. No evento Create (deve ser nesse evento, caso constrário o arquivo seria carregado eternamente, travando o jogo):

Código:
dir_mus1=working_directory+"\musica.mp3"

if file_exists(dir_mus1) {
musica1=sound_add(dir_mus1,3,1)

if !sound_isplaying(musica1) sound_play(musica1)}
Nesse caso o jogo carrega o som na variável musica1 somente se o arquivo existir e toca somente se a música já não está. O 3 representa o tipo de som, deve ter muito cuidado, pois dependendo do formato, não funcionará corretamente. Os tipos são:
0 Sons normais (como explosões, clicks, pulos etc) geralmente no formato .wav
1 Música de fundo, formatos mid
2 Sons 3D (outro tipo de configuração)
3 Reprodução externa (como o mmplayer), formatos wma e mp3

Código:
sound_replace(snd_musica1,dir_mus1,3,1)
Tem a mesma finalidade da função anterior, porém agora será substituído o som snd_musica1 pelo arquivo no diretório.

Em um evento qualquer, você pode indicar para liberar a memória desse arquivo, por exemplo, Alarm[0], colocando:

Código:
if !sound_isplaying(musica1) sound_delete(musica1)

Imagens/backgrounds
Muito útil quando você pretende lançar diferentes layouts pro jogo, mudando muitas vezes somente o background, isso abre uma enorme ramificação de possibilidades.

Seu funcionamento é muito semelhante aos sons, porém requer um pouco mais de atenção, já que as imagens devem ter o tamanho da tela e "encaixar" no designer do jogo, do contrário você terá um resultado "feio" visualmente.

Código:
dir_fnd1=working_directory+"\fundo.png"

if file_exists(dir_fnd1)
fundo1=background_add(dir_fnd1,0,1)

background_index[0]=fundo1

Eu indiquei um background para o jogo apartir de um arquivo (lembre-se de ativar o "Visible when room starts" em "Background 0" nas configurações da room).

Para descartar um background, você pode indicar uma mudança de room, fica a critério, basta inserir:

Código:
background_delete(fundo1)

Sprites
Código:
dir_sp1=working_directory+"\sprite.png"

if file_exists(dir_sp1)
sprite1=sprite_add(dir_sp1,0,0,0,0,0)

sprite_index=sprite1
Trabalha somente no objeto em que o código está, no caso será adicionado uma nova sprite e a anterior (caso exista) será descartada.

Cuidado ao descartar uma sprite (sprite_delete), você deve indicar uma nova caso contrário não será mostrado nada.
Fuzenrad
Fuzenrad

Games Ranking : Nota A

Notas recebidas : A-A-A-A-B
Data de inscrição : 04/07/2010
Reputação : 46
Número de Mensagens : 1063
Prêmios : externos - [Tutorial] Recursos externos Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 1

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

Ir para o topo Ir para baixo

externos - [Tutorial] Recursos externos Empty Re: [Tutorial] Recursos externos

Mensagem por SIGILOSO Dom 29 Ago 2010, 14:13

Eu levei mto tempo pra aprender a usar as funções _add, e ainda me complico bastante. Certamente esse tuto me ajudará muito em projetos maiores, e tbm poderá ajudar outros usuários que queiram jogos mais rápidos ou aplicativos personalisávies!
Parabéns, um ótimo tuto, mto bem explicado e que vai direto ao ponto!
afro
SIGILOSO
SIGILOSO

Games Ranking : Nota A

Notas recebidas : A+A+A+A+A+A+A
Data de inscrição : 06/06/2009
Reputação : 39
Número de Mensagens : 2267
Prêmios : externos - [Tutorial] Recursos externos Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 4 Prata x 2 Bronze x 1

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

Ir para o topo Ir para baixo

externos - [Tutorial] Recursos externos Empty Re: [Tutorial] Recursos externos

Mensagem por Super Games Dom 29 Ago 2010, 14:31

Realmente, vai ajudara bastante.
Me ajudou bastante, pois sou ruim nessa função.
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 : 2800
Prêmios : externos - [Tutorial] Recursos externos 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
  • Godot
  • Javascript
  • C ou C++


Ir para o topo Ir para baixo

externos - [Tutorial] Recursos externos Empty Re: [Tutorial] Recursos externos

Mensagem por Salathiel Dom 29 Ago 2010, 16:00

E muito legal essa função _add.
Me responde uma coisa:
Como eu coloco para o sprite que eu criar não fique em formatos: .gif etc,
porque se ficar em uns desses formatos da para a pessoa editar.
Salathiel
Salathiel

Data de inscrição : 29/05/2010
Reputação : 3
Número de Mensagens : 346
Prêmios : externos - [Tutorial] Recursos externos 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

http://salathiel1337.blogspot.com/

Ir para o topo Ir para baixo

externos - [Tutorial] Recursos externos Empty Re: [Tutorial] Recursos externos

Mensagem por †Ceifador Dom 29 Ago 2010, 16:09

Se não quiser que o usuário edite os arquivos é mais prático não deixá-los acessíveis. Evitar isso de outro modo requer que os recursos sejam convertidos para formatos próprios e não é algo simples de fazer.
†Ceifador
†Ceifador

Data de inscrição : 28/08/2010
Reputação : 0
Número de Mensagens : 154
Prêmios : externos - [Tutorial] Recursos externos Empty

Medalhas x 0 Tutoriais x 1 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

externos - [Tutorial] Recursos externos Empty Re: [Tutorial] Recursos externos

Mensagem por Fuzenrad Dom 29 Ago 2010, 16:26

Como eu coloco para o sprite que eu criar não fique em formatos: .gif etc, porque se ficar em uns desses formatos da para a pessoa editar.
Existe uma maneira de modificar a extenção, entretanto não protege efetivamente o arquivo, afinal continua sendo uma imagem ou um som. Seria assim, você renomeia o arquivo pra qualquer extenção, por exemplo imagem.res ou som.res, mas antes de carregar o arquivo, você deve renomear para serem lidos como imagem ou som:

Código:
file_rename("imagem.res","imagem.png")
Lembre-se de que ao finalizar o jogo, coloque a função inversa, pra voltar o nome do arquivo.

Código:
file_rename("imagem.png","imagem.res")
Como eu disse, não é seguro, mas visualmente resolve o problema.
Fuzenrad
Fuzenrad

Games Ranking : Nota A

Notas recebidas : A-A-A-A-B
Data de inscrição : 04/07/2010
Reputação : 46
Número de Mensagens : 1063
Prêmios : externos - [Tutorial] Recursos externos Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 1

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

Ir para o topo Ir para baixo

externos - [Tutorial] Recursos externos Empty Re: [Tutorial] Recursos externos

Mensagem por gambit Dom 29 Ago 2010, 18:00

como se usa em tile
gambit
gambit

Data de inscrição : 22/06/2008
Reputação : 8
Número de Mensagens : 162
Prêmios : externos - [Tutorial] Recursos externos 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

http://ssqt.blogspot.com.br/

Ir para o topo Ir para baixo

externos - [Tutorial] Recursos externos Empty Re: [Tutorial] Recursos externos

Mensagem por Fuzenrad Dom 29 Ago 2010, 19:08

Funciona da mesma forma, se você substituir um background que está sendo usado como tile, ele continua sendo mostrado porém com o novo arquivo, no caso esse background deve existir no source para você substituí-lo.

Código:
background_replace(bkgrd,working_directory+"\fundo.png",0,0)
Fuzenrad
Fuzenrad

Games Ranking : Nota A

Notas recebidas : A-A-A-A-B
Data de inscrição : 04/07/2010
Reputação : 46
Número de Mensagens : 1063
Prêmios : externos - [Tutorial] Recursos externos Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 1

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

Ir para o topo Ir para baixo

externos - [Tutorial] Recursos externos Empty Re: [Tutorial] Recursos externos

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