void Tick(int _tick) {
		if (Math.abs(vel_x) != U.getV()) {
			if (vel_x > 0) {
				vel_x = U.getV();
			} else {
				vel_x = -U.getV();
			}
			if (vel_y > 0) {
				vel_y = U.getV();
			} else {
				vel_y = -U.getV();
			}

		}

		// check if need to change dir^n
		if (y - r < 0) { // off top
			vel_y = Math.abs(vel_y);
		} else if (y + r > U.world_y_pixels) {
			vel_y = -Math.abs(vel_y);
		}

		if (x - r < 0) { // off left
			vel_x = Math.abs(vel_x);
		} else if (x + r > U.world_x_pixels) {
			vel_x = -Math.abs(vel_x);
		}
		x += vel_x;
		y += vel_y;
		for (final Rectangle _r : myShapes) {
			// _r.ExternalMove(vel_x, vel_y);
			_r.Tick(_tick);
		}
	}