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
» 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


[Tutorial] Recursos externos

+2
SIGILOSO
Fuzenrad
6 participantes

Ir para baixo

[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 : [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

[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 : [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

[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 : 2799
Prêmios : [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
  • C ou C++


Ir para o topo Ir para baixo

[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 : [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

[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 : [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

[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 : [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

[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 : [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

[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 : [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

[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