예제 #1
0
파일: ThingList.cs 프로젝트: sinshu/mafia
 public void Draw(MafiaVideo video, IntVector camera)
 {
     foreach (Thing thing in list)
     {
         thing.Draw(video, camera);
     }
 }
예제 #2
0
파일: Tiun.cs 프로젝트: sinshu/mafia
 public override void Draw(MafiaVideo video, IntVector camera)
 {
     if (!ShouldDraw(camera)) return;
     IntVector p = (IntVector)Position - camera;
     if (type == TIUN)
     {
         video.Draw(0, 112, 16, 16, 0, 7 - (life / 2) % 8, p.X, p.Y);
     }
     else if (type == KIRA)
     {
         video.Draw(0, 112, 16, 16, 1, 7 - (life / 2) % 8, p.X, p.Y);
     }
     else if (type == MOKU)
     {
         video.Draw(0, 112, 16, 16, 2, 7 - (life / 2) % 8, p.X, p.Y);
     }
 }
예제 #3
0
파일: Door.cs 프로젝트: sinshu/mafia
 public override void Draw(MafiaVideo video, IntVector camera)
 {
     if (!ShouldDraw(camera)) return;
     IntVector p = (IntVector)Position - camera;
     video.Draw(176, 64, 8, 48, 0, 0, p.X, p.Y);
 }
예제 #4
0
파일: Coin.cs 프로젝트: sinshu/mafia
 public override void Draw(MafiaVideo video, IntVector camera)
 {
     if (!ShouldDraw(camera)) return;
     IntVector p = (IntVector)Position - camera;
     video.Draw(0, 48, 16, 16, 0, animation, p.X, p.Y);
 }
예제 #5
0
파일: Map.cs 프로젝트: sinshu/mafia
        public void Draw(MafiaVideo video, IntVector camera)
        {
            int topRow = camera.Y / Mafia.BLOCK_WIDTH;
            int bottomRow = (camera.Y + Mafia.SCREEN_HEIGHT) / Mafia.BLOCK_WIDTH;
            int leftCol = camera.X / Mafia.BLOCK_WIDTH;
            int rightCol = (camera.X + Mafia.SCREEN_WIDTH) / Mafia.BLOCK_WIDTH;

            int numRows = Mafia.SCREEN_HEIGHT / Mafia.BLOCK_WIDTH;
            int numCols = Mafia.SCREEN_WIDTH / Mafia.BLOCK_WIDTH;

            for (int row = 0; row <= numRows; row++)
            {
                for (int col = 0; col <= numCols; col++)
                {
                    video.Draw(16, 0, 16, 16, 0, 0, col * Mafia.BLOCK_WIDTH - (camera.X / 2) % 16, row * Mafia.BLOCK_WIDTH - (camera.Y / 2) % 16);
                }
            }

            for (int row = topRow; row <= bottomRow; row++)
            {
                for (int col = leftCol; col <= rightCol; col++)
                {
                    IntVector p = new IntVector(col * Mafia.BLOCK_WIDTH - camera.X, row * Mafia.BLOCK_WIDTH - camera.Y);
                    switch (this[row, col])
                    {
                        case NONE:
                            break;
                        case Map.SPIKE_LEFT:
                            video.Draw(48, 0, 16, 16, 0, 0, p.X, p.Y);
                            break;
                        case Map.SPIKE_UP:
                            video.Draw(48, 0, 16, 16, 0, 1, p.X, p.Y);
                            break;
                        case Map.SPIKE_RIGHT:
                            video.Draw(48, 0, 16, 16, 0, 2, p.X, p.Y);
                            break;
                        case Map.SPIKE_DOWN:
                            video.Draw(48, 0, 16, 16, 0, 3, p.X, p.Y);
                            break;
                        case LIFT_RETURN:
                            break;
                        case DOOR_SLIDE:
                            video.Draw(112, 0, 16, 16, 0, 0, p.X, p.Y);
                            break;
                        default:
                            video.Draw(32, 0, 16, 16, 0, 0, p.X, p.Y);
                            break;
                    }
                }
            }
        }
예제 #6
0
파일: Switch.cs 프로젝트: sinshu/mafia
 public override void Draw(MafiaVideo video, IntVector camera)
 {
     if (!ShouldDraw(camera, 0, 0, 2, 0)) return;
     IntVector p = (IntVector)Position - camera - new IntVector(0, 12);
     video.Draw(128, 0, 16, 16, 0, pressed ? 1 : 0, p.X, p.Y);
 }
예제 #7
0
파일: Spring.cs 프로젝트: sinshu/mafia
 public override void Draw(MafiaVideo video, IntVector camera)
 {
     if (!ShouldDraw(camera, 0, 0, 16, 0)) return;
     IntVector p = (IntVector)Position - camera - new IntVector(0, 16);
     video.Draw(0, 64, 16, 32, 0, animation, p.X, p.Y);
 }
예제 #8
0
파일: FallBlock.cs 프로젝트: sinshu/mafia
 public override void Draw(MafiaVideo video, IntVector camera)
 {
     if (!ShouldDraw(camera)) return;
     IntVector p = (IntVector)Position - camera;
     switch (type)
     {
         case Map.SPIKE_LEFT:
             video.Draw(48, 0, 16, 16, 0, 0, p.X, p.Y);
             break;
         case Map.SPIKE_UP:
             video.Draw(48, 0, 16, 16, 0, 1, p.X, p.Y);
             break;
         case Map.SPIKE_RIGHT:
             video.Draw(48, 0, 16, 16, 0, 2, p.X, p.Y);
             break;
         case Map.SPIKE_DOWN:
             video.Draw(48, 0, 16, 16, 0, 3, p.X, p.Y);
             break;
         default:
             video.Draw(32, 0, 16, 16, 0, 0, p.X, p.Y);
             break;
     }
 }
예제 #9
0
파일: Thing.cs 프로젝트: sinshu/mafia
 protected bool ShouldDraw(IntVector camera, int left, int right, int top, int bottom)
 {
     return Left - left < camera.X + Mafia.SCREEN_WIDTH && camera.X < Right + right && Top - top < camera.Y + Mafia.SCREEN_HEIGHT && camera.Y < Bottom + bottom;
 }
예제 #10
0
파일: Thing.cs 프로젝트: sinshu/mafia
 protected bool ShouldDraw(IntVector camera)
 {
     return Left < camera.X + Mafia.SCREEN_WIDTH && camera.X < Right && Top < camera.Y + Mafia.SCREEN_HEIGHT && camera.Y < Bottom;
 }
예제 #11
0
파일: Thing.cs 프로젝트: sinshu/mafia
 public abstract void Draw(MafiaVideo video, IntVector camera);
예제 #12
0
파일: Thing.cs 프로젝트: sinshu/mafia
 public abstract void Draw(MafiaVideo video, IntVector camera);
예제 #13
0
파일: Thing.cs 프로젝트: sinshu/mafia
 protected bool ShouldDraw(IntVector camera, int left, int right, int top, int bottom)
 {
     return(Left - left < camera.X + Mafia.SCREEN_WIDTH && camera.X < Right + right && Top - top < camera.Y + Mafia.SCREEN_HEIGHT && camera.Y < Bottom + bottom);
 }
예제 #14
0
파일: Thing.cs 프로젝트: sinshu/mafia
 protected bool ShouldDraw(IntVector camera)
 {
     return(Left < camera.X + Mafia.SCREEN_WIDTH && camera.X < Right && Top < camera.Y + Mafia.SCREEN_HEIGHT && camera.Y < Bottom);
 }
예제 #15
0
파일: Player.cs 프로젝트: sinshu/mafia
 public override void Draw(MafiaVideo video, IntVector camera)
 {
     if (!ShouldDraw(camera)) return;
     if (missed) return;
     IntVector p = (IntVector)Position - camera;
     switch (Direction)
     {
         case LEFT:
             video.Draw(0, 16, 16, 32, 0, Animation, p.X, p.Y);
             break;
         case RIGHT:
             video.Draw(128, 16, 16, 32, 0, Animation, p.X, p.Y);
             break;
     }
 }