Hi i am trying to assign either = or -= to an object position. Firstly I have random math choosing a number:
var min = 9;
var max = 11;
var pos = Math.floor(Math.random() * (max - min 1)) min;
I am trying to add the out come of pos to this._target.position.z and this._target.position.x but I want it to be randomly either added or subtracted
so the random out come should be for the Z position should be either:
this._target.position.z = pos;
or
this._target.position.z -= pos;
and then for the X position should be either:
this._target.position.x = pos;
or
this._target.position.x -= pos;
thanks in advance.
CodePudding user response:
If you want to randomly do x = value
or x -= value
you can simply use the first version, and then multiply your value by -1
if you want to do a -=
.
In other words:
const isNegative = // however you determine this, eg. Math.random
const newValue = (isNegative ? -1 : 1) * value;
Or, to apply it back to your case, using @Chris G's suggestion in the comments:
const oneOrNegativeOne = (Math.floor(Math.random() * 2) * 2 - 1);
this._target.position.x = oneOrNegativeOne * pos;
CodePudding user response:
You can use a condition based on a random event like this :
if (Math.floor(Math.random() * 2)) {
//the condition return 0 or 1 for false or true
this._target.position.z = pos;
} else {
this._target.position.z -= pos;
}
and either for this._target.position.x