コード例 #1
0
ファイル: GameField.cs プロジェクト: DimasGhost/Segmentus
 public GameField(FieldData fieldData, Pivot parentPivot, float x, float y)
     : base(bounds, parentPivot, x, y)
 {
     this.fieldData = fieldData;
     points         = new GamePoint[fieldData.pointsCnt];
     for (int i = 0; i < fieldData.pointsCnt; ++i)
     {
         int xc = (int)(fieldData.points[i].x * GameView.scaleFactor);
         int yc = (int)(fieldData.points[i].y * GameView.scaleFactor);
         points[i] = new GamePoint(pivot, xc, yc);
         pointsAlive.Add(i);
     }
     for (int i = 0; i < fieldData.segmentsCnt; ++i)
     {
         availableSegments.Add(i);
     }
 }
コード例 #2
0
ファイル: GameField.cs プロジェクト: DimasGhost/Segmentus
        void AddSegment(int point1, int point2, int colorID)
        {
            pointsAlive.Remove(point1);
            pointsAlive.Remove(point2);
            GamePoint   a = points[point1], b = points[point2];
            GameSegment cur = new GameSegment(colorID,
                                              (int)(b.pivot.X - a.pivot.X), (int)(b.pivot.Y - a.pivot.Y),
                                              pivot, (int)a.pivot.X, (int)a.pivot.Y);

            cur.AnimateAppearance();
            segments.Add(cur);
            int segID = fieldData.segmentID[point1, point2];

            foreach (int segProhibitID in fieldData.intersectedWith[segID])
            {
                availableSegments.Remove(segProhibitID);
            }
        }