Pergunta sobre a origem do sprite

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

Pergunta sobre a origem do sprite

Mensagem por bimorx em Sab 21 Ago 2010, 12:43

Tem como eu editar a origin do meu sprite comparando com a de outro? por exemplo, pra testar a origin tenho q ficar clicando em Run The Game, não teria como eu testar a origin sem ter q ficar testando o jogo todo?
Para explicar melhor:
Quero testar a origin do objeto obj_weapon(são varias sprite, cerca de 8 a 10) em relação com o objeto obj_player

bimorx

Número de Mensagens : 153
Idade : 21
Data de inscrição : 24/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Pergunta sobre a origem do sprite

Mensagem por Henrique-HB em Sab 21 Ago 2010, 14:19

Não entendi direito, vc quer setar um novo ponto para a origem DURANTE a execução do jogo?

Henrique-HB

Número de Mensagens : 114
Data de inscrição : 23/06/2008
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Pergunta sobre a origem do sprite

Mensagem por GuiEdu em Sab 21 Ago 2010, 14:27

Henrique-HB escreveu:Não entendi direito, vc quer setar um novo ponto para a origem DURANTE a execução do jogo?

Bem cara, pelo que eu entendi, ele quer ver se ao trocar de arma, elas ficam no msm "eixo", só que quer fazer isso sem rodar o jogo, eu acho que não tem como não, mas sei lá xD

GuiEdu

Número de Mensagens : 505
Idade : 23
Data de inscrição : 04/06/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Pergunta sobre a origem do sprite

Mensagem por bimorx em Sab 21 Ago 2010, 16:22

Quero poder editar, alterar ou ajustar, a origem de uma sprite comparando em outra, por exemplo, no word quando fazemos um quadrado e um circulo, eu posso pegar o circulo e ir movendo esse circulo até o quadrado. sacou? quero ver, em vez de ficar tentando adivinhar quando a origin vai dar certo ou não, ou talvez eu não saiba como fazer origin direito Rolling Eyes


é mais ou menos isso q o Henrique disse mesmo...

bimorx

Número de Mensagens : 153
Idade : 21
Data de inscrição : 24/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Pergunta sobre a origem do sprite

Mensagem por Henrique-HB em Sab 21 Ago 2010, 16:33

bimorx escreveu:Quero poder editar, alterar ou ajustar, a origem de uma sprite comparando em outra, por exemplo, no word quando fazemos um quadrado e um circulo, eu posso pegar o circulo e ir movendo esse circulo até o quadrado. sacou? quero ver, em vez de ficar tentando adivinhar quando a origin vai dar certo ou não, ou talvez eu não saiba como fazer origin direito Rolling Eyes


é mais ou menos isso q o Henrique disse mesmo...

Então, posso estar falando besteira agora, mas a principio vc não pode alterar a origem durante a execução. Porém, vc já tentou escrever o x e y do objeto na tela e ir movendo? Afinal o x,y do objeto na execução é a origem.

Henrique-HB

Número de Mensagens : 114
Data de inscrição : 23/06/2008
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Pergunta sobre a origem do sprite

Mensagem por bimorx em Dom 22 Ago 2010, 10:14

Pô, confundiu tudo na minha cabeça agora, como vcs fazem com as suas origens? fala ae pra eu entender...

bimorx

Número de Mensagens : 153
Idade : 21
Data de inscrição : 24/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Pergunta sobre a origem do sprite

Mensagem por fonetico em Dom 22 Ago 2010, 12:54

Origin não tem segredo tecnicamente. Você simplesmente coloca a "cruz" no ponto que o objeto será movimentado, ou seja, seu eixo, fazendo isso com o outro objeto também.

Acho que você não entendeu muito bem, então vamos a um exemplo!

Há um player e uma arma, são objetos distintos. Seu objetivo aqui é fazer com que o cabo da arma fique na mão do player. Para isso, você vai na sprite do player e nela você coloca a "cruz" exatamente na mão dele. Depois, vai no sprite da arma e coloca a cruz exatamente no cabo dela. Depois, como tod a arma você só usa o código:

x = player.x
y = player.y

Nesse caso, a arma ficará exatamente na posição correta.

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Pergunta sobre a origem do sprite

Mensagem por bimorx em Seg 23 Ago 2010, 12:11

mas tipo, se eu colocar a origin bem no cabo da arma não vai dar certo pelo seguinte: outras sprites como pular, abaixar, andar, etc... não vai dar cero na colisão com o chão :S mas vlw ae!

bimorx

Número de Mensagens : 153
Idade : 21
Data de inscrição : 24/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Pergunta sobre a origem do sprite

Mensagem por Convidad em Sab 28 Ago 2010, 18:25

Tem como eu editar a origin do meu sprite comparando com a de outro? por exemplo, pra testar a origin tenho q ficar clicando em Run The Game, não teria como eu testar a origin sem ter q ficar testando o jogo todo?
Para explicar melhor:
Quero testar a origin do objeto obj_weapon(são varias sprite, cerca de 8 a 10) em relação com o objeto obj_player

Então, posso estar falando besteira agora, mas a principio vc não pode alterar a origem durante a execução.

É possível. No GM há uma função que define o pivô de qualquer sprite a qualquer momento da execução do jogo. Se chama sprite_set_offset(). Pra definir o pivô de um sprite em relação à outro você precisará de "checar" a configuração de pivôs desse último com as funções que retornam: sprite_get_xoffset() e sprite_get_yoffset(). Eu posso ter errado porque de cabeça eu não lembro mas tenho quase certeza de que é assim mesmo que escreve.

Pra saber quais são os pontos de pivô "x" e "y" do sprite "jogador_spr":

Código:
pontox := sprite_get_xoffset(jogador_spr);
pontoy := sprite_get_yoffset(jogador_spr);

Você também pode buscar o sprite que está sendo usado por um objeto ou instância, por exemplo:

Código:
pontox := sprite_get_xoffset(objeto.sprite_index);
pontoy := sprite_get_yoffset(instancia.sprite_index);

Pra configurar o ponto de pivo de um sprite, você usa a função que eu mensionei:

Código:
sprite_set_offset(sprite_a_mudar, pontox, pontoy );

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Pergunta sobre a origem do sprite

Mensagem por bimorx em Sab 04 Set 2010, 09:59

Ok, mas ondeu eu coloco essas funções? eu crio um obj_controller para isso?Dai eu posso colocar essas funções nas SETAS do teclado pra ir definindo?

Obrigado!

bimorx

Número de Mensagens : 153
Idade : 21
Data de inscrição : 24/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Pergunta sobre a origem do sprite

Mensagem por vinians em Sab 04 Set 2010, 10:48

Acho que entendi oque voce quer. Pra voce poder ver a origem do sprite, sugiro que voce coloque no evento draw dos dito cujos:
Evento DRAW:
Código:

//desenha o sprite
draw_sprite(sprite_index, image_index, x, y);
//Desenha a posicao do offset embaixo do sprite
ox = sprite_get_xoffset(sprite_index);
oy = sprite_get_yoffset(sprite_index);
draw_text(x, y + sprite_height + 12, "Origem x: " + string(ox) + " Origem y:" + string(oy));
Com isso você pode visualizar as posicoes durante o jogo.

Ainda tem como você fazer a alteracao durante o jogo pra ir visualizando.
Coloque no Evento Mouse-> Left Pressed dos objetos:
Código:

var ox, oy;
keyboard_string = ""
io_clear();
draw_set_color(c_black);
draw_rectangle(0, room_height - 32, room_width, room_height, false);
draw_set_color(c_white);
while (keyboard_lastkey != vk_enter)
{
    draw_text(10, room_height-16, "Digite offset x:" + keyboard_string);
    io_handle();
    screen_refresh();
}
ox = real(keyboard_string);

keyboard_string = ""
io_clear();
draw_set_color(c_black);
draw_rectangle(0, room_height - 32, room_width, room_height, false);
draw_set_color(c_white);
while (keyboard_lastkey != vk_enter)
{
    draw_text(10, room_height-16, "Digite offset y:" + keyboard_string);
    io_handle();
    screen_refresh();
}
oy = real(keyboard_string);
sprite_set_offset(sprite_index, ox, oy);

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Pergunta sobre a origem do sprite

Mensagem por Conteúdo patrocinado Hoje à(s) 08:12


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