/** * Sets this vector's magnitude, preserving its angle. */ public Vector setLength (float length) { return normalizeLocal().scaleLocal(length); }
/** * Sets this vector's magnitude, preserving its angle. */ public Vector setLength (float length) { return normalizeLocal().scaleLocal(length); }
@Override protected void update (Clock clock, Entities entities) { Point p = _pos; Vector v = _vel; int delta = clock.dt; for (int ii = 0, ll = entities.size(); ii < ll; ii++) { int eid = entities.get(ii); pos.get(eid, p); // get our current pos p.x = wrapx(p.x); // wrap it around the screen if necessary p.y = wrapy(p.y); opos.set(eid, p); // copy wrapped pos to opos vel.get(eid, v).scaleLocal(delta); // turn velocity into delta pos pos.set(eid, p.x + v.x, p.y + v.y); // add velocity (but don't wrap) } }