Как случайным образом вызвать врага в заданных пределах, используя java и eclipse - PullRequest
0 голосов
/ 02 ноября 2019

Хорошо, в общем, у меня есть игрок ... это 2D скроллер ... я случайно нарисовал в полях spawnArea ... в основном, когда игрок пересекает границы с spawnArea в течение 5 секунд, он привлекает врага ... моя проблема в том, что я хочу нарисовать врага в пределах области возрождения ...

Например, допустим, мой блок для spawnArea имеет значение (x,y) я задаю ему границы (x-150, y-32(sothat its on top of the box), 300 (so that its basically 150 on each side of x, 32);

как мне нарисовать врага случайным образом в этих пределах?

if((handler.spawn)&&(handler.getenemyCount()==0)&&(handler.getSpawnCount()==300))
 {
                handler.addObject(new Enemy(x, y-64, 0,handler, ObjectId.Enemy));

///so far this draws the enemy at the top of the  boxes location... i was trying to add a random factor of (x-r.nextInt(100) >> x+r.nextInt(100) to try and make it within a certain area but it wasnt working out...  

ps the Y im not worried about its the random X within the rectangle bounds of the spawn area

                handler.setSpawnCount(0);
                handler.setEnemyCount(1);

            }
            Graphics2D g2d = (Graphics2D) g;
            g.setColor(Color.red);
            g2d.draw(getBounds());
            g2d.draw(getBoundsLeft());
            //g2d.draw(getBoundsRight());
            //g2d.draw(getBoundsTop());

    }


    public Rectangle getBounds() {
        return new Rectangle((int)x-150 , (int)y-32,300, 32);

1 Ответ

0 голосов
/ 02 ноября 2019

Хорошо, я понял это на своем собственном лол ...

в основном создал minX и maxX, чтобы отразить мои границы ... иначе x + 150 и x-150

, используя этидве переменные я создал случайное число внутри них .. \

randomNum = r.nextInt ((maxX - minX) + 1) + minX;// я поставил это в галочку, чтобы она была случайной каждый раз

, затем вставил randomNum в качестве значения x для вставки врага ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...