public Bullet(MoveDiretion bulletDirection) { image = Properties.Resources.bullet; width = image.Width; height = image.Height; this.bulletDirection = bulletDirection; }
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); }
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; } } }
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; } }
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); }