右に向いて立っている=0,1,2,3,4,5
右向きの走り=6,7,8,9,10,11
左向きの走り=12,13,14,15,16,17
左に向いて立っている=18,19,20,21,22,23
ジャンプ=24,25,26,27,28,29
それぞれのアニメーションのコマは6つです。
この画像を使って、プレイヤーを走らせたり、ジャンプをさせようと試みたプログラムがこちらです。
player.cpp
#include "DxLib.h"
#include "Key.h"
#include "player.h"
int img_ch[30];
int sayu;
int grand=360;
double vy;
double ay;
player play;
void pini(){
play.x=50;
play.y=grand;
LoadDivGraph("キャラ.png",30,6,5,128,128,img_ch);
}
void pmove(){
if(CheckKey( KEY_INPUT_RIGHT)>0){
sayu=0;
play.img=6;
play.x+=4;
}else if(CheckKey( KEY_INPUT_LEFT )>0){
sayu=1;
play.img=12;
play.x-=4;
}else{
if(sayu==1){
play.img=18;
}else{
play.img=0;
}
}
}
void pjump(){
if(CheckKey(KEY_INPUT_SPACE)==1){
vy=-4.5;
ay=0.1;
}
vy+=ay;
play.y+=vy;
if(play.y>grand){
play.y=grand;
vy=0;
ay=0;
}
}
void pgraph(){
DrawRotaGraphF(play.x,play.y,1.0f,0.0f,img_ch[play.img],TRUE);
}
右ボタンを押して、離すと、走るのをやめ、ちゃんと右方向に向いて立つアニメーションの一コマ目に画像が変わり、
右方向に向いて立ちます。逆もまたしかりです。
スペースキーを押せば、画像はかわらず、ぴょーんとじジャンプします。連打すれば無限にジャンプします。
無限にジャンプするのは想定外でしたが、それ以外はいたって正常ですね。ここまではなんとか自力でできました。
で す が
ここから先がわかりません。
いったいどうやってこれをアニメーションさせたらいいんでしょうか?
特にジャンプのアニメーション。さっぱりわかりません。無限ジャンプの原因もさっぱりです。
どうか教えてくださいお願いします。