Клавиши со стрелками для мультиплеера - PullRequest
0 голосов
/ 08 мая 2019

Объект дергается при использовании клавиш поворота вместо плавного движения.

Я попытался переместить две клавиши 4 и 6 (влево и вправо), чтобы использовать операторы if и while внутри ииз основного оператора if.

    move(4);
    if(Greenfoot.isKeyDown("4"))
    {
        turn(-3);
    }
    if(Greenfoot.isKeyDown("6"))
    {
        turn(3);
    }
    if(Greenfoot.isKeyDown("8"))
    {
        move(4);
    }
    else if(Greenfoot.isKeyDown("5"))
    {
        move(2);
    }
    else if(Greenfoot.getRandomNumber(100) < 10)
    {
        turn(Greenfoot.getRandomNumber(90) - 45);
    }
    else if(getX() <= 5 || getX() >= getWorld().getWidth() -5)
    {
        turn(180);
    }
    else if(getY() <= 5 || getY() >= getWorld().getHeight() -5)
    {
        turn(180);
    }

Мне нужно сохранить 8 клавиш и все, что находится под ним, чтобы он мог работать как с несколькими игроками, так и с одним игроком, но также необходимо, чтобы клавиши поворота работали плавно, без необходимости постояннонужно держать или 8 или 5.

1 Ответ

0 голосов
/ 09 мая 2019

Если ни 5, ни 8 не удерживаются, у вас есть 10% случайный шанс поворота между -45 и 45 градусами. Это причина того, что вы описываете как рывок? Я не уверен, что вам нужен этот случайный поворот, если вы также хотите, чтобы этот актер управлял поворотом клавиатуры, поэтому я думаю, что вы просто хотите удалить блок:

    else if(Greenfoot.getRandomNumber(100) < 10)
    {
        turn(Greenfoot.getRandomNumber(90) - 45);
    }
...