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
Como fazer a tela ficar toda preta e voltar ao normal onde clica?
4 participantes
Página 1 de 2
Página 1 de 2 • 1, 2
Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Como eu faço para em 3 segundos a tela ficar toda preta, e onde eu clicar, somente onde eu clicar, essa parte da tela (um círculo com raio de 8 pixels) ficar como estava antes de ficar preta?
Última edição por Knonick em Sex 10 Jun 2011, 00:00, editado 1 vez(es)
Knonick- Data de inscrição : 10/05/2011
Reputação : 0
Número de Mensagens : 92
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Crie um background preto com qualquer dimensão.
Agora vá na aba background na room e marque a opção 'visible when room starts' e a opção 'Stretch', não selecione o background criado.
Agora crie um objeto e coloque o seguinte script.
//CREATE
alarm[0] = room_speed * 3;
//ALARM [0]
background_index[0] = nome_background_criado;
//DRAW
if (mouse_check_button(mb_left))
{
if (background_index[0] == nome_background_criado)
{
draw_circle_color(mouse_x,mouse_y,16,background_color,background_color,0);
}
}
Pronto agora teste e enquanto você estiver clicando ele irá mostrar um circulo onde terá a cor do background.
Agora vá na aba background na room e marque a opção 'visible when room starts' e a opção 'Stretch', não selecione o background criado.
Agora crie um objeto e coloque o seguinte script.
alarm[0] = room_speed * 3;
//ALARM [0]
background_index[0] = nome_background_criado;
//DRAW
if (mouse_check_button(mb_left))
{
if (background_index[0] == nome_background_criado)
{
draw_circle_color(mouse_x,mouse_y,16,background_color,background_color,0);
}
}
Pronto agora teste e enquanto você estiver clicando ele irá mostrar um circulo onde terá a cor do background.
Carlos L.- Games Ranking :
Notas recebidas : C
Data de inscrição : 26/09/2010
Reputação : 8
Número de Mensagens : 271
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Desenha uma surface do tamanho da tela, toda preta, num objeto de depth mais baixa. Desenhe ela em alpha crescente, de modo que leve 3 segundos pra chegar a 1 (a velocidade deverá ser 1/(3*room_speed)). Depois, onde clicar, você altera essa surface, subtraindo um círculo de raio 16.
Informações mais aprofundadas no meu tutorial de surfaces (link na assinatura).
Informações mais aprofundadas no meu tutorial de surfaces (link na assinatura).
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Carlos, o seu funcionou, mas não do jeito que eu queria. Queria que o preto ficasse em cima de tudo na tela, até os objetos. E outra coisa, a room tem background que é uma imagem, e o círculo só é criado, se o background da room for uma só cor. E por último, queria que o circulo criado não sumisse quando eu soltasse o botão esquerdo do mouse. E uma pequena correção, o círculo que quero não tem raio de 16 pixels, e sim 8 pixels (escrevi errado no tópico).
Saim, li o tutorial, mas não entendi direito o que é uma surface.
Saim, li o tutorial, mas não entendi direito o que é uma surface.
Knonick- Data de inscrição : 10/05/2011
Reputação : 0
Número de Mensagens : 92
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Ou, em outras palavras, "seu tutorial não serve pra nada!". Tudo bem, vamos por partes.
Uma surface é uma pintura. Tipo uma sprite, mas fácil de alterar. Ela pode ser do tamanho que você quiser e você quer ela do tamanho da tela. Ela pode conter o que você quiser e você quer que ela contenha um retângulo preto com uns buracos transparentes.
Primeiro, você cria a surface e dá um nome pra ela. Eu adoro chamar surfaces de "Surf". Depois você deixa ela toda preta.
create:
Uma surface é uma pintura. Tipo uma sprite, mas fácil de alterar. Ela pode ser do tamanho que você quiser e você quer ela do tamanho da tela. Ela pode conter o que você quiser e você quer que ela contenha um retângulo preto com uns buracos transparentes.
Primeiro, você cria a surface e dá um nome pra ela. Eu adoro chamar surfaces de "Surf". Depois você deixa ela toda preta.
create:
- Código:
Surf=surface_create(room_width, room_height)
surface_set_target(Surf)
draw_clear_alpha(c_black, 1)
surface_reset_target()
- Código:
if mouse_check_button_pressed(mb_left){
surface_set_target(Surf)
draw_set_blend_mode(bm_subtract) //passa a remover ao invés de desenhar
draw_circle_color(mouse_x, mouse_y, 8, c_white, c_white, 0)//verifique a ordem dos argumentos
draw_set_blend_mode(bm_normal) //volta a desenhar ao invés de remover
surface_reset_target()
}
- Código:
draw_surface(0, 0, Surf)
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Eu não quis falar mal do seu tutorial, só quis dizer que ficou um pouco confuso para mim (não sei se foi porque eu estava com sono).
E sobre essa mini explicação (que eu entendi), funcionou perfeitamente, só preciso que quando eu arrastar o mouse segurando o botão, continuasse criando os círculos transparentes.
---EDIT---
Já consegui, mudei o mouse_check_button_pressed para mouse_check_button, mas quando eu arrasto o mouse rapidamente, os círculos criados ficam separados, queria que ficassem juntos. Créditos garantidos no meu jogo.
E sobre essa mini explicação (que eu entendi), funcionou perfeitamente, só preciso que quando eu arrastar o mouse segurando o botão, continuasse criando os círculos transparentes.
---EDIT---
Já consegui, mudei o mouse_check_button_pressed para mouse_check_button, mas quando eu arrasto o mouse rapidamente, os círculos criados ficam separados, queria que ficassem juntos. Créditos garantidos no meu jogo.
Knonick- Data de inscrição : 10/05/2011
Reputação : 0
Número de Mensagens : 92
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
E eu não estava reclamando também. É que eu esqueço que teclado não tem tom de voz. Eu estava fazendo piada. Tá, eu não sou muito bom nisso...Knonick escreveu:Eu não quis falar mal do seu tutorial, só quis dizer que ficou um pouco confuso para mim (não sei se foi porque eu estava com sono).
Agora, quanto aos círculos separados... O problema é mais complexo. O lance é que o mouse não faz um caminho que passa por todos os pontos, ele pula de onde ele estava pra onde ele está, o que dá essa impressão de surface com catapora. Você poderia interpolar entre esses pontos e repetir o círculo um número suficientemente grande de vezes pra dar a impressão de que o movimento é contínuo, mas pra isso, você precisa armazenar uma variável pra onde o mouse estava no step anterior. E ao clicar o mouse (evento mouse_check_button_pressed), essa variável tem que ser modificada pra onde o mouse está nesse instante, senão vai dar uma zicazinha.
Posso fazer uma enginezinha, se você quiser.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Ah bom, então assim sim.saim escreveu:E eu não estava reclamando também. É que eu esqueço que teclado não tem tom de voz. Eu estava fazendo piada.
E quanto ao que você falou, é melhor fazer uma engine mesmo, pois ainda sou muito novato para entender tudo que você disse.
Knonick- Data de inscrição : 10/05/2011
Reputação : 0
Número de Mensagens : 92
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Ei-la!
create:
Edit: Hei, testei aqui, o efeito é bem legal!
create:
- Código:
mxp=mouse_x //mouse_x_previous
myp=mouse_y //mouse_y_previous
int=10 //número de interpolações
//cria a surface preta, como antes
- Código:
if mouse_check_button(mb_left){
surface_set_target(Surf)
draw_set_blend_mode(bm_subtract)
var i, dir, dist;
dir =point_direction(mxp, myp, mouse_x, mouse_y)
dist=point_distance (mxp, myp, mouse_x, mouse_y)/int
for(i=0; i<=int; i+=1){ //não tenho certeza se é <= ou só <
draw_circle_color(mxp+lengthdir_x(dist*i, dir), myp+lengthdir_y(dist*i, dir), 8, c_white, c_white, 0)
}
draw_set_blend_mode(bm_normal)
surface_reset_target()
}
//agora, no final do step, atualiza o mxp/myp
mxp=mouse_x
myp=mouse_y
- Código:
if mouse_check_button_pressed(mb_left){
mxp=mouse_x
myp=mouse_y
}
if mouse_check_button(mb_left){
surface_set_target(Surf)
draw_set_blend_mode(bm_subtract)
var i, dir, dist;
dir =point_direction(mxp, myp, mouse_x, mouse_y)
dist=point_distance (mxp, myp, mouse_x, mouse_y)/int
for(i=0; i<=int; i+=1){ //não tenho certeza se é <= ou só <
draw_circle_color(mxp+lengthdir_x(dist*i, dir), myp+lengthdir_y(dist*i, dir), 8, c_white, c_white, 0)
}
draw_set_blend_mode(bm_normal)
surface_reset_target()
//atualiza mxp/myp só se o mouse estiver apertado
mxp=mouse_x
myp=mouse_y
}
Edit: Hei, testei aqui, o efeito é bem legal!
Última edição por saim em Sex 10 Jun 2011, 11:17, editado 1 vez(es)
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Não funcionou. A tela não fica preta, e quando eu clico na tela dá erro.
Knonick- Data de inscrição : 10/05/2011
Reputação : 0
Número de Mensagens : 92
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Veja o último comentário no create event. Você criou a surface? (só pegar o create event anterior e copiar/colar em algum lugar do novo create event).Ah, precisa manter o draw event, também!
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Funcionou! Ainda fica bolinhas separadas algumas vezes, mas tem que arrastar rápido para isso acontecer. Se desse para arrumar ficaria melhor. E outra coisa, queria que a tela só ficasse preta depois de 3 segundos.
Knonick- Data de inscrição : 10/05/2011
Reputação : 0
Número de Mensagens : 92
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Pra resolver o problema da velocidade, aumente a interpolação. Eu usei int=10, você pode usar 20, 30, 100, o que quiser.
Como assim, "a tela só ficasse preta depois de 3 segundos"? Ela vai escurecendo aos poucos ou leva um tempo pra aparecer a surface?
Lembre-se que você pode desenhar uma surface com alpha diferenciado usando draw_surface_ext.
Como assim, "a tela só ficasse preta depois de 3 segundos"? Ela vai escurecendo aos poucos ou leva um tempo pra aparecer a surface?
Lembre-se que você pode desenhar uma surface com alpha diferenciado usando draw_surface_ext.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
O bug da interpolação eu arrumei, e a tela é pra ir escurecendo e demorar 3 segundos para ficar preta.
Knonick- Data de inscrição : 10/05/2011
Reputação : 0
Número de Mensagens : 92
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
vai aumentando o alpha aos poucos. Começa com alpha=0 e a cada step, aumente1/(3*room_speed).
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Mas como eu uso o draw_surface_ext?
Knonick- Data de inscrição : 10/05/2011
Reputação : 0
Número de Mensagens : 92
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Uma tradução:
manual escreveu:draw_surface_ext(id,x,y,xscale,yscale,rot,color,alpha) Desenha a surface na escala e rotacionada misturada com uma cor (use c_white pra não misturar) e com transparência alpha (0-1).
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Mas o que é xscale, yscale e rot?
Knonick- Data de inscrição : 10/05/2011
Reputação : 0
Número de Mensagens : 92
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
As escalas (com relação a x e y) e rotação. Pra não mexer nelas, coloque 1, 1 e 0.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?
Tentei de várias formas fazer a tela escurecer, mas não consegui. Poderia me explicar melhor como fazer?
Knonick- Data de inscrição : 10/05/2011
Reputação : 0
Número de Mensagens : 92
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
» como fazer que o jogo apareça em tela toda?
» como fazer uma room para e voltar de onde parou
» como fazer o inimigo andar até a ponta do chão voltar andar até a outra ponta e ficar repetindo?
» como fazer os inimigos seguirem o personagem? e tambem como fazer com que ele me faza voltar pro inicio da fase quando me toca?
» Como faço o sprite voltar ao normal?
» como fazer uma room para e voltar de onde parou
» como fazer o inimigo andar até a ponta do chão voltar andar até a outra ponta e ficar repetindo?
» como fazer os inimigos seguirem o personagem? e tambem como fazer com que ele me faza voltar pro inicio da fase quando me toca?
» Como faço o sprite voltar ao normal?
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos
|
|