コード例 #1
0
 void CalcAbroad()
 {
     for (int i = 0; i < engineModelsList.Count; i++)
     {
         EngineModel engMd = engineModelsList[i];
         if (engMd.GetX() < 0 ||
             engMd.GetY() < 0 ||
             engMd.GetX() + engMd.GetFixture().GetLength(0) > width ||
             engMd.GetY() + engMd.GetFixture().GetLength(0) > height)
         {
             engMd.OnAbroad();
         }
     }
 }
コード例 #2
0
 void CalcColisions()
 {
     int[,] colisionMap = GetColisionMap();
     for (int i = 0; i < engineModelsList.Count; i++)
     {
         EngineModel engMd        = engineModelsList[i];
         bool        haveColision = CheckColision(
             colisionMap,
             engMd.GetFixture(),
             (int)engMd.GetX(),
             (int)engMd.GetY()
             );
         if (haveColision)
         {
             engMd.OnColision();
         }
     }
 }
コード例 #3
0
        public int[,] GetColisionMap()
        {
            int[,] colisionMap = new int[width, height];
            for (int i = 0; i < colisionMap.GetLength(0); i++)
            {
                for (int j = 0; j < colisionMap.GetLength(1); j++)
                {
                    colisionMap[i, j] = 0;
                }
            }

            for (int i = 0; i < engineModelsList.Count; i++)
            {
                EngineModel engMd = engineModelsList[i];
                ImposeFixture(
                    colisionMap,
                    engMd.GetFixture(),
                    (int)engMd.GetX(),
                    (int)engMd.GetY()
                    );
            }
            return(colisionMap);
        }