private CSPoint getOutRangePoint(CSPointType type, short radius) { CSPoint pTemp = null; int dicMax = mSpaceDict.mDic.Count; int randomPointPos = -1; if (mSpaceDict.mDic.Count != 0)//when no space left, redo in the DrawScene() { if (type != CSPointType.AllQuad) { while (pTemp == null || !mSpaceDict.mDic.ContainsKey(mSpaceDict.GetIndex(pTemp.x, pTemp.y))) { pTemp = getPoint(type); } } else { randomPointPos = mRDM.Next(0, dicMax); pTemp = mSpaceDict.mDic.ElementAt(randomPointPos).Value; } mSpaceDict.TakeRoundSpace(pTemp, radius); } if (pTemp == null) { Console.WriteLine("Rearrange"); } return(pTemp); }
private CSPoint getPoint(CSPointType type) { CSPoint retval = new CSPoint(); int limitxMin = 0, limitxMax = 0, limityMin = 0, limityMax = 0; switch (type) { case CSPointType.FirstQuad: limitxMin = 320; limitxMax = 640; limityMin = 0; limityMax = 240; break; case CSPointType.SecondQuad: limitxMin = 0; limitxMax = 320; limityMin = 0; limityMax = 240; break; case CSPointType.ThirdQuad: limitxMin = 0; limitxMax = 320; limityMin = 240; limityMax = 480; break; case CSPointType.AllQuad: limitxMin = 0; limitxMax = 640; limityMin = 0; limityMax = 480; break; } retval.x = (short)mRDM.Next(limitxMin, limitxMax); retval.y = (short)mRDM.Next(limityMin, limityMax); return(retval); }