Как сгенерировать случайное число в диапазоне от -10 до 10

Здравствуйте, я разрабатываю одну игру, в которой объект должен перемещаться по экрану в случайном порядке. Я использую фреймворк cocos2dx. мой код

CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    int minY = HelloWorld::bird->getContentSize().height/2;
    int maxY = winSize.height - HelloWorld::bird->getContentSize().height/2;
    int minX = HelloWorld::bird->getContentSize().width/2;
    int maxX = winSize.width - HelloWorld::bird->getContentSize().width/2;
    int range = maxX - minX;
    int actualY = (rand() % range) + minY;
    int actualX = (rand() % range) + minX;
    //HelloWorld::bird->setPosition(ccp(actualX, actualY));
    CCActionInterval*  actionTo = CCMoveTo::actionWithDuration(3, ccp(actualX,actualY));
    HelloWorld::runAction(actionTo);

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


person Lalit Chattar    schedule 10.12.2012    source источник
comment
попробуй поискать ТАК..........   -  person Mitch Wheat    schedule 10.12.2012


Ответы (4)


CCRANDOM_MINUS1_1() * 10.0f если вы используете cocos2d-x

мой ответ никогда не принимается, даже если он лучше всего подходит спрашивающему.

person m.ding    schedule 10.12.2012

Попробуй это :

int min = -10;

int max = 10;

Random r = new Random();

int i1 = r.nextInt(max - min + 1) + min;

Обратите внимание, что nextInt(int max) возвращает целое число от 0 включительно до max исключая. Добавьте +1.

person Nirav Ranpara    schedule 10.12.2012
comment
запустить код в цикле. иногда i1 будет иметь значение max. - person Ray Tayek; 10.12.2012
comment
какой заголовок я должен включить для доступа к Random? - person RollRoll; 15.02.2015

Используйте 1_

int randomNo = random(-10, 10);

Генерирует случайное нет в диапазоне от -10 до 10.

person Mahesh    schedule 08.07.2016

использовать

int result = r.nextInt(max - min) + min;
instead of 
int result = r.nextInt(max) + min;

поскольку nextInt принимает диапазон случайных чисел, а не фактический верхний предел.

person Nipun Gogia    schedule 10.12.2012