Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Ontem à(s) 13:33
» É possível fazer istó no game maker
por William Lima Ontem à(s) 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
Fazendo um "Load Game"
+8
RodrigoM.
wac2007
fonetico
CPinheiro
SIGILOSO
tata139
doidobr
All-x
12 participantes
Página 1 de 2
Página 1 de 2 • 1, 2
Fazendo um "Load Game"
Pra que fazer um load?
Quase tudo o que usamos dentro do nosso executável, damos o nome de recurso. Se você quer adicionar uma música para servir de tema na "primeira fase", ela passará a ser um recurso de áudio. Um sprite ou um background são recursos de imagem.
Quando o nosso jogo é inicializado (quando você executa o exe), a engine do Game Maker precisa preparar esses recursos antes de usá-los no DirectX, armazenando-os na memória de vídeo (que é mais rápida) e atribuindo à eles, endereços para que sejam "chamados" quando forem necessários.
A esse processo de carregamento, dá-se o nome de "Armazenamento em Buffer", ou simplesmente o popular "Load Game". O fato é que esse processo, apesar de ser muito rápido, pode levar muito tempo quando os recursos que usamos são muitos ou grandes, deixando o jogador impaciente devido à espera.
Em outras ocasiões, quando a memória de que dispomos para armazenar esses recursos é limitada ou o hardware é limitado (uma placa de vídeo de baixa qualidade ou um pc mais antigo, por exemplo), faz-se necessário, racionar de forma ideal o uso desses recursos atravéz de armazenamentos bem planejados.
Por padrão (e até uma questão de facilidade), o Game Maker armazena todos os recursos dentro do executável e "carrega" todos eles pra memória no momento em que o jogo é iniciado. Em resumo, sprites e sons que seriam usados somente na última room, serão armazenados na memória e farão parte de todo o processamento do jogo, desde a primeira room até o momento em que forem usados por você. Usar mais do que o necessário pode tornar o jogo lento!
O que vamos fazer aqui é organizar o uso desses recursos para deixar o jogo extremamente rápido, mesmo que sejam recursos grandes. Para isso, o seu projeto tem que estar "na ponta da lingua". Você tem que ter conhecimento de tudo o que está usando e o que está descartado, durante todo o jogo.
O primeiro passo para se fazer um “load game” é saber exatamente o que você vai precisar armazenar na memória. Resources (sprites, sons, scripts, etc.) pequenos normalmente podem ser armazenados junto ao executável sem problemas, pois isso vai tornar o carregamento do jogo mais rápido, e o tempo de espera do jogador menor.
Quando se trata de resources cujo tamanho ultrapassa 1024 Kb (1 Mb), é melhor ficar atento, pois dependendo da quantidade desses resources dentro do seu exe, o processo do carregamento inicial pode se tornar bastante lento. Há casos em que muitos sprites (mesmo os pequenos) dentro do executável também pode causar isso.
Aqui, nesse tutorial, nós vamos fazer um “load game”, que basicamente é deixar esses resources maiores fora do executável e depois adicioná-los ao jogo à medida em que eles se tornem necessários. Não haveria necessidade, por exemplo, de carregar um sprite pra memória na primeira room se ele for usado somente na última, certo?
É importante lembrar também, o quanto a organização faz-se necessária nessas horas. Tente organizar os componentes do seu game de uma forma que fique fácil localizá-los quando for fazer o “load game”. Use essa regrinha: organização é a chave!
Adicionando um sprite:
sprite_add(nomedoarquivo,subimagens,precise,transparente,esmaecerbeiradas,precarregar,pivox,pivoy)
Essa função armazena um sprite na memória através do nome do arquivo. Mesmo que o Game Maker suporte arquivos png, psd (Photoshop), psp (Paint Shop Pro), tiff (Macintosh), entre outros, somente arquivos jpg, gif e bmp podem ser usados através dessa função!
O número de subimagens também deve ser determinado aqui, caso você não use um arquivo gif. No caso de strips em bitmaps ou jpg, defina o número de subimagens que o sprite terá.
"precise", determina se os pixels do sprite devem ser checados no momento em que houver uma colisão (do objeto que usa esse sprite) ou se somente a bounding box deve ser checada. Leia [esse] tutorial para mais detalhes sobre "precise", "esmaecerbeiradas" e "precarregar".
"pivox" e "pivoy" determinam os eixos de x e y do sprite, respectivamente.
Moçada, essa função é só um exemplo de como adicionamos algo ao jogo. Se você quiser adicionar sons ou backgrounds as funções são sound_add() e background_add() respectivamente. Dê uma conferida rápida no help do GM pra entendê-las melhor, ok?
Lembre-se de que qualquer função de adição de recursos do Game Maker retorna o id para que o recurso seja usado. Quando ocorrer algum tipo de erro, o número (-1) é retornado por ela. No exemplo abaixo, vamos armazenar esse retorno em uma variável, para que o sprite possa ser usado futuramente:
Usando o sprite:
Removendo um sprite:
sprite_delete(index)
Essa função remove definitivamente um sprite que esteja na memória como recurso. Se um sprite for removido por essa função, ele não poderá ser usado novamente até que o jogo seja reinicializado ou que o sprite seja recarregado pela função sprite_add(). Não custa lembrar que essa função não remove nenhum arquivo do seu pc.
Separe primeiro, todos os resources que você deseja manter fora do executável quando compilado. No exemplo que daremos aqui, o nosso jogo terá vinte sprites que deverão ser carregados pra memória, durante uma parte qualquer do jogo. Vamos supor que esses sprites fossem usados na segunda ou terceira room do jogo.
Criaremos um mecanismo de “load game” que seja flexível, fácil e o mais automatizado possível. A idéia também é mostrar para o jogador uma barra de progresso do carregamento.
É importante saber a quantidade de resources que serão carregados, para que a barra de progresso possa ser desenhada. Supondo que 100 recursos sejam o total, 25 recursos carregados com sucesso serão 1/4 da barra. Se a barra possui 300 pixels de largura, por exemplo, a representação do "load game" teria 300/4 = 75 pixels.
Com todos os resources devidamente separados, crie um script chamado LoadDefine. Dentro dele, copie e cole o código abaixo. Esse código vai auxiliar o desenho de uma barra de progresso que faremos logo em seguida.
Adicione uma fonte de sua preferência e altere a variável ProgressbarFont descrita no script acima. No exemplo, a fonte se chama Font_TahomaRegular e será usada no texto de exibição de progresso.
Agora, o desenho da barra propriamente dito. Crie um script chamado LoadProcess e cole o código abaixo:
Por último, vamos criar um script para auxiliar o controle da barra de progresso. Chame-o de LoadRegister e cole o código abaixo:
A estrutura montada
O que fizemos foi criar um padrão de variáveis, que contém todas as características da barra de progresso. O array vai de zero à seis e cada índice controla uma característica particular. São eles:
Loading[0] = Nome da barra de progresso, pode ser controlado para porcentagem.
Loading[1] = Posição X da barra.
Loading[2] = Posição Y da barra.
Loading[3] = Tamanho horizontal.
Loading[4] = Tamanho vertical.
Loading[5] = Número de passos no total (steps)
Loading[6] = Quantidade de passos concluídos.
Dessa forma, você pode controlar tudo à seu gosto, apenas alterando essas variáveis. Pór exemplo:
Dividimos também, o processo inteiro em três etapas, que são: 1) definir a barra de progresso, 2) Carregar o resource e 3) Registrar o carregamento na barra.
Agora, crie um objeto qualquer para que ele se encarregue de buscar os resources que estão do lado de fora do executável pra memória. No evento create desse objeto nós vamos usar o script LoadDefine.
A sintaxe de uso do script é: LoadDefine(Texto, Posição x, y, Tamanho horizontal, vertical, Total itens, itens carregados). Lembrando que o número de itens a serem carregados já é sabido por nós: 20 itens.
O texto exibido pela barra pode ser o nome do arquivo ou o percentual do processo. Você pode controlar isso à sua maneira pela variável Loading[0]. Se você quiser que a barra exiba a porcentagem do carregamento, inclua a string ‘/%’ ao texto. Por exemplo:
No evento Draw desse objeto coloque a linha abaixo. Esse script se encarregará de desenhar a barra de progresso na tela, de acordo com as características que já definimos pra ela:
Registrando o que foi carregado
As funções para adicionar recursos durante a execução do jogo são, basicamente:
sprite_add() – Adiciona um novo sprite para ser usado. A função retorna o index.
sound_add() - Adiciona um novo som para ser usado. A função retorna o index.
background_add() - Adiciona um novo background para ser usado. A função retorna o index.
Essas funções, adicionam recursos ao jogo, mediante um endereço. O endereço do ficheiro deve ser especificado (onde o arquivo está), obviamente. Quando houver algum erro, ela retornará o valor (-1).
Agora, os scripts vão se encarregar da barra de progresso enquanto nós definimos o que vamos carregar. Para cada recurso carregado, dentre os vinte especificados use o script LoadRegister() logo em seguida. Exemplo:
Você pode criar scripts para carregar separadamente o que vai precisar em cada etapa do jogo. Isso vai deixar o jogo organizado e o tempo de espera do jogador menor.
Você pode baixar o exemplo em gml clicando AQUI. Boa sorte!
Abraço pra vocês. Capitão Commando.
Quase tudo o que usamos dentro do nosso executável, damos o nome de recurso. Se você quer adicionar uma música para servir de tema na "primeira fase", ela passará a ser um recurso de áudio. Um sprite ou um background são recursos de imagem.
Quando o nosso jogo é inicializado (quando você executa o exe), a engine do Game Maker precisa preparar esses recursos antes de usá-los no DirectX, armazenando-os na memória de vídeo (que é mais rápida) e atribuindo à eles, endereços para que sejam "chamados" quando forem necessários.
A esse processo de carregamento, dá-se o nome de "Armazenamento em Buffer", ou simplesmente o popular "Load Game". O fato é que esse processo, apesar de ser muito rápido, pode levar muito tempo quando os recursos que usamos são muitos ou grandes, deixando o jogador impaciente devido à espera.
Em outras ocasiões, quando a memória de que dispomos para armazenar esses recursos é limitada ou o hardware é limitado (uma placa de vídeo de baixa qualidade ou um pc mais antigo, por exemplo), faz-se necessário, racionar de forma ideal o uso desses recursos atravéz de armazenamentos bem planejados.
Por padrão (e até uma questão de facilidade), o Game Maker armazena todos os recursos dentro do executável e "carrega" todos eles pra memória no momento em que o jogo é iniciado. Em resumo, sprites e sons que seriam usados somente na última room, serão armazenados na memória e farão parte de todo o processamento do jogo, desde a primeira room até o momento em que forem usados por você. Usar mais do que o necessário pode tornar o jogo lento!
O que vamos fazer aqui é organizar o uso desses recursos para deixar o jogo extremamente rápido, mesmo que sejam recursos grandes. Para isso, o seu projeto tem que estar "na ponta da lingua". Você tem que ter conhecimento de tudo o que está usando e o que está descartado, durante todo o jogo.
Primeiro passo
O primeiro passo para se fazer um “load game” é saber exatamente o que você vai precisar armazenar na memória. Resources (sprites, sons, scripts, etc.) pequenos normalmente podem ser armazenados junto ao executável sem problemas, pois isso vai tornar o carregamento do jogo mais rápido, e o tempo de espera do jogador menor.
Quando se trata de resources cujo tamanho ultrapassa 1024 Kb (1 Mb), é melhor ficar atento, pois dependendo da quantidade desses resources dentro do seu exe, o processo do carregamento inicial pode se tornar bastante lento. Há casos em que muitos sprites (mesmo os pequenos) dentro do executável também pode causar isso.
Aqui, nesse tutorial, nós vamos fazer um “load game”, que basicamente é deixar esses resources maiores fora do executável e depois adicioná-los ao jogo à medida em que eles se tornem necessários. Não haveria necessidade, por exemplo, de carregar um sprite pra memória na primeira room se ele for usado somente na última, certo?
É importante lembrar também, o quanto a organização faz-se necessária nessas horas. Tente organizar os componentes do seu game de uma forma que fique fácil localizá-los quando for fazer o “load game”. Use essa regrinha: organização é a chave!
Adicionando um sprite:
sprite_add(nomedoarquivo,subimagens,precise,transparente,esmaecerbeiradas,precarregar,pivox,pivoy)
Essa função armazena um sprite na memória através do nome do arquivo. Mesmo que o Game Maker suporte arquivos png, psd (Photoshop), psp (Paint Shop Pro), tiff (Macintosh), entre outros, somente arquivos jpg, gif e bmp podem ser usados através dessa função!
O número de subimagens também deve ser determinado aqui, caso você não use um arquivo gif. No caso de strips em bitmaps ou jpg, defina o número de subimagens que o sprite terá.
"precise", determina se os pixels do sprite devem ser checados no momento em que houver uma colisão (do objeto que usa esse sprite) ou se somente a bounding box deve ser checada. Leia [esse] tutorial para mais detalhes sobre "precise", "esmaecerbeiradas" e "precarregar".
"pivox" e "pivoy" determinam os eixos de x e y do sprite, respectivamente.
Moçada, essa função é só um exemplo de como adicionamos algo ao jogo. Se você quiser adicionar sons ou backgrounds as funções são sound_add() e background_add() respectivamente. Dê uma conferida rápida no help do GM pra entendê-las melhor, ok?
Lembre-se de que qualquer função de adição de recursos do Game Maker retorna o id para que o recurso seja usado. Quando ocorrer algum tipo de erro, o número (-1) é retornado por ela. No exemplo abaixo, vamos armazenar esse retorno em uma variável, para que o sprite possa ser usado futuramente:
- Código:
Sprite_Nadar := sprite_add('spr_nadar.gif',0,false,true,false,true,20,20);
Usando o sprite:
- Código:
sprite_index := Sprite_Nadar;
Removendo um sprite:
sprite_delete(index)
Essa função remove definitivamente um sprite que esteja na memória como recurso. Se um sprite for removido por essa função, ele não poderá ser usado novamente até que o jogo seja reinicializado ou que o sprite seja recarregado pela função sprite_add(). Não custa lembrar que essa função não remove nenhum arquivo do seu pc.
Exibindo o carregamento.
Separe primeiro, todos os resources que você deseja manter fora do executável quando compilado. No exemplo que daremos aqui, o nosso jogo terá vinte sprites que deverão ser carregados pra memória, durante uma parte qualquer do jogo. Vamos supor que esses sprites fossem usados na segunda ou terceira room do jogo.
Criaremos um mecanismo de “load game” que seja flexível, fácil e o mais automatizado possível. A idéia também é mostrar para o jogador uma barra de progresso do carregamento.
É importante saber a quantidade de resources que serão carregados, para que a barra de progresso possa ser desenhada. Supondo que 100 recursos sejam o total, 25 recursos carregados com sucesso serão 1/4 da barra. Se a barra possui 300 pixels de largura, por exemplo, a representação do "load game" teria 300/4 = 75 pixels.
Com todos os resources devidamente separados, crie um script chamado LoadDefine. Dentro dele, copie e cole o código abaixo. Esse código vai auxiliar o desenho de uma barra de progresso que faremos logo em seguida.
- Código:
Loading[0] := argument0; // Caption da barra de Loading.
Loading[1] := argument1; // Posição X.
Loading[2] := argument2; // Posição Y.
Loading[3] := argument3; // Tamanho horizontal.
Loading[4] := argument4; // Tamanho vertical.
Loading[5] := argument5; // Número de passos (steps) para 100%.
Loading[6] := argument6; // Ítens carregados.
// Aqui, definimos algumas características da nossa barra de progresso:
ProgressbarFont := Font_TahomaRegular;
ProgressbarFontColor := c_black;
ProgressbarColor := make_color_rgb(230,230,230);
ProgressbarColorLight := c_white;
ProgressbarColorShadow := make_color_rgb(90,90,90);
ProgressbarRoutineColorTopLeft := make_color_rgb(95,170,110);
ProgressbarRoutineColorTopRight := make_color_rgb(95,170,110);
ProgressbarRoutineColorBottomLeft := make_color_rgb(165,220,160);
ProgressbarRoutineColorBottomRight := make_color_rgb(165,220,160);
/*
Esse tempo é usado como tolerância para que um resource seja carregado
corretamente antes que o próximo possa ser lido pelo Game Maker. Ele
é medido em milisegundos e o padrão é 100.
*/
ProgressbarReadToleranceTime := 100;
Adicione uma fonte de sua preferência e altere a variável ProgressbarFont descrita no script acima. No exemplo, a fonte se chama Font_TahomaRegular e será usada no texto de exibição de progresso.
Agora, o desenho da barra propriamente dito. Crie um script chamado LoadProcess e cole o código abaixo:
- Código:
var LoadX, LoadY, LoadW, LoadH, CursorP, ShowStatus, ShowCaption;
ShowCaption := Loading[0];
LoadX := Loading[1];
LoadY := Loading[2];
LoadW := Loading[1] Loading[3];
LoadH := Loading[2] Loading[4];
if Loading[6] < 0 then Loading[6] := 0;
if Loading[6] > Loading[5] then Loading[6] := Loading[5];
ShowStatus := string((Loading[6] * 100)/Loading[5]) '%';
ShowCaption := string_replace(ShowCaption,'/%',ShowStatus);
CursorP := LoadX Loading[6] * ((Loading[3]-2) / Loading[5]);
draw_set_color(LoadColor);
draw_rectangle(LoadX, LoadY, LoadW, LoadH, false);
draw_set_color(LoadColorShadow);
draw_line(LoadX, LoadY, LoadW, LoadY);
draw_line(LoadX, LoadY, LoadX, LoadH);
draw_set_color(LoadColorLight);
draw_line(LoadX, LoadH, LoadW, LoadH);
draw_line(LoadW, LoadY, LoadW, LoadH);
draw_rectangle_color(
LoadX 1,
LoadY 1,
CursorP 1,
LoadH - 1,
LoadRoutineColorTopLeft,
LoadRoutineColorTopRight,
LoadRoutineColorBottomRight,
LoadRoutineColorBottomLeft,
false
);
draw_set_halign(fa_center);
draw_set_valign(fa_middle);
draw_set_color(ProgressbarFontColor);
draw_set_font(global.ProgressbarFont);
draw_text(LoadX (Loading[3]/2), LoadY (Loading[4]/2),ShowCaption);
Por último, vamos criar um script para auxiliar o controle da barra de progresso. Chame-o de LoadRegister e cole o código abaixo:
- Código:
Loadint[6] = 1;
screen_redraw();
screen_refresh();
A estrutura montada
O que fizemos foi criar um padrão de variáveis, que contém todas as características da barra de progresso. O array vai de zero à seis e cada índice controla uma característica particular. São eles:
Loading[0] = Nome da barra de progresso, pode ser controlado para porcentagem.
Loading[1] = Posição X da barra.
Loading[2] = Posição Y da barra.
Loading[3] = Tamanho horizontal.
Loading[4] = Tamanho vertical.
Loading[5] = Número de passos no total (steps)
Loading[6] = Quantidade de passos concluídos.
Dessa forma, você pode controlar tudo à seu gosto, apenas alterando essas variáveis. Pór exemplo:
- Código:
Loading[3] := 100 // Define a posição da parra para a coodenada 100 pixels em x.
Dividimos também, o processo inteiro em três etapas, que são: 1) definir a barra de progresso, 2) Carregar o resource e 3) Registrar o carregamento na barra.
Agora, crie um objeto qualquer para que ele se encarregue de buscar os resources que estão do lado de fora do executável pra memória. No evento create desse objeto nós vamos usar o script LoadDefine.
A sintaxe de uso do script é: LoadDefine(Texto, Posição x, y, Tamanho horizontal, vertical, Total itens, itens carregados). Lembrando que o número de itens a serem carregados já é sabido por nós: 20 itens.
- Código:
LoadDefine(‘Carregando’,200,200,400,50,20,0);
O texto exibido pela barra pode ser o nome do arquivo ou o percentual do processo. Você pode controlar isso à sua maneira pela variável Loading[0]. Se você quiser que a barra exiba a porcentagem do carregamento, inclua a string ‘/%’ ao texto. Por exemplo:
- Código:
LoadDefine(‘Concluido = /%’,200,200,400,50,20,0);
No evento Draw desse objeto coloque a linha abaixo. Esse script se encarregará de desenhar a barra de progresso na tela, de acordo com as características que já definimos pra ela:
- Código:
LoadProcess();
Registrando o que foi carregado
As funções para adicionar recursos durante a execução do jogo são, basicamente:
sprite_add() – Adiciona um novo sprite para ser usado. A função retorna o index.
sound_add() - Adiciona um novo som para ser usado. A função retorna o index.
background_add() - Adiciona um novo background para ser usado. A função retorna o index.
Essas funções, adicionam recursos ao jogo, mediante um endereço. O endereço do ficheiro deve ser especificado (onde o arquivo está), obviamente. Quando houver algum erro, ela retornará o valor (-1).
Agora, os scripts vão se encarregar da barra de progresso enquanto nós definimos o que vamos carregar. Para cada recurso carregado, dentre os vinte especificados use o script LoadRegister() logo em seguida. Exemplo:
- Código:
if sprite_add(‘imagem1.gif’,0,true,true,false,true,0,0) <> (-1) then LoadRegister();
if sound_add(‘som1’,0,true) <> (-1) then LoadRegister();
if background_add(‘background1’,true,false,true) <> (-1) then LoadRegister();
Você pode criar scripts para carregar separadamente o que vai precisar em cada etapa do jogo. Isso vai deixar o jogo organizado e o tempo de espera do jogador menor.
Você pode baixar o exemplo em gml clicando AQUI. Boa sorte!
Abraço pra vocês. Capitão Commando.
Última edição por Capitão Commando em Qui 19 Nov 2009, 23:20, editado 2 vez(es)
Convidad- Convidado
Re: Fazendo um "Load Game"
Ótimo tutorial. Sensasional, eu ja sabia importar os arquivos só não sabia fazer a barra de loading. Quem teve preguiça de ler, leiam! Vocês não vão se arrepender, ta tudo bem explicadinho e com formatação impecável. Esse tutu vai ajudar muita gente, enclusive eu! XD
NOTA 11 ae pro seu tutu, ta demais!
FLWS!
NOTA 11 ae pro seu tutu, ta demais!
FLWS!
Re: Fazendo um "Load Game"
É...parece bom,pena que agora tenho fisk,depois leio ;D
doidobr- Data de inscrição : 21/02/2009
Reputação : 0
Número de Mensagens : 670
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Fazendo um "Load Game"
Nossa que nem o Alex FC disse, nota 11 !
tata139- Data de inscrição : 11/08/2008
Reputação : 3
Número de Mensagens : 1121
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Fazendo um "Load Game"
perfeito,o seu ótimo trabalho será reconhecido por mtos,garanto!!!
nota 11?? eu daria nota 20!! XD
vlw kara,eu precisava muuuito disso!!!!
nota 11?? eu daria nota 20!! XD
vlw kara,eu precisava muuuito disso!!!!
SIGILOSO- Games Ranking :
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 :
x 0 x 2 x 0
x 4 x 2 x 1
x 0 x 0 x 0
Re: Fazendo um "Load Game"
E aí moçada!
Que bom que gostaram. [Z¬)] Espero que o tutorial tenha ajudado! [:¬)] !!
Que bom que gostaram. [Z¬)] Espero que o tutorial tenha ajudado! [:¬)] !!
Convidad- Convidado
Re: Fazendo um "Load Game"
Outra coisa importante é que esse é um bom método anti-decompiler, já que será mais difícil de copiar os sprites e o jogo ao mesmo tempo. Por quê? Porque se ele usar o método de sprites do tutorial, todos vão ver os sprites roubados na pasta do jogo. Se ele tentar roubar o código, ele vai ter que modificar muito para se adaptar aos sprites comuns (carregados normalmente no Game Maker).
Btw, bom tutorial! \o
Btw, bom tutorial! \o
Re: Fazendo um "Load Game"
CPinheiro escreveu:Outra coisa importante é que esse é um bom método anti-decompiler, já que será mais difícil de copiar os sprites e o jogo ao mesmo tempo. Por quê? Porque se ele usar o método de sprites do tutorial, todos vão ver os sprites roubados na pasta do jogo. Se ele tentar roubar o código, ele vai ter que modificar muito para se adaptar aos sprites comuns (carregados normalmente no Game Maker).
Btw, bom tutorial! \o
Tem razão, não tinha pensado nisso! [:¬)] Dessa forma, se alguém usar os sprites "roubados", não tem desculpa e as pessoas vão saber. [Z¬)]
Convidad- Convidado
Re: Fazendo um "Load Game"
Capitão Commando escreveu:CPinheiro escreveu:Outra coisa importante é que esse é um bom método anti-decompiler, já que será mais difícil de copiar os sprites e o jogo ao mesmo tempo. Por quê? Porque se ele usar o método de sprites do tutorial, todos vão ver os sprites roubados na pasta do jogo. Se ele tentar roubar o código, ele vai ter que modificar muito para se adaptar aos sprites comuns (carregados normalmente no Game Maker).
Btw, bom tutorial! \o
Tem razão, não tinha pensado nisso! [:¬)] Dessa forma, se alguém usar os sprites "roubados", não tem desculpa e as pessoas vão saber. [Z¬)]
E tipo, o interessante é que se o cara tiver que modificar muito o código para se adaptar ao estilo padrão do GM para adicionar recursos e ao que ele quer, decompilar se torna praticamente uma desvantagem. Já que será mais fácil criar um script novo do quê modificar um completamente.
O único defeito do método é se o jogo for um fangame do Mario, por exemplo. Aí um user vem na maior cara de pal e copia só o sprite, e coloca no jogo dele. Nem pensa no trabalho que é pra achar o recurso. ):
Pra evitar isso, estou bolando um sistema de encripitação da imagem, onde vou criar um programinha que substitui os caracteres da imagem e salva ela com uma extensão diferente. Aí, é só eu descriptografar quando carregar o arquivo e mudar a extensão para .png (ou seja lá o que for) enquanto o jogo roda. Quando acabar, ele encripta a imagem de novo.
Falows.
Re: Fazendo um "Load Game"
CPinheiro escreveu:O único defeito do método é se o jogo for um fangame do Mario, por exemplo. Aí um user vem na maior cara de pal e copia só o sprite, e coloca no jogo dele. Nem pensa no trabalho que é pra achar o recurso. ):
É mesmo... mas se bem que, (vou falar por mim) eu não vejo problemas se for um fangame. Se alguém "pegar" os sprites, pelo menos podia partir da conciência da pessoa colocar os créditos de quer ripou ou organizou.
Mas se o autor do jogo for o autor dos sprites, aí é osso duro mesmo. Tem que ter cuidado ou esconder eles bem escondidos se for possível.
Pra evitar isso, estou bolando um sistema de encripitação da imagem, onde vou criar um programinha que substitui os caracteres da imagem e salva ela com uma extensão diferente. Aí, é só eu descriptografar quando carregar o arquivo e mudar a extensão para .png (ou seja lá o que for) enquanto o jogo roda. Quando acabar, ele encripta a imagem de novo.
Nossa! Isso daí var ser ótimo cara! Se eu usasse um esquema assim, eu ia animar muito mais a fazer meus próprios sprites. Posta pra gente se der certo aí, por favor!! (e se der (e não for abusar da sua boa vontade), ensina) [:¬)]
Convidad- Convidado
Re: Fazendo um "Load Game"
Estou com problemas!
Bom, entendi tudo que você falou no tutorial, principalmente os códigos mas... eu sei que parece uma pergunta besta mas? aonde devo colocar os códigos para adicionar o sprite? Na room ou em algum objeto?
Bom, entendi tudo que você falou no tutorial, principalmente os códigos mas... eu sei que parece uma pergunta besta mas? aonde devo colocar os códigos para adicionar o sprite? Na room ou em algum objeto?
fonetico- Data de inscrição : 05/10/2009
Reputação : 7
Número de Mensagens : 1830
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Fazendo um "Load Game"
Krak! Simplesmente Perfeito^^
É mais útil para sons e para backgrounds, pois estes possuem um tamanho maior e ficar recortando sprites por código neh facil naum :~
Nota 10^^
Flws /
É mais útil para sons e para backgrounds, pois estes possuem um tamanho maior e ficar recortando sprites por código neh facil naum :~
Nota 10^^
Flws /
Re: Fazendo um "Load Game"
Wac2007 escreveu:Krak! Simplesmente Perfeito^^
É mais útil para sons e para backgrounds, pois estes possuem um tamanho maior e ficar recortando sprites por código neh facil naum :~
Valeu cara!
Eu tinha mais uns quinze tutoriais assim, mas acabei perdendo meu HD por problemas com vírus. Esse é um dos motivos do porque eu não postei mais nenhum e não inaugurei o meu fórum.
souzalucasjose escreveu:Estou com problemas!
Bom, entendi tudo que você falou no tutorial, principalmente os códigos mas... eu sei que parece uma pergunta besta mas? aonde devo colocar os códigos para adicionar o sprite? Na room ou em algum objeto?
Em qualquer um. Depende de você. Normalmente eu coloco no evento Create de algum objeto ou na inicialização da Room, tanto faz. [:¬)]
Convidad- Convidado
Re: Fazendo um "Load Game"
Bem oque esperar de um de meus maiores fã! *--*
Realmente Um sucesso de tutorial!
Já estou usando em meu projeto!
Se alguém quiser, fiz um pdf desse tutorial, Segue abaixo o link para Download:
Megaupload:
http://www.megaupload.com/?d=Y1J881QQ
Mediafire:
http://www.mediafire.com/download.php?0izjm2whywd
Abração
Rodrigo Mattos.
Realmente Um sucesso de tutorial!
Já estou usando em meu projeto!
Se alguém quiser, fiz um pdf desse tutorial, Segue abaixo o link para Download:
Megaupload:
http://www.megaupload.com/?d=Y1J881QQ
Mediafire:
http://www.mediafire.com/download.php?0izjm2whywd
Abração
Rodrigo Mattos.
RodrigoM.- Data de inscrição : 06/08/2009
Reputação : 5
Número de Mensagens : 569
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Fazendo um "Load Game"
cara achei que fosse complicado fzer isso... quando eu lia 1° vez tinha acabado de chegar no forum e nem li até o final, mas hj lendo os comentarios resolvi ler até o filnal e , cara, muito bom msm
Re: Fazendo um "Load Game"
Obrigado pelos comentários TiagoBonadio e CyraxX! E obrigado por criar o PDF CyraxX!
Na verdade, esse tipo de carregamento só parece complicado mas é fácil. Em outras linguagens chega a ser cansativo. Em Pascal, por exemplo, você tem que criar suas próprias rotinas, inclusive para checar o conteúdo do arquivo (se é realmente um bitmap, ou um wave, ou midi, etc.)
Em um carregamento mais complexo (e mais seguro), deveríamos checar coisas como o tamanho dos arquivos, cabeçalhos, e em alguns casos, criar a barra de progresso baseando-se no buffer usado na leitura dos mesmos.
É por isso que eu gosto do Game Maker. Fácil, rápido, prático.
Na verdade, esse tipo de carregamento só parece complicado mas é fácil. Em outras linguagens chega a ser cansativo. Em Pascal, por exemplo, você tem que criar suas próprias rotinas, inclusive para checar o conteúdo do arquivo (se é realmente um bitmap, ou um wave, ou midi, etc.)
Em um carregamento mais complexo (e mais seguro), deveríamos checar coisas como o tamanho dos arquivos, cabeçalhos, e em alguns casos, criar a barra de progresso baseando-se no buffer usado na leitura dos mesmos.
É por isso que eu gosto do Game Maker. Fácil, rápido, prático.
Convidad- Convidado
Re: Fazendo um "Load Game"
Legal o tutorial :1
AlexandreCR- Data de inscrição : 07/11/2009
Reputação : 0
Número de Mensagens : 88
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Fazendo um "Load Game"
Lucas, você já deve saber mais pra quem não sabe para usar um diretório maior é usado a barra inversa \
Ex.
data\musicas\menu.mp3
Fallow! [:¬D]
CyraxX
Ex.
data\musicas\menu.mp3
Fallow! [:¬D]
CyraxX
RodrigoM.- Data de inscrição : 06/08/2009
Reputação : 5
Número de Mensagens : 569
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Fazendo um "Load Game"
Certos tutoriais valem a pena a serem revividos pela sua qualidade e conteúdo relevante, por isso comentei agora. Espero que não seja um problema, mas depois de tanto tempo, seria ótimo que o pessoal mais novo do fórum visse este pois muitos têm dúvidas à respeito do "Load Game".
Abraço.
Abraço.
fonetico- Data de inscrição : 05/10/2009
Reputação : 7
Número de Mensagens : 1830
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Fazendo um "Load Game"
esse load game é tipo save game ou oq, ñ entendi por completo
hermani- Data de inscrição : 04/05/2012
Reputação : 1
Número de Mensagens : 4
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Página 1 de 2 • 1, 2
Tópicos semelhantes
» [Resolvido]Como fazer um save game e um load game?
» como fazer game load e game save?
» Problema com save game, load game...
» save game and load game
» save game e load game
» como fazer game load e game save?
» Problema com save game, load game...
» save game and load game
» save game e load game
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos