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


Qual o problema com o meu FOR ???

4 participantes

Ir para baixo

Qual o problema com o meu FOR ??? Empty Qual o problema com o meu FOR ???

Mensagem por Denis Lemos Seg 25 Out 2010, 18:54

Eu quero que seja checado todos os pixeis de uma sprite, back, ou surface que seje, e fiz este script usando o comando for:
Código:

w=surface_get_width(desenho)
h=surface_get_height(desenho)

if pode_chekar=true
{
    surface_set_target(desenho)
    for (xx=0;xx<w;xx+=1)
    {
        draw_point_color(xx,yy,c_red)
    }
    yy+=1
    if yy>h { pode=false;yy=0;xx=0 }
    surface_reset_target()
}
Ele até funciona, mas o FPS cai para 1 no começo e depois de ele checar umas 6 linhas daí aumenta um pouquinho e fica com FPS um pouco mais auto !
Gostaria de saber se eu usei o "FOR" errado ou o que, e se tem um método mais rápido de se fazer isso, pois na "Horizontal" é checado quase que instantaneamente, mas para ir descendo que fica uma carroça !

OBS: Eu não quero pintar toda a surface ou sprite, senão eu usaria draw_line() ou draw_retangle(), eu coloquei o draw_point para ir acompanhando a velocidade que vai checando os pixeis, pois eu preciso checar pixel por pixel !

Valew, fico no aguardo !!!
Denis Lemos
Denis Lemos

Data de inscrição : 17/05/2009
Reputação : 1
Número de Mensagens : 938
Prêmios : Qual o problema com o meu FOR ??? 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
  • Game Maker Studio 1.4
  • Unity
  • C#
  • Godot
  • C ou C++


Ir para o topo Ir para baixo

Qual o problema com o meu FOR ??? Empty Re: Qual o problema com o meu FOR ???

Mensagem por Gabreel Seg 25 Out 2010, 19:00

Denis, isso acontece com todos tamanhos de imagem?

no javascript, quando faço for"s" muito grandes o navegador trava um pokinho ao carregar..

Creio que você saiba que os eventos draw tendem a lagar o jogo.. se você fosse fazer 1024 pontos na tela, bom, imagina né...

E o que seria yy? x.x
Gabreel
Gabreel

Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios : Qual o problema com o meu FOR ??? 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
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • Outros


Ir para o topo Ir para baixo

Qual o problema com o meu FOR ??? Empty Re: Qual o problema com o meu FOR ???

Mensagem por PedroX Seg 25 Out 2010, 19:15

Nessa parte:
surface_set_target(desenho)
for (xx=0;xx {draw_point_color(xx,yy,c_red)}
yy+=1
if yy>h { pode=false;yy=0;xx=0 }
surface_reset_target()

O 'yy+=1' nao teria que estar dentro do loop, para ele aumentar de acordo com o w?

Na verdade, eu acho que todo o codigo abaixo do loop devia estar dentro dele....
FLW

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6086
Prêmios : Qual o problema com o meu FOR ??? Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Qual o problema com o meu FOR ??? Empty Re: Qual o problema com o meu FOR ???

Mensagem por Denis Lemos Seg 25 Out 2010, 19:39

BieL
O XX, e o YY são variáveis que eu criei para as coordenadas, e é por eles que eu percorro a imagem !

Acontece com todos os tamanhos de imagem, desse jeito que está o código, ele checa na "HORIZONTAL" praticamente instantâneamente, mas na vertical vai muito devagar, eu gostaria de saber se dá para melhorar o código, já tentei colocar um "FOR" dentro do outro para fazer o YY descer rápidão também , mas tranca na hora heh heh heh !!!

Pedro Já tentei assim e Se eu faço isso ele desce em linha na diagonal e cheka só uns poucos pixeis, e preciso que checke todos os da primeira linha de cima e só depois mude para a linha de baixo !

EX: Cada número abaixo é um pixel da imagem !

1 2 3
4 5 6
7 8 9

Eu quero que comece a chekar do 1 , assim ele chega até o 3, desce uma linha e começa do 4 e vai até o final chegando no 6 e pule para a próxima linha !
Tipo do 1 até o 3 vai "instantâneo", mas para pular para a linha de baixo e começar do 4 ele vai bem devagar, pois como você mesmo falou o YY está fora do loop !
E se eu coloco o YY dentro do loop, os pixeis checados são apenas 1,5,9, faz realmente mais rápido, mas só percorre uma linha na diagonal !
Denis Lemos
Denis Lemos

Data de inscrição : 17/05/2009
Reputação : 1
Número de Mensagens : 938
Prêmios : Qual o problema com o meu FOR ??? 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
  • Game Maker Studio 1.4
  • Unity
  • C#
  • Godot
  • C ou C++


Ir para o topo Ir para baixo

Qual o problema com o meu FOR ??? Empty Re: Qual o problema com o meu FOR ???

Mensagem por vinians Seg 25 Out 2010, 19:50

Denis, tudo blz???
Então, no seu script não vi nenhuma checagem, apenas você pinta o surface de vermelho. Parece que a cada linha voce muda o target. Pra ficar mais rapido é melhor vc criar um script que faça de uma vez só e não fique mudando toda hora. Qualquer coisa podemos te ajudar.
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2715
Prêmios : Qual o problema com o meu FOR ??? Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

Qual o problema com o meu FOR ??? Empty Re: Qual o problema com o meu FOR ???

Mensagem por Denis Lemos Seg 25 Out 2010, 19:57

Pintar de vermelho é só para eu ver a velocidade em está indo a checagem, na verdade eu preciso checar a cor dos pixeis de um por um !

Vou te mostrar uma engine com o exemplo do que eu quero por MP, a função funciona perfeitamente, mas fica muito lento !
Denis Lemos
Denis Lemos

Data de inscrição : 17/05/2009
Reputação : 1
Número de Mensagens : 938
Prêmios : Qual o problema com o meu FOR ??? 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
  • Game Maker Studio 1.4
  • Unity
  • C#
  • Godot
  • C ou C++


Ir para o topo Ir para baixo

Qual o problema com o meu FOR ??? Empty Re: Qual o problema com o meu FOR ???

Mensagem por vinians Seg 25 Out 2010, 20:07

Denis Lemos escreveu:Pintar de vermelho é só para eu ver a velocidade em está indo a checagem, na verdade eu preciso checar a cor dos pixeis de um por um !

Vou te mostrar uma engine com o exemplo do que eu quero por MP, a função funciona perfeitamente, mas fica muito lento !
Hum... entendi, manda la que dou um bizoi!
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2715
Prêmios : Qual o problema com o meu FOR ??? Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

Qual o problema com o meu FOR ??? Empty Re: Qual o problema com o meu FOR ???

Mensagem por PedroX Seg 25 Out 2010, 20:51

eu acho meio lento o draw_get_pixel(),
ele é muito lento, faria seria programa ficar meio que travando...
é melhor voce usar uma DLL...

Código:

surface_set_target(desenho)
for (xx=0;xx<w;xx+=1)
    {
        draw_point_color(xx,yy,c_red)
        if xx>w-1 {yy+=1}
surface_reset_target()
if yy>h {yy=0;xx=0; break;}
}

}

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6086
Prêmios : Qual o problema com o meu FOR ??? Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Qual o problema com o meu FOR ??? Empty Re: Qual o problema com o meu FOR ???

Mensagem por Denis Lemos Seg 25 Out 2010, 22:51

Não funcionou, mas eu vou tentar em vez do FOR, usar o while que no primeiro teste foi bem rápido, só que sem capiturar a cor do pixel !
Se conseguir posto aqui caso alguém também precise !

[Editado]

Fiz também com o while e a velocidade ficou na mesma, quando usei o draw_getpixel(), é essa função que está estragando minha função, vou mesmo procurar uma DLL que faça isso mais rápido, se alguém souber onde tem uma posta aí, há tem que funcionar o GM8 !
Caso alguém queira ver como ficou o loop sem a função draw_getpixel() aí esta, é a mesma coisa que usar o FOR:
Código:

if pode=true
{
  surface_set_target(desenho)
  while(xx<w)
  {
      draw_point_color(xx,yy,c_red);
      xx+=1
  }
  while(xx>=w) { yy+=1;xx=0 }
  if yy>h { yy=0; pode=false }
  surface_reset_target()

}

vou tentar com DLL mesmo fazer essa função draw_getpixel se eu achar alguma !!!

Editado=3
Achei essa DLL aqui caso alguém queira: http://gmc.yoyogames.com/index.php?showtopic=455787
Ela pega cor até de fora da tela, e esse que é o problema, agora eu não sei como pegar o pixel de uma surface, pois se ela for maior que a tela, vai pegar o pixel de fora dela, mas mesmo assim obriago a todos pela a ajuda, já melhorei e muito a velocidade com essa DLL, agora vou tentar implantar o que o Vinians fez para mim junto com essa DLL, deve ficar muito mais rápido !

Obrigado pessoal !!!
Denis Lemos
Denis Lemos

Data de inscrição : 17/05/2009
Reputação : 1
Número de Mensagens : 938
Prêmios : Qual o problema com o meu FOR ??? 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
  • Game Maker Studio 1.4
  • Unity
  • C#
  • Godot
  • C ou C++


Ir para o topo Ir para baixo

Qual o problema com o meu FOR ??? Empty Re: Qual o problema com o meu FOR ???

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


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