Problemas com sprite offset e lengthdir !!
em Sex 24 Abr 2015, 12:20
Eae galera, dá um help pro tio aqui o/
Tenho a seguinte sprite:

Ela é o cano de um canhão completo,poderia usar uma surface para desenha-la mas optei por colocar uma sprite mesmo...
Ao soltar o espaço um obj_power é criado , porém queria que fosse criado no buraco do cano e respeitasse o ângulo do mesmo,sendo lançado na angulação correta.
Para o obj_power ser criado no buraco do cano,coloquei no step:
E no create do obj_power,para respeitar a angulação:
A angulação do arremesso está correta, o problema é que o obj_power não acompanha o ângulo do obj_cano,ou seja, é criado sempre no mesmo ponto, a sprite_xoffset e sprite_yoffset não acompanham o angulo do obj_cano.Eu acho que o problema está no primeiro code, pois quando o obj_power é criado, somente no ângulo 0 ele é criado no buraco do cano ...
Uma coisa que não entendi , é que a cada vez que subo o angulo com o direcional pra cima, o obj_power é criado mais pra trás, como se acompanhasse o eixo x mas não o eixo y, isso explicaria porque somente no angulo 0 ele é criado no cano...
Já tentei resolver isso de várias formas, coloquei outro lenght nos off's, não usei lenghts ,colocando o raio e a direção separados,etc...
Talvez o problema esteja na minha lógica mesmo...
Valeu,flws !!
Tenho a seguinte sprite:

Ela é o cano de um canhão completo,poderia usar uma surface para desenha-la mas optei por colocar uma sprite mesmo...
Ao soltar o espaço um obj_power é criado , porém queria que fosse criado no buraco do cano e respeitasse o ângulo do mesmo,sendo lançado na angulação correta.
Para o obj_power ser criado no buraco do cano,coloquei no step:
- Código:
global.xoff= sprite_xoffset+209 // Guarda a coordenada x para o buraco do cano
global.yoff= sprite_yoffset+9 // Guarda a coordenada y para o buraco do cano
E no create do obj_power,para respeitar a angulação:
- Código:
direction=obj_cano.image_angle //Indica que a direção é igual ao angulo da imagem do obj_cano
x=obj_cano.x+lengthdir_x(global.xoff,direction); //Quando criado ,nascera no raio xoff com a angulação direction
y=obj_cano.y+lengthdir_y(global.yoff,direction);//Quando criado ,nascera no raio yoff com a angulação direction
A angulação do arremesso está correta, o problema é que o obj_power não acompanha o ângulo do obj_cano,ou seja, é criado sempre no mesmo ponto, a sprite_xoffset e sprite_yoffset não acompanham o angulo do obj_cano.Eu acho que o problema está no primeiro code, pois quando o obj_power é criado, somente no ângulo 0 ele é criado no buraco do cano ...
Uma coisa que não entendi , é que a cada vez que subo o angulo com o direcional pra cima, o obj_power é criado mais pra trás, como se acompanhasse o eixo x mas não o eixo y, isso explicaria porque somente no angulo 0 ele é criado no cano...
Já tentei resolver isso de várias formas, coloquei outro lenght nos off's, não usei lenghts ,colocando o raio e a direção separados,etc...
Talvez o problema esteja na minha lógica mesmo...
Valeu,flws !!
Re: Problemas com sprite offset e lengthdir !!
em Sex 24 Abr 2015, 13:20
Vc cria um obj_bola com a sprite de uma bola e coloca a origin no centro depois criar um obj_canhao com uma sprite quadrada de 128 em largura por 32 em altura de pois coloca o origin no centro a esquerda. No obj_bola vc coloca Create
{direction = obj_canhao.image_angle
speed = 5
move_contact_solid(direction,108)}
No obj_canhao Step
{if keyboard_check(vk_right) image_angle -=5
if keyboard_check(vk_left) image_angle +=5}
No obj_canhao Press
{instance_create(x,y,obj_bola)}
Depois vc coloca o obj_canhao no centro de uma room e testa !
Observação:
A fução move_contact_solid( argumento1 ,argumento2 ) serve para vc avançar argumento2 na direção argumento1
Espero que goste da minha resposta !!
{direction = obj_canhao.image_angle
speed = 5
move_contact_solid(direction,108)}
No obj_canhao Step
{if keyboard_check(vk_right) image_angle -=5
if keyboard_check(vk_left) image_angle +=5}
No obj_canhao Press
{instance_create(x,y,obj_bola)}
Depois vc coloca o obj_canhao no centro de uma room e testa !
Observação:
A fução move_contact_solid( argumento1 ,argumento2 ) serve para vc avançar argumento2 na direção argumento1
Espero que goste da minha resposta !!
Re: Problemas com sprite offset e lengthdir !!
em Sex 24 Abr 2015, 13:36
Obrigado por tentar ajudar , mas isso não vai dar certo , observe que o move_contact_solid move o objeto em uma determinada direção até que ele entra em contato com um objeto sólido e não em um ponto na sprite ....Eu preciso definir esse ponto na sprite , pois a origem na qual ele rotaciona é oposta ao buraco do canhao...
- Ranking :
Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Número de Mensagens : 1092
Insígnias de JAM :x 0
x 0
x 0
Reputação : 31
Prêmios: 1
: 1
:
Re: Problemas com sprite offset e lengthdir !!
em Sex 24 Abr 2015, 14:28
Crie o tiro usando o xoff tanto no lengthdir_x quanto no lengthdir_y se não da erro mesmo, o raio é o tamanho do xoff apenas.
- Código:
direction=obj_cano.image_angle //Indica que a direção é igual ao angulo da imagem do obj_cano
x=obj_angulo.x+lengthdir_x(global.xoff,direction); //Quando criado ,nascera no raio xoff com a angulação direction
y=obj_angulo.y+lengthdir_y(global.xoff,direction);//Quando criado ,nascera no raio xoff com a angulação direction
Re: Problemas com sprite offset e lengthdir !!
em Sex 24 Abr 2015, 17:40
Nossa que desatenção a minha,é obvio que o raio tinha que ser só em x,puts...Vi que o código do alison.antonioloffi também funcionava,com alguns ajustes,me precipitei... Obrigado a ambos,joinha para os dois !!

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum