Actions overlapper hinanden.
Hej eksperter!Jeg er igang med at lave et lille 2d platform spil hvor en mand kan hoppe rundt på en bane, klatre stiger, køre elvator osv.
Jeg har har så fået et problem med at komme på stige og komme af den igen.
Hvis vi forstiller os et hus med stuen og 1. sal, midt i det hele gaar en stige fra stuen op til 1. sal. For at spillere hurtigt skal kunne komme på stigen holder han (hvis han kommer fra venstre) højre piltast og op piletasten nede, lige så snart at manden er over stien vil han begynde at klatre op af stien. Manden kan altsaa godt løbe horizontalt selvom at op piletasten er trykket nede. Men det samme gælder jo oxo for når han klatre op af stien. Der skal han kunne klatre op selvom piletasten og højre/venstre piletaster nede. Men nu er problemet at han ikke kan komme af da jeg gerne vil bruge de selv samme taster igen til at kunne komme af.
Det hele er bygget om med state maskiner:
// if sætning sænder ham til CLIMBING state
if(chuck_on_stairs == 46 && !(keys == 8 || keys == 16)) {
jump_timer = 0;
result = STAIRS;
}
//CLIMBING state
case CLIMBING:
/* Moves Chuckie verticly, checks for upper and lower stair limit */
if(!(counter%3)){
// Climb up and down the ladders
if((keys == 4 || keys == 12 || keys == 20) && (left_top == 11 && right_top == 12)){
chuck_pos[2] -= 2;
}else if((keys == 2 || keys == 10 || keys == 18) && (left_ground == 11 || right_ground == 12)){
chuck_pos[2] += 2;
}else
// Walk off ladder ONYL if floor is floor support
if(left_side_ground == 10 && left_side_low == 50 && (keys == 16 || keys == 18 || keys == 20) && on_stairs == 1){
chuck_pos[1] -= 2;
on_stairs = 0;
}else if(right_side_ground == 10 && right_side_low == 50 && (keys == 8 || keys == 10 ||keys == 12) && on_stairs == 1){
on_stairs = 0;
chuck_pos[1] += 2;
}
}
break;
Jeg kan simplethen ikke se hvordan jeg kan løse det alle foreslag er velkommen