Entrar
Últimos assuntos
» Problema ao entrar por uma porta e voltar por elapor aminaro Seg 06 maio 2024, 10:08
» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43
» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» 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
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
Farramentas de paint no GM
+2
Denis Lemos
mateus luz
6 participantes
Página 1 de 2
Página 1 de 2 • 1, 2
Farramentas de paint no GM
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
Agradeço de antemão
mateus luz- Data de inscrição : 12/04/2010
Reputação : 6
Número de Mensagens : 340
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Farramentas de paint no GM
É 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:
E o zoom só aumentar o image_xscale=2 e image_yscale=2 do objeto que será o desenho !!!
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- 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: Farramentas de paint no GM
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!
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- Games Ranking :
Notas recebidas : C
Data de inscrição : 10/06/2010
Reputação : 36
Número de Mensagens : 2799
Prêmios :
x 0 x 0 x 0
x 0 x 1 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
- Java
- C ou C++
Re: Farramentas de paint no GM
Bem Vc so Troka uns Trekos deesse Tutu ai mais tem nada naum o Importante e ajudar =D1º-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 Tambem Ja tentei fazer um Balde tinta Mais Nao conseui Tentei de varas e varias Formas Mais nenhuma com Susseço =/
mayck- Data de inscrição : 11/01/2010
Reputação : 0
Número de Mensagens : 370
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Farramentas de paint no GM
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
-------------------------------
o resto e complicado para falar em mp
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
-------------------------------
o resto e complicado para falar em mp
Convidad- Convidado
Re: Farramentas de paint no GM
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
Espero ter ajudado e qualquer dúvida não hesitem em perguntar.
flw..........
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
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) (Motivo da edição : erro grave de portuga :D)
Henrique-HB- Data de inscrição : 23/06/2008
Reputação : 6
Número de Mensagens : 114
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Farramentas de paint no GM
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- Data de inscrição : 12/04/2010
Reputação : 6
Número de Mensagens : 340
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Farramentas de paint no GM
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 ,o basico
Convidad- Convidado
Re: Farramentas de paint no GM
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!!
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- Data de inscrição : 12/04/2010
Reputação : 6
Número de Mensagens : 340
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Farramentas de paint no GM
tô perando pedroarts, agradeço sua ajuda
mateus luz- Data de inscrição : 12/04/2010
Reputação : 6
Número de Mensagens : 340
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Farramentas de paint no GM
http://rapidshare.com/files/402004957/paint2.gmk.html
simple mas voce pode editar para melhorar o programa
simple mas voce pode editar para melhorar o programa
Convidad- Convidado
Re: Farramentas de paint no GM
Não sei por que mas não funfa, em que gm você fez a engine?
mateus luz- Data de inscrição : 12/04/2010
Reputação : 6
Número de Mensagens : 340
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Farramentas de paint no GM
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- Data de inscrição : 12/04/2010
Reputação : 6
Número de Mensagens : 340
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Farramentas de paint no GM
hmm nao sei fasser isto nao mas axo que tem aki no forum
Convidad- Convidado
Re: Farramentas de paint no GM
vou dar uma pesquisada, e quem puder me ajudar com o terrivel drawn_point agradeço
mateus luz- Data de inscrição : 12/04/2010
Reputação : 6
Número de Mensagens : 340
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Farramentas de paint no GM
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........
Peço desculpas a moderação se isso foi flood, mas eu tentei propor um brainstorm pelo menos. :S
flw........
Henrique-HB- Data de inscrição : 23/06/2008
Reputação : 6
Número de Mensagens : 114
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Farramentas de paint no GM
//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
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
Convidad- Convidado
Re: Farramentas de paint no GM
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- Data de inscrição : 12/04/2010
Reputação : 6
Número de Mensagens : 340
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Página 1 de 2 • 1, 2
Tópicos semelhantes
» GM Paint - Um paint feito no GM! Quer ajudar?
» mago no paint
» Rayman no paint
» Artes no Paint
» Artes do Paint !
» mago no paint
» Rayman no paint
» Artes no Paint
» Artes do Paint !
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos
|
|