二人キャラクタを表示させて、一方のキャラにもう一方が乗ると
下の方がジャンプした際に上のキャラが乗ったまんまにしたいのですが、
一方を①、もう一方を②とすると
②が①の上に乗って①がジャンプするとすり抜けないのですが、
①が②の上に乗って②がジャンプするとすり抜けてしまいます。
以下hit.cppの一部
void ch_hit_y(){
int i, j;
for(i=0;i<2;i++){
for(j=0;j<32;j++){
if(ch[i].x == ch[1-i].x+j && ch[i].y+31 == ch[1-i].y)//左下と上面
ch[i].hit_down=1;
if(ch[i].x+31 == ch[1-i].x+j && ch[i].y+31 == ch[1-i].y)//右下と上面
ch[i].hit_down=1;
}
}
}void ch_move_y(){
int i, j;
for(i=0;i<2;i++){
ch[i].jumpspeed -= 1; //重力
if(ch[i].jumpspeed>0){
for(j=0;j<ch[i].jumpspeed;j++){
ch[i].y--;
ch_hit_y();
}
}
if(ch[i].jumpspeed<0){
for(j=0;j>ch[i].jumpspeed;j--){
ch[i].y++;
ch_hit_y();
}
}
if(ch[i].hit_down==1){
ch[i].jumpspeed=0;
ch[i].y=ch[1-i].y-32;
}
if(ch[i].y > FIELD_MAX_Y-32){ //床判定
ch[i].jumpspeed = 0;
ch[i].y = FIELD_MAX_Y-32;
}
}
}