Obrigado por visitar a The Game Makers Brasil Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais. |
codigo para sprite
codigo para sprite
Ola estou começando a aprender codigos e queria saber se alguem tem um codigo para eu colocar para o personagem mudar a sprite do player para quando eu pular mudar de sprite dele pulando e dele caindo se alguem tiver um codigo pra isso obg,caso queiram criar o codigo apartir do meu ele estara abaixo:
tecla_dir= keyboard_check(ord("D"));
tecla_esq= keyboard_check(ord("A"));
tecla_pulo= keyboard_check_pressed(vk_space);
vspd= vspd + grav;
hspd= (tecla_dir - tecla_esq) * spd;
if(place_meeting(x + hspd,y,obj_wall)){
while(!place_meeting(x + sign(hspd),y,obj_wall)){
x= x + sign(hspd);
}
hspd= 0;
}
x= x + hspd;
if(place_meeting(x,y + vspd,obj_wall)){
while(!place_meeting(x,y + sign(vspd),obj_wall)){
y= y + sign(vspd);
}
vspd= 0;
}
y= y + vspd;
chao= place_meeting(x, y + 1,obj_wall);
if(tecla_pulo) {
vspd = vspd - altura_pulo;
}
tecla_dir= keyboard_check(ord("D"));
tecla_esq= keyboard_check(ord("A"));
tecla_pulo= keyboard_check_pressed(vk_space);
vspd= vspd + grav;
hspd= (tecla_dir - tecla_esq) * spd;
if(place_meeting(x + hspd,y,obj_wall)){
while(!place_meeting(x + sign(hspd),y,obj_wall)){
x= x + sign(hspd);
}
hspd= 0;
}
x= x + hspd;
if(place_meeting(x,y + vspd,obj_wall)){
while(!place_meeting(x,y + sign(vspd),obj_wall)){
y= y + sign(vspd);
}
vspd= 0;
}
y= y + vspd;
chao= place_meeting(x, y + 1,obj_wall);
if(tecla_pulo) {
vspd = vspd - altura_pulo;
}
Re: codigo para sprite
Vamos la então, este é um metodo que eu utilizo e gosto muito, vamos utilizar uma variável inteira, que vai receber um numero de qualquer valor, esse numero iremos utilizar ele dentro do nosso Switch para alterar a sprite.
No seu Evento Criar (Event Creat), vamos definir nossa variável:
Após isso vamos criar nosso script que vai trata de altera as sprites. Observe bem, iremos usar dois scripts, um sera responsável por alterar a sprite, e outro pra definir qual sprite estamos usando atualmente.
Agora ja esta funcionando, lembre-se de colocar suas sprites dentro do código.
Vamos agora para Evento Etapa (Event Step), vamos definir quando queremos alterar o valor do nosso direc, altera esse valor é a mesma coisa que alterar a sprite usando o sprite_index. Vai ficar assim
Com isso você ja consegue altera a sprite com muita facilidade. Você pode usar diversas combinações pra altera de uma sprite pra outra, por exemplo:
Assim nós temos um código todo definido de sprites. A Sprite inicial, ela é definida ja no nosso criar, usamos direc = 0, pra especificar a sprite parado(Idle), seja da direita ou da esquerda. Você pode duplica a sprite espelha ela, mas eu prefiso apenas muda o xscale, ficaria assim:
Lembre-se de sempre volta ao direc inicial, por exemplo, se vc pulou, seu direc vai ser igual a 4 ou 5, dessa forma, você precisa fazer com que ele volta para direc inicial 0, ou 1, dependendo de qual lado voce esta olhando, pra isso é só fazer:
Assim, quando tocar o chão, seu hspd vai ser 0, e vai ir pra sprite de parado(idle). Pronto !
Ah, eu testei só parte do código, caso de algum erro, comenta aqui que eu resolvo ! Abraço e fique em paz !
No seu Evento Criar (Event Creat), vamos definir nossa variável:
Código: Selecionar todos
direc = 0;
Agora ja esta funcionando, lembre-se de colocar suas sprites dentro do código.
Vamos agora para Evento Etapa (Event Step), vamos definir quando queremos alterar o valor do nosso direc, altera esse valor é a mesma coisa que alterar a sprite usando o sprite_index. Vai ficar assim
Código: Selecionar todos
if hspd == 0 {
if direc = 2 {
direc = 0; //<-- Sprite Parado Direita
}
if direc = 3 {
direc = 0; //<-- Sprite Parado Esquerda
}
}
if hspd != 0 {
if tecla_dir {
direc = 2; //<-- Sprite Andando Direita
}
if tecla_esq {
direc = 3; //<-- Sprite Andando Esquerda
}
}
Código: Selecionar todos
if tecla_pulo {
if direc = 0 || direc = 2 { //<-- Verifica se estou com a sprite da direita definida
direc = 4; //<-- Define a sprite de pulo da direita
}
if direc = 1|| direc = 3 { // Faz a mesma coisa porem pra esquerda
direc = 5; //<-- Define a sprite de pulo da esquerda
}
}
Código: Selecionar todos
case 0:
scrChangeSprite(suaSpirte);
image_xscale = -1;
break;
Código: Selecionar todos
if hspd == 0 {
if direc = 2 || direc = 4 {
direc = 0; //<-- Sprite Parado Direita
}
if direc = 3 || direc = 5 {
direc = 0; //<-- Sprite Parado Esquerda
}
}
Código: Selecionar todos
// Script assets have changed for v2.3.0 see
// https://help.yoyogames.com/hc/en-us/articles/360005277377 for more information
function scrChangeSprite(_sprite) {
//@arg Sprite
if (sprite_index != _sprite) {
sprite_index = _sprite;
image_index = 0;
}
}
function scrDirec() {
switch direc {
case 0:
scrChangeSprite(suaSpirte);
break;
case 1:
scrChangeSprite(suaSpirte);
break;
case 2:
scrChangeSprite(suaSpirte);
break;
case 3:
scrChangeSprite(suaSpirte);
break;
case 4:
scrChangeSprite(suaSpirte);
break;
case 5:
scrChangeSprite(suaSpirte);
break;
}
}
Ninguém vai bater tão forte como a vida, mas a questão não é o quão forte você consegue bater. É o quão forte você consegue apanhar e continuar seguindo em frente.
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante