Example #1
0
 public Bullet(MoveDiretion bulletDirection)
 {
     image  = Properties.Resources.bullet;
     width  = image.Width;
     height = image.Height;
     this.bulletDirection = bulletDirection;
 }
Example #2
0
        public void Move()
        {
            switch (direct)
            {
            case 0:
                bulletDirection = MoveDiretion.Up;
                image           = Properties.Resources.tankU;
                y = y - speed;        //上移
                break;

            case 1:
                bulletDirection = MoveDiretion.Down;
                image           = Properties.Resources.tankD;
                y = y + speed;        //下移
                break;

            case 2:
                bulletDirection = MoveDiretion.Left;
                image           = Properties.Resources.tankL;
                x = x - speed;         //左移
                break;

            case 3:
                bulletDirection = MoveDiretion.Right;
                image           = Properties.Resources.tankR;
                x = x + speed;         //右移
                break;
            }
        }
        public uint Start()
        {
            uint turn = 0;

            /*
             * users.characters.ForEach( each =>
             * {
             *  Console.Write( "actual params :" );
             *  for ( int i = 0; i < each.actualParams.Length; ++i )
             *      Console.Write(" " + each.actualParams[i]);
             *  Console.WriteLine( "" );
             * } );
             */

            while (true)
            {
                ++turn;

                #region 결과 기록
                record.pathfinding.Add(new Int2D {
                    x = explorer.position.x, y = explorer.position.y
                });
                #endregion

                // 비밀의 방에 도착
                if (explorer.isRingDiscovered)
                {
                    break;
                }

                MoveDiretion direction = explorer.GetMoveDirection();
                if (!explorer.Move(direction, record))
                {
                    break;
                }

                // 위에서 아이템도 먹고 몹도 처리했으면 실제로 맵에서의 좌표도 이동시킨다
                dungeon.MovePlayer(explorer.position);

                // dungeon.PrintOutMAP();
                // Console.WriteLine( "player position : " + explorer.position.x + " / " + explorer.position.y );

                //Thread.Sleep( 100 );
            }

            Console.WriteLine("THE END ( turn : " + turn + " )");

            Console.WriteLine("Earned Exp : " + record.lootedExp);
            Console.WriteLine("Earned gold : " + record.lootedGold);
            // Console.WriteLine( "looted items : " );
            // record.lootedItems.ForEach(item => Console.Write(" " + ((ItemToken)item).level));

            return(turn);
        }
Example #4
0
        private void GameForm_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            if (myMoveControl == MoveDiretion.Stop)
            {
                switch (e.KeyCode)
                {
                case System.Windows.Forms.Keys.Up:
                    yMove           = MoveDiretion.Up;
                    bulletDirection = MoveDiretion.Up;
                    lastMove        = MoveDiretion.Up;
                    myMoveControl   = MoveDiretion.Up;
                    break;

                case System.Windows.Forms.Keys.Down:
                    yMove           = MoveDiretion.Down;
                    bulletDirection = MoveDiretion.Down;
                    lastMove        = MoveDiretion.Down;
                    myMoveControl   = MoveDiretion.Down;

                    break;

                case System.Windows.Forms.Keys.Left:
                    xMove           = MoveDiretion.Left;
                    bulletDirection = MoveDiretion.Left;
                    lastMove        = MoveDiretion.Left;
                    myMoveControl   = MoveDiretion.Left;

                    break;

                case System.Windows.Forms.Keys.Right:
                    xMove           = MoveDiretion.Right;
                    bulletDirection = MoveDiretion.Right;
                    lastMove        = MoveDiretion.Right;
                    myMoveControl   = MoveDiretion.Right;

                    break;

                case System.Windows.Forms.Keys.Space:
                    isShooting = true;

                    break;
                }
            }
        }
Example #5
0
        private void GameForm_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
            case System.Windows.Forms.Keys.Up:
            case System.Windows.Forms.Keys.Down:
                yMove         = MoveDiretion.Stop;
                myMoveControl = MoveDiretion.Stop;
                break;

            case System.Windows.Forms.Keys.Left:
            case System.Windows.Forms.Keys.Right:
                xMove         = MoveDiretion.Stop;
                myMoveControl = MoveDiretion.Stop;
                break;

            case System.Windows.Forms.Keys.Space:

                isShooting = false;
                break;
            }
        }
Example #6
0
        public Boolean isTouchWall(MoveDiretion direction)
        {
            foreach (Wall wall in Map.wallList)
            {
                if (this.getRectangle().IntersectsWith(new Rectangle(wall.getX(), wall.getY(), 40, 40)))
                {
                    if (3 == wall.getType())
                    {
                        return(false);
                    }

                    switch (direction)
                    {
                    case MoveDiretion.Up:
                        this.y = (this.y / 40 + 1) * 40;
                        break;

                    case MoveDiretion.Down:
                        this.y = (this.y / 40) * 40;
                        break;

                    case MoveDiretion.Left:
                        this.x = (this.x / 40 + 1) * 40;
                        break;

                    case MoveDiretion.Right:
                        this.x = (this.x / 40) * 40;
                        break;

                    default:
                        break;
                    }
                    return(true);
                }
            }

            return(false);
        }
        public bool Move(MoveDiretion direction, GameRecord record)
        {
            switch (direction)
            {
            case MoveDiretion.DOWN:
                position = new Int2D(position.x, position.y + 1);
                break;

            case MoveDiretion.LEFT:
                position = new Int2D(position.x - 1, position.y);
                break;

            case MoveDiretion.RIGHT:
                position = new Int2D(position.x + 1, position.y);
                break;

            case MoveDiretion.UP:
                position = new Int2D(position.x, position.y - 1);
                break;

            default:
                break;
            }

            // 일단 도착했으니까 제거
            if (position.Equals(currentMovePath.Peek()))
            {
                currentMovePath.Pop();
            }

            // 몹이 있는지 확인한다
            // 있으면 일단 전투부터 요청
            Party target = dungeonMaster.GetMapObject(position.x, position.y).party;

            if (target != null && target.partyType == PartyType.MOB)
            {
                if (!dungeonMaster.StartBattle(target))
                {
                    record.lastPosition = position;

                    return(false);
                }
            }

            // 아이템 있는지 확인한다
            Item item = (Item)dungeonMaster.GetMapObject(position.x, position.y).gameObject;

            if (item != null)
            {
                if (item.code == ItemCode.Ring)
                {
                    isRingDiscovered = true;
                }
                else
                {
                    dungeonMaster.LootItem(item, currentZoneId);
                    UpdateDestination();
                }
            }

            // 현재 존 정보 업데이트 할 것
            int newZoneId = dungeonMaster.GetZoneId(position);

            if (currentZoneId != newZoneId)
            {
                // 영역이 바뀌었다!
                currentZoneId = newZoneId;

                UpdateDestination();

                // 처음 가보는 곳이면 일단 스택에도 넣고, 가봤다고 기록도 하자
                if (!exploredZone.Contains(currentZoneId))
                {
                    dungeonZoneHistory.Push(currentZoneId);
                    exploredZone.Add(currentZoneId);
                }
            }

            return(true);
        }