[Resolvido]-Draw_text sempre por cima... Valeu saim!

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

Resolvido [Resolvido]-Draw_text sempre por cima... Valeu saim!

Mensagem por moisesBR em Dom 26 Ago 2012, 22:47

tenho, crio vários objetos na room e cada um deles ao passar o mouse aparece o texto...
o problema é que cada um desses objetos tem depth=-y, e o texto está ficando atrás tambem!
alguma sugestão?

não adianta pesquisar, não achei

aproveitando...
gostaria de saber se tem como o cursor mostrar esse determinado texto ao invés do objeto.
Assim quem sabe, nesse problema sumisse.

Lembrando que uso sprite no mouse o que facilita muito, né?
codes usados no objeto:
Código:
if instance_position(mouse_x,mouse_y,id)//se o mouse estiver em cima
{
draw_text (x+15, y+0,"Tempo: "+string(tempo))
}



Última edição por moisesBR em Seg 27 Ago 2012, 13:56, editado 2 vez(es)

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]-Draw_text sempre por cima... Valeu saim!

Mensagem por saim em Seg 27 Ago 2012, 09:00

Crie um outro objeto só pra isso, e dê a ele uma depth menor que -room_height. Ao passar o mouse, defina qual o texto esse objeto deve mostrar e que, de fato, ele deve mostrar o texto.
O bug que vai surgir a partir disso é que você não vai ter um evento pra esse objeto parar de mostrar o texto. Então começam as vertentes da idéia, que dependem do seu jogo. A princípio, eu usaria um parent pra todos os objetos que mostram texto (pode ser o próprio objeto que escreve, pra ficar um objeto só). Aí, se o mouse não estiver em nenhuma child, não pode mostrar o texto
Código:
//pseudocode
SE (o mouse está sobre um child do objeto-mostra-texto){
texto_a_mostrar = objeto-child.texto;
pode_mostrar = true;
}
SENÃO{
pode_mostrar = false;
}

Possível bug: O mouse está sobre 2 objetos, mas só mostra 1 texto. Isso seria um problema?

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]-Draw_text sempre por cima... Valeu saim!

Mensagem por moisesBR em Seg 27 Ago 2012, 09:45

não exatamente, eu tinha conseguido fazer com que o objeto emitisse o texto quando o mouse passasse em cima, mas como esse e os outros objetos tem o depth iguais, (depth=-y) o que for colocado acima fica sempre atrás.
talvez a ordem de criação na room...
então pra resolver esse problema, ao invés do objeto emitir, o mouse que passa sobre ele mostraria o tal texto referente a esse objeto em particular!
Pra que isso;
monitorar o objeto em questão, no caso seu tempo, life e etc.

Outra coisa que tentei no objeto do mouse mas bugou:
Código:
with(objeto) draw_text (x,y,"Tempo: "+string(tempo))
Apareceu todos no mouse!!!
Código:
with(objeto) draw_text (x+15, y+0,"Tempo: "+string(tempo))
Ao colocar o x+ e x+ apareceream em todos!!!
Código:
draw_text (x+15, y+0,"Tempo: "+string(objeto.tempo))
Ao tentar colocar objeto.tempo não achou o referido objeto!

Não entendi muito bem como usar seu code...
Então sou obrigado colocar meu code aqui(este é o que está no objeto emissor)... Por favor usando as informações deste meu code a seguir, faça-o pra mim.
Código:
if instance_position(mouse_x,mouse_y,id)//code que diz se o mouse está em cima(o mouse, nao o objeto)
{
depth=-10000000000//exagerei kkkkk
draw_text (x+15, y+0,"Cans: "+string(usoCanteiro)+" - Timer: "+string(time)+ " - Tempo: "+string(tempo))
}
Veja como está:

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]-Draw_text sempre por cima... Valeu saim!

Mensagem por saim em Seg 27 Ago 2012, 10:29

moisesBR escreveu:depth=-10000000000
Não adianta mudar a depth no meio do draw_event. Eu não sei em que momento a alteração da depth tem efeito (acho que é entre o end_step e o draw), mas com certeza, no meio do evento, isso não vale muita coisa.
moisesBR escreveu:talvez a ordem de criação na room...
Não, a depth tem prioridade sobre o número da id na ordem dos desenhos. A ordem de criação da room influencia é no número da id.
moisesBR escreveu:Não entendi muito bem como usar seu code...
Deixa eu tentar explicar melhor, então.
Você cria um objeto. Vamos chamá-lo de obj_info (porque ele mostra as informações dos demais).
Aí, todos os outros objetos que você quer que mostre texto você coloca como child desse obj_info (ou seja, nos objetos, coloca o obj_info como parent).
Feito? Beleza, agora coloque a depth desse obj_info como muito baixa (=-10000000000).
Então você tem um objeto sem código nenhum, sem sprite nenhuma (isso é importante), numa depth baixíssima, que é parent de um monte de outros objetos. Agora, coloque código no draw_event dele.
SE ele estiver sobre alguma instancia do obj_info{
mostra um texto com as informações dessa instância (draw_text(mouse_x, mouse_y, "informação=" + string(instância . informação))).
}
Lembre-se que como os objetos são childs do obj_info, os testes de colisão retornarão verdadeiro para esse objeto. Acho que a função que você precisa é instance_position, porque ela te retorna a id da instância na posição (x, y).

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]-Draw_text sempre por cima... Valeu saim!

Mensagem por moisesBR em Seg 27 Ago 2012, 11:50

coloquei o tal obj_info na room, no objeto alvo marquei esse info como parent...
Mas não estou conseguindo fazer com que este se mostre apenas quando o mouse passar e pior, aparece em todos!

Tem como fazer uma engine mesmo simples por favor? essa de info é nova pra mim outra alternativa(ruim) seria um show_menu... testei aqui mas como pretendo colocar um health...

help!

(ainda não consegui calcular o andamento do projeto, e só pretendo postar
quando concluir uma demo mas preciso dessa função)

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]-Draw_text sempre por cima... Valeu saim!

Mensagem por saim em Seg 27 Ago 2012, 13:14

ok, o código que estou sugerindo, sem pseudocode nem nada é (coloque no draw do obj_info:
Código:
var meu_alvo;
meu_alvo = instance_position(mouse_x, mouse_y, obj_info); // coloca a instância sob o mouse na variável
if (meu_alvo != noone){ //se há alguma instância sob o mouse
   draw_text(mouse_x, mouse_y, "Cans: "+string(meu_alvo . usoCanteiro)+" - Timer: "+string(meu_alvo . time)+ " - Tempo: "+string(meu_alvo . tempo)); //desenha, no mouse, as variáveis da instância
   }

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]-Draw_text sempre por cima... Valeu saim!

Mensagem por moisesBR em Seg 27 Ago 2012, 13:50

Obrigado!!!

Era isso mesmo!
Ei, de onde vc tira isso? Deixa ver... lógica, não?

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]-Draw_text sempre por cima... Valeu saim!

Mensagem por theguitarmester em Seg 27 Ago 2012, 14:13

peo que vi, é uma Pergunta Parecida Com a De Ufrarion, e que eu consegui resolver do Mesmo(ou Parecido) com que o Saim te Mostrou.
Só para Inclementar a Respota tá aqui a Engine que fiz Para Ufrarion:
Tópico:
http://gmbr.forumeiros.com/t23648p15-resolvidodraw-desenha-sobre-um-obj-mas-nao-sobre-o-outro#176795
Engine: http://adf.ly/246619/http://www.4shared.com/file/r4xwnPN5/Inv__2__Editado_por_GuitarMest.html

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]-Draw_text sempre por cima... Valeu saim!

Mensagem por saim em Seg 27 Ago 2012, 15:01

moisesBR escreveu:Ei, de onde vc tira isso? Deixa ver... lógica, não?
Yup!
E um pouco de experiência. Pra saber o que estava acontecendo de errado no seu código, eu já penei um bocado com depth. Já tentei, como você, mudar a depth durante o step event (e precisei de alguém pra me dizer que isso não ia funcionar).
Pra sacar o instance_position, eu precisei de uma engine de drag, aí fui procurando qual função poderia me retornar "a instância sob o mouse", daí nunca mais esqueci (até me esqueço de position_meeting, às vezes, mas nunca mais esqueci de instance_position).
E a lógica pro seu problema, bom, você só precisava garantir que a depth do texto fosse menor que a dos objetos SEM MUDAR a depth dos objetos. O único jeito que me veio à cabeça foi usar um objeto à parte, o resto foi correção dos possíveis bugs - que também já aconteceram comigo, por isso eu meio que já consigo prever.
Agora, digitando, me veio à cabeça que definir a depth do objeto sob o mouse no final do end step event deve funcionar, também. Isso vai trazer a sprite pra cima, junto do texto, mas isso pode não ser um problema. Se quiser economizar um objeto, pode tentar isso.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]-Draw_text sempre por cima... Valeu saim!

Mensagem por Conteúdo patrocinado Hoje à(s) 10:34


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