Как я делаю игру в Wxwidgets. Место, где я застрял, - это прыгнуть с Марио и взять сигнал, когда Марио прыгает в воздухе. Позвольте мне прояснить ситуацию: когда игрок нажимает пробел, чтобы прыгать по вертикали, l oop, чтобы прыгать, Марио бежит, но когда игрок нажимает клавишу «d», чтобы двигаться вперед во время прыжка, он должен прыгать вперед .... Мне также нужно ваша помощь, чтобы получить два ввода одновременно, как в игре, когда мы нажимаем Shift и "W", игрок будет идти быстрее, но когда мы нажимаем только клавишу "W", игрок будет идти медленно ..
void MyFrame :: OnChar(wxKeyEvent& event){
wxChar uc = event.GetUnicodeKey();
switch ( uc )
{
case 97:
tempx = x;
x = x - 5;
Check(x);
FindGround(x);
CheckForNextMove(x,y,CurrentGroundX,CurrentGroundY,PreviousGroundX,PreviousGroundY,NextGroundX,NextGroundY);
Refresh();
break;
case 100:
tempx =x;
x = x + 5;
Check(x);
FindGround(x);
CheckForNextMove(x,y,CurrentGroundX,CurrentGroundY,PreviousGroundX,PreviousGroundY,NextGroundX,NextGroundY);
Refresh();
break;
case 32:
tempy = y;
for(int i=0;i<=10;i++){
check = true;
tempx = x;
Sleep(1);
y=y-7;
x=x+5;
Check(x);
FindGround(x);
CheckForNextMove(x,y,CurrentGroundX,CurrentGroundY,PreviousGroundX,PreviousGroundY,NextGroundX,NextGroundY);
Update();
Refresh();
}
for(int j=0;j<=10;j++){
check = true;
tempx = x;
Sleep(1);
y=y+7;
x=x+5;
Check(x);
FindGround(x);
CheckForNextMove(x,y,CurrentGroundX,CurrentGroundY,PreviousGroundX,PreviousGroundY,NextGroundX,NextGroundY);
Update();
Refresh();
if(stop){ stop = false; break; }
}
check = false;
Update();
Refresh();
break;
}
event.Skip();
}
вот код, в котором нажатие клавиши пробела заставит Марио прыгнуть по пути параболи c, но я хотел сделать его более профессиональным. Я хочу, чтобы Марио прыгнул в параболе c, когда мы нажимаем две клавиши одновременно, т. Е. (Когда я нажимаю вертикальную клавишу прыжка и правую клавишу движения, тогда ему придется прыгать в правильном направлении по траектории параболы c.