Conectar-se
Quem está conectado
25 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 24 Visitantes

rafaelviodres1

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
Data de inscrição : 12/04/2010
Número de Mensagens : 340
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Farramentas de paint no GM

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
avatar
Data de inscrição : 17/05/2009
Número de Mensagens : 938
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Farramentas de paint no GM

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 !!!
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 10/06/2010
Número de Mensagens : 2704
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Farramentas de paint no GM

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!
avatar
Data de inscrição : 11/01/2010
Número de Mensagens : 370
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Farramentas de paint no GM

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 =/
Convidad
Convidado

Re: Farramentas de paint no GM

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
avatar
Data de inscrição : 23/06/2008
Número de Mensagens : 114
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Farramentas de paint no GM

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)
Data de inscrição : 12/04/2010
Número de Mensagens : 340
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Farramentas de paint no GM

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?
Convidad
Convidado

Re: Farramentas de paint no GM

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
Data de inscrição : 12/04/2010
Número de Mensagens : 340
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Farramentas de paint no GM

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!!
Convidad
Convidado

Re: Farramentas de paint no GM

em Qua 23 Jun 2010, 11:02
pera ai acho que tenho um simples que eu fis Very Happy
Data de inscrição : 12/04/2010
Número de Mensagens : 340
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Farramentas de paint no GM

em Qua 23 Jun 2010, 11:04
tô perando pedroarts, agradeço sua ajuda
Convidad
Convidado

Re: Farramentas de paint no GM

em Qua 23 Jun 2010, 11:13
http://rapidshare.com/files/402004957/paint2.gmk.html
simple mas voce pode editar para melhorar o programa
Data de inscrição : 12/04/2010
Número de Mensagens : 340
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Farramentas de paint no GM

em Qua 23 Jun 2010, 11:16
Não sei por que mas não funfa, em que gm você fez a engine?
Convidad
Convidado

Re: Farramentas de paint no GM

em Qua 23 Jun 2010, 11:18
GM 8
Data de inscrição : 12/04/2010
Número de Mensagens : 340
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Farramentas de paint no GM

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

Re: Farramentas de paint no GM

em Qua 23 Jun 2010, 11:24
hmm nao sei fasser isto nao mas axo que tem aki no forum
Data de inscrição : 12/04/2010
Número de Mensagens : 340
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Farramentas de paint no GM

em Qua 23 Jun 2010, 11:26
vou dar uma pesquisada, e quem puder me ajudar com o terrivel drawn_point agradeço
avatar
Data de inscrição : 23/06/2008
Número de Mensagens : 114
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Farramentas de paint no GM

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........
Convidad
Convidado

Re: Farramentas de paint no GM

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
Data de inscrição : 12/04/2010
Número de Mensagens : 340
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Farramentas de paint no GM

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.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum