public IEnumerator GenerateRandomPoints( int width, int height, int pointNum, RandomPointParameter para) { _width = width; _height = height; _para = para; yield return(_GetRandomLoosePoints(pointNum)); }
public IEnumerator GenerateRandomLocalAreaMap( int width, int height, RandomPointParameter para, IReturn <float[]> ret) { _width = width; _height = height; _para = para; _localAreaMap = new float[_width * _height]; yield return(_GetRandomLoosePoints(_para.NUM)); yield return(_GenerateRandomLocalAreaMap()); ret.Accept(_localAreaMap); }
public IEnumerator GenerateManaMap( int width, int height, ManaParameter para, IReturn <float[]> ret) { _width = width; _height = height; _para = para; _randomParam = para.RANDOM_POINT_GEN_PARA; _manaMap = new float[_width * _height]; _localAreaMap = new float[_width * _height]; var totalPoints = _para.POSITIVE_HIGH_POINTS_NUM + _para.POSITIVE_MID_POINTS_NUM + _para.POSITIVE_LOW_POINTS_NUM + _para.NEGATIVE_HIGH_POINTS_NUM + _para.NEGATIVE_MID_POINTS_NUM + _para.NEGATIVE_LOW_POINTS_NUM; yield return(_randPointGen.GenerateRandomPoints( width, height, totalPoints, _randomParam)); var points = _randPointGen.Points.OrderBy(i => Random.value).ToList(); _highPosPoints = points.Take(_para.POSITIVE_HIGH_POINTS_NUM).ToList(); points = points.Skip(_para.POSITIVE_HIGH_POINTS_NUM).ToList(); _midPosPoints = points.Take(_para.POSITIVE_HIGH_POINTS_NUM).ToList(); points = points.Skip(_para.POSITIVE_HIGH_POINTS_NUM).ToList(); _lowPosPoints = points.Take(_para.POSITIVE_LOW_POINTS_NUM).ToList(); points = points.Skip(_para.POSITIVE_LOW_POINTS_NUM).ToList(); _highNegPoints = points.Take(_para.NEGATIVE_HIGH_POINTS_NUM).ToList(); points = points.Skip(_para.NEGATIVE_HIGH_POINTS_NUM).ToList(); _midNegPoints = points.Take(_para.NEGATIVE_MID_POINTS_NUM).ToList(); points = points.Skip(_para.NEGATIVE_MID_POINTS_NUM).ToList(); _lowNegPoints = points.Take(_para.NEGATIVE_LOW_POINTS_NUM).ToList(); yield return(_GenerateRandomLocalAreaMap(_highPosPoints, _para.POSITIVE_HIGH_RADIUS, _para.POSITIVE_HIGH_FACTOR)); yield return(_GenerateRandomLocalAreaMap(_midPosPoints, _para.POSITIVE_MID_RADIUS, _para.POSITIVE_MID_FACTOR)); yield return(_GenerateRandomLocalAreaMap(_lowPosPoints, _para.POSITIVE_LOW_RADIUS, _para.POSITIVE_LOW_FACTOR)); yield return(_GenerateRandomLocalAreaMap(_highNegPoints, _para.NEGATIVE_HIGH_RADIUS, _para.NEGATIVE_HIGH_FACTOR)); yield return(_GenerateRandomLocalAreaMap(_midNegPoints, _para.NEGATIVE_MID_RADIUS, _para.NEGATIVE_MID_FACTOR)); yield return(_GenerateRandomLocalAreaMap(_lowNegPoints, _para.NEGATIVE_LOW_RADIUS, _para.NEGATIVE_LOW_FACTOR)); for (int x = 0; x < _width; x++) { for (int y = 0; y < _height; y++) { var idx = y * _width + x; _manaMap[idx] = _localAreaMap[idx] + 0.5f; } } ret.Accept(_manaMap); }