Farramentas de paint no GM

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Farramentas de paint no GM

Mensagem por mateus luz em Seg 21 Jun 2010, 21:31

E ai pessoal, estou perto de realizar um sonha, criar um softaware no GM, mas o que importa é minha duvida, como criar uma ferramenta de lapis,zoom,e balde de tinta?E como fazer para que a imagem que eu fizer eu possar salvar em um arquivo extrno(png,jpg)?

Agradeço de antemão

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por Denis Lemos em Ter 22 Jun 2010, 13:41

É bem difícil de fazer isso, o balde de tintas já pesquizei em tudo que é lugar, mas não consegui ainda bolar um geito nem sequer uma idéia de como fazer, éra uma coisa que eu achava que seria simples, mas quando parei para pensar vi que é uma das funções do Paint mais difíceis !

Eu estou também fazendo uns testes para um Paint que tenha muito mais funções que o do Windows, mas se não conseguir fazer nem balde de tintas não adiantará nada, pois é uma das funções principais do programa, então eu deixei o projeto parado até bolar um geito de fazer esse balde !

Qualquer coisa se eu descobrir eu posto aí !!!

O lápis não seria só colocar no evento de apertar o botão do Mouse a função:
Código:

draw_point(mouse_x,mouse_y)

E o zoom só aumentar o image_xscale=2 e image_yscale=2 do objeto que será o desenho !!!

Denis Lemos

Número de Mensagens : 938
Idade : 28
Data de inscrição : 17/05/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por Super Games em Ter 22 Jun 2010, 19:31

Para fazer o pincel faça assim:

Crie um sprite com o nome de tinta, nele vc desenha um ponto.
Crie um objeto chamado tinta, nele coloque nada
Crie um objeto chamado pincel, não coloque nenhum sprite, coloque no Mouse-Global Mouse-Glob Left Button coloque Create instace, deixe ele assim:
object:tinta
x:mouse_x
y:mouse_y
Agora coloque na room o pincel, e pronto, é so testar.

Espero ter ajudado com o Balde de Tinta!

Super Games

Ranking : Nota D
Número de Mensagens : 2704
Idade : 18
Data de inscrição : 10/06/2010
Notas recebidas : D
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mayck em Ter 22 Jun 2010, 19:35

1º-crie um sprite com o nome tinta e coloque um ponto (um pontinho para ser o sprite)

2º- crie um objeto chamado tinta e nele coloque o sprite tinta.

3º- crie outro objeto chamado pincel e coloque um evento:
Mouse - global mouse - global left button
e nele coloque assim:
create instance
object: tinta
x: mouse_x
y: mouse_y

4º- crie uma room e coloque só o objeto pince
Bem Vc so Troka uns Trekos deesse Tutu ai mais tem nada naum o Importante e ajudar =D

Bem Tambem Ja tentei fazer um Balde tinta Mais Nao conseui Tentei de varas e varias Formas Mais nenhuma com Susseço =/

mayck

Número de Mensagens : 370
Idade : 20
Data de inscrição : 11/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por Convidad em Ter 22 Jun 2010, 21:02

para fasser uma borracha simples
minha ajuda
voce fais outro objeto com um pingo branco e bota as mesmas coisas como o pingo preto so mude o sprite para o branco
global right button
create instance
object: tinta
x: mouse_x
y: mouse_y
-----------------
ai você bota no objeto pingo preto colison to objecto pingo branco e bota para ele se destruir Very Happy
-------------------------------
o resto e complicado para falar em mp

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por Henrique-HB em Ter 22 Jun 2010, 21:49

Galera, lembrem que esse técnica citada acima envolve a criação de muitas instancias, vcs não vão querer sugar memória até não poder mais não é?

A lógica é um quadro branco onde realmente vamos apenas colorir pixels. O mais proximo disso apresentado aqui é a idéia do denis.

A unica informação que precisamos armazenar é realmente a cor do pixel nesse "quadro", ao usarmos uma instancia do game maker estariamos utilizando centenas de informações completamente inuteis, afinal, cada objeto do game maker é uma classe instanciada do programa, com todas os seus métodos e atributos, mesmo que vc não tenha definido nenhum evento/ação para ela.
-=-=-

Certo, partindo para uma lógica na hora de criação, podemos usar a técnica com draw_point(). Porém, ai chegamos ao ponto da borracha.

No paint, a borra não "apaga" o pixel desenhado, ela usa a cor segundaria definida, sabendo disso podemos usar duas variaveis para controlar o sistema de cor, vamos chama-las de cor1 e cor2. Óbviamente nesse caso elas devem ter escopo global já que váris objetos irão precisar dessa informação.

Setando duas variaveis o problema do lapis e borracha já está praticamente resolvido, basta usar o draw_point com a cor referida da ferramenta. Se for o pincel cor1, a borracha com a cor2.

Balde de tinta
Agora temos um grande problema. O balde de tinta preenche áreas com uma cor sólida, se guiando por limitações de linhas compostas por pixels de uma mesma cor. Exemplo:
0 = branco
1 = preto
2 = azul

0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 0
0 1 0 0 0 0 1 0
0 1 0 0 0 0 1 0
0 1 0 0 0 0 1 0
0 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0

Como podem ver, existe uma área branca completamente contornada por pixels em preto, ao usar o balde de tinta com a cor azul nessa área, o resultado seria um preenchimento completo APENAS da area limitada pelos pixels escuros. Resultado:

0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 0
0 1 2 2 2 2 1 0
0 1 2 2 2 2 1 0
0 1 2 2 2 2 1 0
0 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0

Porém, se nessas linhas pretas ao redor, 1 pixel estivesse faltando, ele preencheria toda a parte de dentro e de fora do quadrado. Resultado:

2 2 2 2 2 2 2 2
2 1 1 1 1 1 1 2
2 1 2 2 2 2 1 2
2 1 2 2 2 2 2 2
2 1 2 2 2 2 1 2
2 1 1 1 1 1 1 2
2 2 2 2 2 2 2 2

Em negrito, a "brecha" mencionada
-=-=-=-

Ok, um monte de texto e número para explicar o óbvio, mas é bom ter isso para servir como uma referência para pensarmos na solução.

O que precisamos? De uma forma de checar que se a área onde clicamos com o balde esta cercada, em qualquer forma, por pixels de outra cor. Caso esteja, pinta apenas essa área interna, caso contrario essa área e todos os pixel na tela que estiverem na mesma cor do pixel clicado.

Como fazer isso? Boa pergunta!
O problema vem em checar se há pixels ao redor, não preciso dizer que é inviavel usar uma matriz aqui pois seriam infinitos indices já que supostamento o usuário pode escolher o tamanho da tela em que quer desenhar.

Certo, poderiamos fazer um loop para ir checando pixel por pixel ao redor com draw_getpixel() e comparando com a cor de onde foi clicado com o balde maaaaaas, essa função é lenta, seu programa teria problemas ao checar áreas muito grandes mantendo a tela congelada no processo.

Nós temos os problemas, agora para galera praticar um pouquinho o raciocinio lógico, gostaria que se alguém tiver alguma idéia poste para discutirmos.

Isso é um exercício de lógica, não depende de um grande conhecimento de gml nem nada. Fica o desafio Smile

Espero ter ajudado e qualquer dúvida não hesitem em perguntar.


flw..........


Última edição por Henrique-HB em Qua 23 Jun 2010, 00:11, editado 1 vez(es) (Razão : erro grave de portuga :D)

Henrique-HB

Número de Mensagens : 114
Data de inscrição : 23/06/2008
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 10:09

obrigado pela ajuda de todos, conseguiram responder parte de minha duvida, mas como é que salva o resultado em um arquivo png ou jpg?

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por Convidad em Qua 23 Jun 2010, 10:19

crie um sprite qualquer,e bote quando a pessoa clicar aparecer uma mensagem disendo aperte F9,ai a pessoa aperta e salva uma imagem do desenho dela no diretorio onde esta o programa Very Happy,o basico Very Happy

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 10:23

Não entendi, pode explicar mais detalhadamente?

EDIT:

Não consigo usar o draw_point, simplesmente não acontece nada!! Consequentemente não da para fazer a borracha e não consegui entender como salva, alguem pode postar uma engine? ou tentar explicar melhor, agradeço a ajuda de todos!!

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por Convidad em Qua 23 Jun 2010, 11:02

pera ai acho que tenho um simples que eu fis Very Happy

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 11:04

tô perando pedroarts, agradeço sua ajuda

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por Convidad em Qua 23 Jun 2010, 11:13

http://rapidshare.com/files/402004957/paint2.gmk.html
simple mas voce pode editar para melhorar o programa

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 11:16

Não sei por que mas não funfa, em que gm você fez a engine?

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por Convidad em Qua 23 Jun 2010, 11:18

GM 8

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 11:23

Haaaaaaa, agora entendi a engine, é para salvar a img na pasta do jogo, funfou, mas eu queria poder escolher o diretório para salvar, e ainda não consegui usar o draw point, mas obrigado pedroarts

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por Convidad em Qua 23 Jun 2010, 11:24

hmm nao sei fasser isto nao mas axo que tem aki no forum

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 11:26

vou dar uma pesquisada, e quem puder me ajudar com o terrivel drawn_point agradeço

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por Henrique-HB em Qua 23 Jun 2010, 11:28

Que bom que eu escrevi aquele big post a toa. Galera, não se pode criar inumeras instancias como forma de pintar.

Peço desculpas a moderação se isso foi flood, mas eu tentei propor um brainstorm pelo menos. :S


flw........

Henrique-HB

Número de Mensagens : 114
Data de inscrição : 23/06/2008
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por Convidad em Qua 23 Jun 2010, 11:30

//abrir
game=get_open_filename("","")
game_load(game)
//salvar
game=get_save_filename("","")
game_save(game)

iso e uma forma de salvar a imagem para editala depois

cred para pedro henrique Very Happy

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 11:33

Henrique-HB, seu post não foi atoa me ajudou a comprender o espirito da coisa, mas infelizmente eu não sei como usar o draw_point(), ja tentei um monte de coisa mas não da, eu entendi que ciar varias instancias para desenhar é ruin, por isso estou perguntando como usar o draw_point.

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por Henrique-HB em Qua 23 Jun 2010, 12:05

mateus luz escreveu:Henrique-HB, seu post não foi atoa me ajudou a comprender o espirito da coisa, mas infelizmente eu não sei como usar o draw_point(), ja tentei um monte de coisa mas não da, eu entendi que ciar varias instancias para desenhar é ruin, por isso estou perguntando como usar o draw_point.

Opa, se quer aprender mesmo e está disposta a fritar a cabeça um pouquinho pode contar com a minha ajuda. Infelizmente agora não consigo fazer um post grande como aquele pq to trampando, mas a noite quando tiver mais tranquilo já mandou outra explicação aqui.

Enquanto isso, da uma olhadinha no manual do GM pra saber como funciona o evento draw, já vai dar uma adiantada no assunto.


flw.......

Henrique-HB

Número de Mensagens : 114
Data de inscrição : 23/06/2008
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 12:38

Eu to sempre disposto a fritar a cabeça hehe, vou dar uma olhada no manual do GM e espero a tua explicação

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por dungeon333 em Qua 23 Jun 2010, 12:48

cara vc cria uma surface , e nela vc desenha oque vc quiser , é que nem um sprite só que redesenhavel
para criar surfaces eh simples
Código:

surf = surface_create(width,height)
desenhar na surface
Código:

surface_set_target(surf)
// desenha normalmente
draw_circle(10,10,30,30,false);
surface_reset_target()
e desenhar a surface na tela
Código:

draw_surface(surf,x,y);

e a ferramenta de lapis simples
Código:

surface_set_target(surf)
draw_set_color(c_black);
draw_circle(mouse_x,mouse_y,2,false)
surface_reset_target()

dungeon333

Número de Mensagens : 351
Data de inscrição : 29/05/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 12:52

dungeon333, onde se coloca cada um destes codigos(no step?draw?) e que objetos devem ser criados? vlw

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por dungeon333 em Qua 23 Jun 2010, 12:56

CREATE EVENT
Código:

surf = surface_create(500,500);
DRAW EVENT
Código:

draw_surface(surf,x,y);
GLOBAL MOUSE LEFT
Código:

surface_set_target(surf);
draw_set_color(c_black);
draw_circle(mouse_x - x,mouse_y - y,2,false);
surface_reset_target();
[/code]


dungeon333

Número de Mensagens : 351
Data de inscrição : 29/05/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 13:07

eu clico com o botão esquerdo do mouse e não acontece nada!!Paço apoio!!!!!!!!!!!!!!

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por dungeon333 em Qua 23 Jun 2010, 13:11

cara depende do lugar que vc clicou , ele desenha baeado na posiçao do mouse , olha tente coloca o objeto nas posiçoes x = 0 e y = 0 e desenhar la perto .
EDIT : se nao der certo , coloca o evento do mouse no step e testa.
EDIT : e para salvar a imagem eh so usar o codigo
[code]
surface_save("sprite0.png");
[/code]

dungeon333

Número de Mensagens : 351
Data de inscrição : 29/05/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 13:16

ok, funcionou, mais eu queria algo mais preciso, é que o softwrae que estou fazendo é para criar desenhos issométricos, então tem que ser um quadrado pequeno, e perfeito, alem disso séra preciso usar zoom para desenhar certinho.

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por dungeon333 em Qua 23 Jun 2010, 13:18

troque isto
Código:

surface_set_target(surf)
draw_set_color(c_black);
draw_circle(mouse_x,mouse_y,2,false)
surface_reset_target()
por isto
Código:

surface_set_target(surf)
draw_set_color(c_black);
draw_point(mouse_x,mouse_y)
surface_reset_target()

dungeon333

Número de Mensagens : 351
Data de inscrição : 29/05/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 13:31

dungeon333,agora o quadrado ta perfeito, mas antes no primeiro modo eu tinha feito uns rabiscos na tela, e quando mudo o código para o novo e excuto o jogo novamente os rabiscos ainda estão la!! ja tentei reiniciar o GM e não adiantou, por que isso acontece?

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por dungeon333 em Qua 23 Jun 2010, 13:34

cara nao sei nao , nao deveria ser isso , mais de qualquer modo tenta isso
no evento
CREATE
Código:

surf = surface_create(500,500);
surface_set_target(surf)
draw_clear_alpha(0,0);
surface_reset_target();
substitua pelo outro

dungeon333

Número de Mensagens : 351
Data de inscrição : 29/05/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 13:37

a muleque!!!Direitinho funcionou, mas como eu uso o image_scale para dar zoom?

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por dungeon333 em Qua 23 Jun 2010, 13:53

Código:

draw_surface_ext(surf,x,y,image_xscale,image_yscale,0,image_blend,1);

dungeon333

Número de Mensagens : 351
Data de inscrição : 29/05/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por Denis Lemos em Qua 23 Jun 2010, 14:15

Henrique-HB escreveu:
Certo, poderiamos fazer um loop para ir checando pixel por pixel ao redor com draw_getpixel() e comparando com a cor de onde foi clicado com o balde maaaaaas, essa função é lenta, seu programa teria problemas ao checar áreas muito grandes mantendo a tela congelada no processo.

Nós temos os problemas, agora para galera praticar um pouquinho o raciocinio lógico, gostaria que se alguém tiver alguma idéia poste para discutirmos.

Isso é um exercício de lógica, não depende de um grande conhecimento de gml nem nada. Fica o desafio Smile

Espero ter ajudado e qualquer dúvida não hesitem em perguntar.


flw..........
Já tentei de várias formas com o draw_get_pixel, mas fica mesmo muito lento, e só o que cheguei perto de pintar com perfeições é um quadrado, pois se pode pegar as coordenadas dos lados dele e pintar com um draw_retangle, mas é muito lento o reconhecimento !

Mas o problema maior do que fazer a checagem dos pixeis que serão pintados"(que ainda não achei um lógica certa para fazer)" é fazer pintar formas distorcidas !

Eu tinha pensado em dois meios de fazer isso:

1º: O jeito mais lento, que não funcionou por motivos óbivios, seria ir criando objetos de um pixel, e esse objeto checar se os pixeis ao seu redor são da mesma cor do pixel clicado ele pintar esses pixeis, criar ao redor cópias dele mesmo, e depois se auto destruir para não gastar memória, mas mesmo assim se criam tantos objetos e esses ficam usando a função draw_get_pixel que é muito lenta, que acaba travando o jogo por esse motivo e por haver tantas instâncias dela mesma na room !

2º: Não consegui fazer, mas creio que seja a lógica mais correta das duas, que conssiste em criar um objeto checador apenas !
E quando clicar o mouse criar esse objeto, e ele tomar alguma direção, e quando chegar em um pixel de cor diferente do pixel clicado, ele ir perssiguindo a linha de contorno, e à cada step ir gravado a coordenada em uma "array", até que complete a volta !
Depois usar essas coordenadas para pintar a forma resultante usando o draw_primitive !
Assim daria para pintar qualquer forma que fosse o desenho !
Mas o problema é fazer a checagem perssiguir a linha de contorno, mas creio que até agora a lógica mais perto de como fazer seja essa, mas vamos esperar aparecer outra melhor !

Denis Lemos

Número de Mensagens : 938
Idade : 28
Data de inscrição : 17/05/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 15:17

dungeon333 escreveu:
Código:

draw_surface_ext(surf,x,y,image_xscale,image_yscale,0,image_blend,1);


Não consegui,onde vai este code,temque mechernele?

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por Denis Lemos em Qua 23 Jun 2010, 16:24

mateus luz escreveu:
dungeon333 escreveu:
Código:

draw_surface_ext(surf,x,y,image_xscale,image_yscale,0,image_blend,1);


Não consegui,onde vai este code,temque mechernele?

Amigo, coloque isso no draw do seu objeto que é o desenho, e onde está image_xscale e image_yscale, você coloca um valor que será o tamanho da imagem, coloque = à 2 que será o dobro do tamanho original !


Obs:
Acho muito complicado você conseguir fazer um programa desse tipo se não sabe nem onde se coloca os códigos, assim quem vai acabar criando o programa são os outros membros que estão toda hora dizendo qual o código, como que faz, pra que serve e onde coloca !

Eu sei que você vai achar chato eu dizer isso, mas o bom seria você tentar fazer coisas bem mais simples por enquanto, até aprender a interface do GM, e a sua lógica, para que serve cada evento e o que coloca em cada um, senão você não saberá para que serve esses códigos e o que fazer com eles, o que aposto que você não sabe, pois senão quando chegar em algo mais complicado que isso, não terá ninguém que saberá responder e você só terá a opição de desistir do projeto, mas se você aprender primeiro o que está fazendo, saberá contornar a situção e inventar seu próprio jeito de resolver o problema, fica aí a minha dica, não desanime com isso, apenas estou tentando evitar uma possivel frustração sua posteriormente, que já aconteceu comigo mesmo enquanto fazia um programa estilo o seu, que foi o caso do "balde de tintas", isso depois de eu já ter feito a maioria das ferramentas !

Denis Lemos

Número de Mensagens : 938
Idade : 28
Data de inscrição : 17/05/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 16:45

Denis Lemos, eu não consegui usar o image_scale daquele codigo por que eu quero o seguinte


quando aprtar a tecla + ele aumenta a scala da imagem, tentei colocar aquele codigo no evento keyboar + mas não deu certo, por isso perguntei onde tinha de colocar o codigo, e quanto a sua obs, concordo em partes, mas desistir não esta no meu vocabulario e perseverar é meu sobrenome, e quanto ao meu programa, ja tenho algumas ferramentas, agora so falta o zoom, ou seja, 80% do program foi eu que fiz,por isso acho que me comprendeu mal, o forum é para perguntar aquilo que você não sabe, eu não sabia desta parte e perguntei, portanto espero que me ajudem.



mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por dungeon333 em Qua 23 Jun 2010, 16:50

no evento de keyboard + vc coloca
Código:

image_xscale += 0.05
image_yscale += 0.05
e no draw
Código:

draw_surface_ext(surf,x,y,image_xscale,image_yscale,0,image_blend,1);

dungeon333

Número de Mensagens : 351
Data de inscrição : 29/05/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por mateus luz em Qua 23 Jun 2010, 17:43

Vou testar, se funcionar ja dou um edit

Edit: o zoom funciona, mas quando eu aproximo a imagem e clico os pontos não saem mais onde o mouse esta, e sim mais abaixo, alem disso a tela fica cheia de tipo rabiscos de varias cores.

Edit2: Modifiquei um pouco os codigos e a tela não esta mais rabiscada, mas os pontos criados com zoom ainda não saem na ponta do mouse

mateus luz

Número de Mensagens : 340
Idade : 20
Data de inscrição : 12/04/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por dungeon333 em Qua 23 Jun 2010, 18:32

cara ai vc vai precisar de calculos , por exemplo
Código:

draw_point(floor((mouse_x - x) * image_xscale),floor(mouse_y - y) * image_yscale));
tenta esse , se nao der vc vai ter q criar alguma formula para isso

dungeon333

Número de Mensagens : 351
Data de inscrição : 29/05/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Farramentas de paint no GM

Mensagem por Conteúdo patrocinado Hoje à(s) 12:37


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum