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


Mapa Externo

+2
luiz_eldorado
Luca$
6 participantes

Página 1 de 2 1, 2  Seguinte

Ir para baixo

Mapa Externo Empty Mapa Externo

Mensagem por Luca$ Sáb 29 Set 2012, 14:25

Estou tentando fazer um sistema para carregar mapas externos,achei que sabia,mas não está dando muito certo :S

Estou usando um sistem assim:
1- É uma imagem .png,sendo que cada pixel é um bloco
Oque o sistema faz:
1 - Carrega a imagem;
2 - Lê os pixels;
3 - Desenha os objetos.

Olhem os códigos que estou usando:

Evento Release L key:
Código:

MAPA_LOAD=get_open_filename("Arquivos .PNG|*.png*","");

if MAPA_LOAD!=""
{
surface_free(EDITOR.MAPA)
SPRITE=sprite_add(MAPA_LOAD,0,0,0,0,0)
SPR_W=sprite_get_width(SPRITE)
SPR_H=sprite_get_height(SPRITE)
SURF_SPR=surface_create(SPR_W,SPR_H)
for (i=0; i<SPR_W; i+=1)
{
    for (a=0; a<SPR_H; a+=1)
    {
        PIXEL=surface_getpixel(SURF_SPR,i,a)
        surf_to_screen()
       
    }
};


}

O script surf_to_screen:
Código:

//spike
if PIXEL=make_color_rgb(180,42,17)
{
surface_set_target(EDITOR.MAPA)
draw_sprite(SPRITES2,0,i*16,a*16)
}
//Porta Azul
if PIXEL=make_color_rgb(26,78,131)
{
surface_set_target(EDITOR.MAPA)
draw_sprite(SPRITES2,1,i*16,a*16)
}
//Ponte Azul
if PIXEL=make_color_rgb(50,105,135)
{
surface_set_target(EDITOR.MAPA)
draw_sprite(SPRITES2,2,i*16,a*16)
}
//Parede de Pedra
if PIXEL=make_color_rgb(49,52,18)
{
surface_set_target(EDITOR.MAPA)
draw_sprite(SPRITES2,3,i*16,a*16)
}
//Parede de Pedra
if PIXEL=make_color_rgb(49,52,18)
{
surface_set_target(EDITOR.MAPA)
draw_sprite(SPRITES2,3,i*16,a*16)
}
//Escada
if PIXEL=make_color_rgb(43,21,9)
{
surface_set_target(EDITOR.MAPA)
draw_sprite(SPRITES2,3,i*16,a*16)
}
//Bloco de Pedra
if PIXEL=make_color_rgb(100,113,96)
{
surface_set_target(EDITOR.MAPA)
draw_sprite(SPRITES2,4,i*16,a*16)
}
//Bullion de Ouro AZUL
if PIXEL=make_color_rgb(213,196,9)
{
surface_set_target(EDITOR.MAPA)
draw_sprite(SPRITES2,5,i*16,a*16)
}
//OURO
if PIXEL=make_color_rgb(254,165,61)
{
surface_set_target(EDITOR.MAPA)
draw_sprite(SPRITES2,6,i*16,a*16)
}
surface_reset_target()


É um script que checa a cor e desenha o bloco,ou,deveria fazer isso.

Alguem sabe o porque de ele não estar desenhando os blocos?

EDIT:

Desculpe,postei na área de GMS,oque estou usando é o Game Maker 8.0.
Algum moderador mova ai para mim.
Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Mapa Externo 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

Mapa Externo Empty Re: Mapa Externo

Mensagem por luiz_eldorado Sáb 29 Set 2012, 18:03

Você carregou tudo certo eu acho, mas tipo, você por acaso está desenhando a surface depois?
luiz_eldorado
luiz_eldorado

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 30/07/2011
Reputação : 47
Número de Mensagens : 928
Prêmios : Mapa Externo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 1

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

http://luizpontes.tk/

Ir para o topo Ir para baixo

Mapa Externo Empty Re: Mapa Externo

Mensagem por Kapoty Sáb 29 Set 2012, 18:09

Fiz uma pequena engine para você : http://www.mediafire.com/?cgqrsx79rdlqt25

Diga se ajudou.
Kapoty
Kapoty

Games Ranking : Nota B

Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Reputação : 22
Número de Mensagens : 635
Prêmios : Mapa Externo 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

Mapa Externo Empty Re: Mapa Externo

Mensagem por Luca$ Sáb 29 Set 2012, 18:41

luiz_eldorado escreveu:Você carregou tudo certo eu acho, mas tipo, você por acaso está desenhando a surface depois?
Sim,o código que desenha a surface está em outra parte que não coloquei ali,mas ela está sendo desenhada sim Smile

kapoty escreveu:Fiz uma pequena engine para você : http://www.mediafire.com/?cgqrsx79rdlqt25

Diga se ajudou.

Cara,até ajudaria se fosse do jeito que estou fazendo,mas não é =/
Porque do jeito que você vez,só muda a cor do bloco,e do jeito que estou fazendo,é um sprite pra cada bloco,porque cada bloco é totalmente diferente do outro.

EDIT:

Eu adicionei uma linha ao código para salvar a surface em uma imagem,e constatei:
O erro é que os blocos não estão sendo desenhados na surface,pois a imagem que foi salva estava totalmente em branco.
Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Mapa Externo 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

Mapa Externo Empty Re: Mapa Externo

Mensagem por Kapoty Sáb 29 Set 2012, 19:05

Uma pergunta : Você está desenhando a sprite na tela antes de executar estes códigos?
Kapoty
Kapoty

Games Ranking : Nota B

Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Reputação : 22
Número de Mensagens : 635
Prêmios : Mapa Externo 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

Mapa Externo Empty Re: Mapa Externo

Mensagem por luiz_eldorado Sáb 29 Set 2012, 19:08

Já ví o problema! Você tá criando duas surfaces, a "SURF_SPR" e "MAPA" (do objeto "EDITOR"). Você está criando uma e desenhando na outra.
luiz_eldorado
luiz_eldorado

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 30/07/2011
Reputação : 47
Número de Mensagens : 928
Prêmios : Mapa Externo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 1

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

http://luizpontes.tk/

Ir para o topo Ir para baixo

Mapa Externo Empty Re: Mapa Externo

Mensagem por Luca$ Sáb 29 Set 2012, 19:11

Ooopsss *vergonha*

Tinha esquecido de desenhar o sprite na surface que eu pego as coordenadas pale

Acho que agora vai dar tudo certinho.

EDIT:

Não sei se o jogo do qual estou tentando fazer o editor de mapas existe uma numeração diferente de cores.
Mas,estou me baseando nesta pagina oficial: https://wiki.kag2d.com/wiki/Map

Uso a mesma numeração,mas na hora de carregar,ele carrega aulguns blocos errados =/
Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Mapa Externo 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

Mapa Externo Empty Re: Mapa Externo

Mensagem por Kapoty Sáb 29 Set 2012, 22:36

GMLucas escreveu:
Não sei se o jogo do qual estou tentando fazer o editor de mapas existe uma numeração diferente de cores.
Mas,estou me baseando nesta pagina oficial: https://wiki.kag2d.com/wiki/Map

Uso a mesma numeração,mas na hora de carregar,ele carrega aulguns blocos errados =/

Tente fazer o seguinte, faça como se fosse um debug-mode e veja se as cores que estão sendo pegadas pelo draw_getpixel coincidem com as cores que você colocou nos IF, para fazer isso pegue a posição exata de uma cor que você deseja testar como por exemplo "x=2;y=9" e faça isso :
Código:
show_message(draw_getpixel(2,9))
Veja se a cor que está sendo mostrada é igual a que deveria ser.

Diga se ajudou em algo.
Kapoty
Kapoty

Games Ranking : Nota B

Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Reputação : 22
Número de Mensagens : 635
Prêmios : Mapa Externo 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

Mapa Externo Empty Re: Mapa Externo

Mensagem por Luca$ Dom 30 Set 2012, 18:43

Kapoty,eu testei com uma cor,e deu certo sim,as cores batiam =/
Se vocês quiserem ver a engine,eu posso mandar Smile
Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Mapa Externo 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

Mapa Externo Empty Re: Mapa Externo

Mensagem por Kapoty Dom 30 Set 2012, 18:46

GMLucas escreveu:Se vocês quiserem ver a engine,eu posso mandar Smile
Queremos sim, mande-a.
Kapoty
Kapoty

Games Ranking : Nota B

Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Reputação : 22
Número de Mensagens : 635
Prêmios : Mapa Externo 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

Mapa Externo Empty Re: Mapa Externo

Mensagem por Luca$ Dom 30 Set 2012, 19:31

Aqui está:
Download

Desculpe se não entender algo,é que não costumo colocar comentários =/
Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Mapa Externo 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

Mapa Externo Empty Re: Mapa Externo

Mensagem por theguitarmester Dom 30 Set 2012, 23:32

Talves falo Bobagem, mas pelo que percebo, você coloca uma cor no ALPHA "digamos" Azul, mas no jogo aparece Verde, é isto sua Pergunta?
Se for, talves seja porque você colocou esta cor em um Objeto já colorido co qualquer cor que não seja Branco, isto é, você estaria colocando uma cor misturada com outra. para resolver isto coloque o Objeto em tons de Cinza/ Preto e Branco.

se não for esta sua dúvida, Desculpe.
theguitarmester
theguitarmester

Games Ranking : Nota C

Notas recebidas : B + C
Data de inscrição : 28/02/2012
Reputação : 139
Número de Mensagens : 2211
Prêmios : Mapa Externo Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Ir para o topo Ir para baixo

Mapa Externo Empty Re: Mapa Externo

Mensagem por Henrique_GJ Seg 01 Out 2012, 08:29

mas.... como vc vai fazer pra colocar mais de um objeto num mesmo lugar? vai q vc precisa disso õ_o
Henrique_GJ
Henrique_GJ

Data de inscrição : 30/12/2009
Reputação : 4
Número de Mensagens : 1344
Prêmios : Mapa Externo 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Java
  • C ou C++


http://sitedosjogos.forumeiros.com

Ir para o topo Ir para baixo

Mapa Externo Empty Re: Mapa Externo

Mensagem por saim Seg 01 Out 2012, 09:24

Eu faço isso direto. Criar um mapa em .bmp com uma legenda de cores, pra carregar como objetos, depois. A diferença é que eu crio objetos ao invés de desenhar sprites, mas fora isso, é a mesma coisa.

O primeiro erro que eu vi, você já viu, estava faltando desenhar a sprite pra verificar as cores. O segundo ainda não foi apontado: no final do script "surf_to_screen", você está usando surface_reset_target, o que impede o programa de continuar lendo a surface SURF_SPR. Acho que a função a ser usada deveria ser surface_set_target(SURF_SPR);. No final do código principal, você reseta a surface (e pode até eliminar a SURF_SPR, que já não tem mais utilidade).

Duas coisas que eu mudaria no seu script:
- no script, ao invés de usar um montão de "ifs", eu usaria um "switch". Em tradução livre, um "switch" significa "um montão de ifs". Não acho que seria muito mais eficiente, mas ficaria mais organizado (com certeza seria um pouco mais eficiente).
- pra cada "if", em cada iteração, você está criando uma cor. Isso é desnecessário. Você pode criar as cores antes dos loops "for" e armazená-las em variáveis (cor[0] = make_color_rgb, coisa assim) e acessá-las de dentro do script. Ou, se tiver um pouco mais de tempo, simplesmente use cores que você conheça o valor e escreva o valor dela. Isso, com certeza, aumenta a eficiência do script.

Por fim, já que está usando um script, você ainda pode usar a função "return". Não vai fazer diferença nenhuma com relação à eficiência, mas vai ser divertido usar isso. Você vai retornar só a sprite a ser desenhada, ao invés de desenhar através do script. E a cor, você pode entrar como argumento no script. Aí, o script ficaria mais ou menos assim:
Código:
var corPixel, retornar;
corPixel = argument0;

switch (corPixel){
   case (cor[0]): //spike
   {
      retornar = 0;
      } break;
   case (cor[1]): //Porta Azul
   {
      retornar = 1;
      } break;
   case (cor[2]): //Ponte Azul
   {
      retornar = 2;
      } break;
   case (cor[3]): //Parede de Pedra
   {
      retornar = 3;
      } break;
   case (cor[4]): //Escada
   {
      retornar = 3;
      } break;
   case (cor[5]): //Bloco de Pedra
   {
      retornar = 4;
      } break;
   case (cor[6]): //Bullion de Ouro AZUL
   {
      retornar = 5;
      } break;
   case (cor[7]): //OURO
   {
      retornar = 6;
      } break;
   }

return(retornar);
E o código inicial seria diferente, também:
Código:
MAPA_LOAD=get_open_filename("Arquivos .PNG|*.png*","");

if MAPA_LOAD!=""
{
cor[0] = make_color_rgb(180,42,17);
cor[1] = make_color_rgb(26,78,131);
cor[2] = make_color_rgb(50,105,135);
cor[3] = make_color_rgb(49,52,18);
cor[4] = make_color_rgb(43,21,9);
cor[5] = make_color_rgb(100,113,96);
cor[6] = make_color_rgb(213,196,9);
cor[7] = make_color_rgb(254,165,61);
surface_free(EDITOR.MAPA)
SPRITE=sprite_add(MAPA_LOAD,0,0,0,0,0)
SPR_W=sprite_get_width(SPRITE)
SPR_H=sprite_get_height(SPRITE)
SURF_SPR=surface_create(SPR_W,SPR_H)
surface_set_target(SURF_SPR);
draw_sprite(SPRITE, 0, 0, 0);

for (i=0; i<SPR_W; i+=1)
{
    for (a=0; a<SPR_H; a+=1)
    {
        PIXEL=surface_getpixel(SURF_SPR,i,a)
        imagem_a_usar = surf_to_screen(PIXEL);
        surface_set_target(EDITOR.MAPA);
      draw_sprite(SPRITES2,imagem_a_usar,i*16,a*16)
        surface_set_target(SURF_SPR);
    }
};
surface_reset_target();
surface_free(SURF_SPR);
}
--> foi mal, empolguei e fiz TODAS as alterações que tinha sugerido.

Note que "parede de pedra" e "escada" estão com a mesma imagem. Não tirei isso da minha cabeça, o código original estava assim. Ah, e retirei uma redundância também (tinha um objeto repetido, agora perdi qual era, não vou editar a mensagem pra olhar).
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Mapa Externo Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Mapa Externo Empty Re: Mapa Externo

Mensagem por Luca$ Seg 01 Out 2012, 12:28

Vlw pelas dicas Saim Smile

Coloquei os 2 códigos que me mandou,mas uma msg de erro aparece:
Código:

___________________________________________
ERROR in
action number 1
of Key Release Event for L-key Key
for object EDITOR:

In script surf_to_screen:
Error in code at line 39:
  return(retornar);
          ^
at position 9: Unknown variable retornar
Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Mapa Externo 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

Mapa Externo Empty Re: Mapa Externo

Mensagem por saim Seg 01 Out 2012, 13:07

É, depois que mandei os códigos, pensei na possibilidade da cor não ser nenhuma daquelas previstas dentro do switch. Se isso acontecer, aparece esse erro. Faz o seguinte, crie mais uma imagem na SPRITES2, pode ser uma imagem com alpha=0, mesmo, só pra ter o que retornar. Daí, acrescente, no final do switch,
Código:
default: retornar = numero_da_imagem_vazia
Em teoria, o código vai desenhar a imagem com alpha=0, ou seja, vai gastar um pedacinho de memória, mas o resultado será o esperado.

Ah, pra ver como usar esse "default" eu tive que consultar o manual e percebi que o parêntese depois do "case" é dispensável. Acho que não faz mal, mas se quiser eliminar, pode.
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Mapa Externo Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Mapa Externo Empty Re: Mapa Externo

Mensagem por Luca$ Seg 01 Out 2012, 13:47

Resolveu o error sim Saim Smile

Mas,o Switch me confundiu tudo com os números,porque agora nem sei oque é oque :S

Tipo,é que não são só aqueles 7 blocos ali,ai agora pra mim editar esse switch eu me confundo todo :S
E nem sei como voltar atrás mais .-.

OBS: https://dl.dropbox.com/u/32092067/Projeto%28Publico%29.gmk

Se quiser baixar pra ver como tá =/
Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Mapa Externo 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

Mapa Externo Empty Re: Mapa Externo

Mensagem por saim Seg 01 Out 2012, 14:07

Eu até gostaria de baixar, mas daqui não tenho nem como baixar nem como abrir.
Achei que, como o código original era seu, o switch seria auto-explicativo, por isso não comentei. O que eu fiz foi o seguinte:
1 - gravei as cores a serem pesquisadas em variáveis (pra não ter que ficar recriando essas cores em cada iteração);
2 - coloquei a cor do pixel como argumento a ser inserido no script. Assim, ao invés de usar a variável PIXEL, eu usei o argument0. Hm..., até perdi a oportunidade de agilizar o código, nessa hora, daqui a pouco eu conserto isso.
3 - num switch, eu verifiquei cada uma das possibilidades e retornei a IMAGEM da sprite a ser desenhada. É que eu tinha notado que todas as imagens eram da mesma sprite, então pensei na possibilidade de retornar só o número da imagem. Isso dá uma generalizada no script, facilitando o uso dele em outros programas. Se as imagens não forem todas da mesma sprite, aí não tem jeito, você vai ter que fazer a parte de desenhar dentro do script mesmo (direciona pra surface pra tela, desenha a sprite na imagem correta e redireciona pra surface do mapa) porque não dá pra retornar 2 argumentos do mesmo script (e não acho que valha a pena fazer 2 scripts).

O que eu perdi a chence de melhorar no passo 2 foi o seguinte: a gente não precisa da variável "PIXEL". Ela só serve pra ser usada como argumento no script. Podemos colocar uma função como argumento do script. O ganho em processamento é mínimo (imperceptível mesmo), então é só questão de organização pessoal.
Código:
(...)
imagem_a_usar = surf_to_screen(surface_getpixel(SURF_SPR,i,a));
(...)
Se achar bobagem, pelo menos lembre-se de fazer de PIXEL uma variável "var".
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Mapa Externo Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Mapa Externo Empty Re: Mapa Externo

Mensagem por Luca$ Seg 01 Out 2012, 14:19

Opa,agora eu entendi sim,vlw Smile

Cara,será que eu posso te adicionar no MSN?ou Skype,etc.
É que tem um bug que acontece desde que eu criei o programa,já postei 3 vezes no fórum,até agora ninguem conseguiu me ajudar =/
Luca$
Luca$

Games Ranking : Nota D

Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios : Mapa Externo 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

Mapa Externo Empty Re: Mapa Externo

Mensagem por saim Seg 01 Out 2012, 15:48

GMLucas escreveu:Cara,será que eu posso te adicionar no MSN?ou Skype,etc.
Não Sad
Não é má vontade, é que eu não entro nesses programas de bate-papo. Aqui onde estou, é um milagre o fórum não estar bloqueado, porque tudo o mais está. Em casa, a internet é liberada, mas minha agenda não (essa tal de jornada dupla acaba com a produção de games...).
Eu estou sempre no fórum, sempre tentando ajudar casos como o seu. Se não postei nada na sua dúvida, ou achei que alguma das respostas seria suficiente sem necessidade de complementação (eu sou muito metido a alterar códigos dos outros) ou não sei responder. Seja como for, deixe um link pra ela que eu dou uma olhada.
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Mapa Externo Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Mapa Externo Empty Re: Mapa Externo

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Página 1 de 2 1, 2  Seguinte

Ir para o topo

- Tópicos semelhantes

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