[ RTS ] criar aquele "quadrado" que seleciona varias unidades

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

[ RTS ] criar aquele "quadrado" que seleciona varias unidades

Mensagem por Esaucm98 em Qui 24 Maio 2012, 23:38

eai, sabe quando vc joga um rts (estrategia em tempo real) e segura com botao do mouse, e vai arrastando ai vai desenhando um quadrado na tela, se as unidades estiverem dentro desse "quadrado" elas vao ser selecionadas.
tipo pra selecionar várias de uma vez, bom e isso preciso saber como se faz,

não achei nada parecido por aqui,

ps: unidade = soldado...etc..

vlw

Esaucm98

Ranking : Nota D
Número de Mensagens : 275
Data de inscrição : 13/05/2012
Notas recebidas : D
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

Re: [ RTS ] criar aquele "quadrado" que seleciona varias unidades

Mensagem por William Lima em Sex 25 Maio 2012, 00:03

Para criar um quadrado daqueles existem algumas engines por aí... só dar uma pesquisada... Mas vou responder do mesmo modo neste tópico.

Crie um:
obj_mouse

No create:
Código:

globalvar dimensao;
dimensao=0
ativado=0

No step:
Código:
if mouse_check_button_pressed(mb_left)
{dimensao[0]=mouse_x;dimensao[1]=mouse_y;ativado=1}//define posicao y e x inicial do retângulo e ativa
if mouse_check_button(mb_left)
{dimensao[2]=mouse_x;dimensao[3]=mouse_y}//define pos y e x secundaria do retangulo
if mouse_check_button_released(mb_left)
{ativado=0}// desativa

No draw:
Código:
if ativado=1
{
draw_set_alpha(0.3)
draw_rectangle(dimensao[0],dimensao[1],dimensao[2],dimensao[3],0)
draw_set_alpha(1)
draw_rectangle(dimensao[0],dimensao[1],dimensao[2],dimensao[3],1)
}

Bem, expliquei o que ocorre no step event, no create há apenas a criação das variávei que definem o objeto...
variável dimensão faz o papel de dimensionar nosso retângulo conforme o mouse e a variável ativado, faz o papel de dizer quando desenhar o retangulo... teste aí...

Para fazer com que os objetos interajam com esse quadrado, basta fazer a checagem no step dos objetos:
Código:
if x> dimensao[0] and y>dimensao[1] and x<dimensao[2] and y<dimensao[3]
{if mouse_check_button_released(mb_left){
//evento que desejar aqui
}}

William Lima

Ranking : Nota A
Número de Mensagens : 426
Idade : 22
Data de inscrição : 10/09/2010
Notas recebidas : C+A+A+B+A
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 2
   : 0

http://williammustaffa.blogspot.com

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