Entrar
Ú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
Página 1 de 1
Qual o problema com o meu FOR ???
Eu quero que seja checado todos os pixeis de uma sprite, back, ou surface que seje, e fiz este script usando o comando for:
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 !!!
- 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()
}
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- Data de inscrição : 17/05/2009
Reputação : 1
Número de Mensagens : 938
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Unity
- C#
- Godot
- C ou C++
Re: Qual o problema com o meu FOR ???
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
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- Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Game Maker Studio 2.0
- Javascript
- Outros
Re: Qual o problema com o meu FOR ???
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
surface_set_target(desenho)
for (xx=0;xx
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:
Re: Qual o problema com o meu FOR ???
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 !
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- Data de inscrição : 17/05/2009
Reputação : 1
Número de Mensagens : 938
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Unity
- C#
- Godot
- C ou C++
Re: Qual o problema com o meu FOR ???
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.
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.
Re: Qual o problema com o meu FOR ???
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 !
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- Data de inscrição : 17/05/2009
Reputação : 1
Número de Mensagens : 938
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Unity
- C#
- Godot
- C ou C++
Re: Qual o problema com o meu FOR ???
Hum... entendi, manda la que dou um bizoi!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 !
Re: Qual o problema com o meu FOR ???
eu acho meio lento o draw_get_pixel(),
ele é muito lento, faria seria programa ficar meio que travando...
é melhor voce usar uma DLL...
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:
Re: Qual o problema com o meu FOR ???
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:
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 !!!
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- Data de inscrição : 17/05/2009
Reputação : 1
Número de Mensagens : 938
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Unity
- C#
- Godot
- C ou C++
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|