コード例 #1
0
	glm::vec3 ryno_math::get_rand_dir(F32 p_min, F32 p_max, F32 y_min, F32 y_max){
		F32 pitch = rand_float_range(p_min, p_max) * DEG_TO_RAD;
		F32 yaw = rand_float_range(y_min, y_max) * DEG_TO_RAD;
		F32 x = sin(yaw);
		F32 y = -cos(yaw)*sin(pitch);
		F32 z = -cos(pitch)*cos(yaw);
		return normalize(glm::vec3(x, y, z));
	}
コード例 #2
0
ファイル: ai_precalc.c プロジェクト: JINXSHADYLANE/quibble
Vector2 _rand_point_in_nn_grid_cell(uint cell) {
	assert(nn_cell_width > 0.0f && nn_cell_height > 0.0f);
	assert(cell < nn_grid_cells);

	uint x = cell % nn_grid_width;
	uint y = cell / nn_grid_width;
	
	float x_min = (float)x * nn_cell_width;
	float y_min = (float)y * nn_cell_height;
	
	return vec2(
		rand_float_range(x_min, x_min + nn_cell_width),
		rand_float_range(y_min, y_min + nn_cell_height));
}
コード例 #3
0
ファイル: ai_precalc.c プロジェクト: JINXSHADYLANE/quibble
DArray _gen_navpoints(DArray geometry, DArray platforms) {
	DArray points = darray_create(sizeof(Vector2), 0);
	darray_append_multi(&points, platforms.data, platforms.size);

	uint fail_count = 0;
	do {
		Vector2 navpoint = vec2(rand_float_range(0.0f, SCREEN_WIDTH),
			rand_float_range(0.0f, SCREEN_HEIGHT));

		float wdist = ai_wall_distance(navpoint, geometry);
		float pdist = _point_distance(navpoint, points);

		if(wdist >= min_wall_distance && pdist >= min_point_distance) {
			darray_append(&points, (void*)&navpoint);
			fail_count = 0;
		}
		else {
			fail_count++;
		}	
	} while(fail_count < 1200);	
	return points;
}	
コード例 #4
0
	Ryno::ColorRGBA ryno_math::rand_color_range(ColorRGBA& min, ColorRGBA& max)
	{
		return ColorRGBA(rand_float_range(min.r, max.r), rand_float_range(min.g, max.g), rand_float_range(min.b, max.b), rand_float_range(min.a, max.a));

	}
コード例 #5
0
	glm::vec3 ryno_math::rand_vec3_range(glm::vec3 min, glm::vec3 max){
		return glm::vec3(rand_float_range(min.x, max.x), rand_float_range(min.y, max.y), rand_float_range(min.z, max.z));
	}
コード例 #6
0
	U32 ryno_math::rand_int_range(U32 min, U32 max){
		return (U32)rand_float_range(min, max);
	}