IEnumerator Coordinator() { float xMin = map.GetComponent <BoxCollider>().bounds.min.x + 2f; float xMax = map.GetComponent <BoxCollider>().bounds.max.x - 2f; float zMin = map.GetComponent <BoxCollider>().bounds.min.z + 2f; float zMax = map.GetComponent <BoxCollider>().bounds.max.z - 2f; while (true) { var target = PositionOnMap.Pick(xMin, xMax, zMin, zMax); StartCoroutine(RotateToTarget(target - transform.position)); while (!IsCloseToTarget(target)) { if (IsCloseToBorder(xMin, xMax, zMin, zMax)) { target = PositionOnMap.Pick(xMin, xMax, zMin, zMax); StartCoroutine(RotateToTarget(target - transform.position)); yield return(new WaitForSeconds(2f)); break; } yield return(new WaitForSeconds(0.02f)); } } }
protected virtual void UpdateCurrentPosiotion(Vector2 pos) { if (pos.y == 1) { if (pos.x == -1) { currentPosition = PositionOnMap.leftUp; } else if (pos.x == 0) { currentPosition = PositionOnMap.centerUp; } else { currentPosition = PositionOnMap.rightUp; } } else if (pos.y == 0) { if (pos.x == -1) { currentPosition = PositionOnMap.leftCenter; } else if (pos.x == 0) { currentPosition = PositionOnMap.center; } else { currentPosition = PositionOnMap.rightCenter; } } else { if (pos.x == -1) { currentPosition = PositionOnMap.leftBottom; } else if (pos.x == 0) { currentPosition = PositionOnMap.centerBottom; } else { currentPosition = PositionOnMap.rightBottom; } } }
IEnumerator SpawnTank() { float xMin = map.GetComponent <BoxCollider>().bounds.min.x + 2f; float xMax = map.GetComponent <BoxCollider>().bounds.max.x - 2f; float zMin = map.GetComponent <BoxCollider>().bounds.min.z + 2f; float zMax = map.GetComponent <BoxCollider>().bounds.max.z - 2f; yield return(new WaitForSeconds(1)); while (true) { var tankInst = Instantiate(tankPrefab); tankInst.GetComponent <TankMovement>().Init(map); tankInst.transform.position = PositionOnMap.Pick(xMin, xMax, zMin, zMax); yield return(new WaitForSeconds(SPAWN_DELAY)); } }
//public IMapObject[,] level1 = new IMapObject[28,112]; public static IMapObject[,] LoadMapWithObjects(Level level) { IMapObject[,] objectRenderedMap = new IMapObject[28, 112]; for (int y = 0; y < level.LevelAsCharArray.GetLength(1); y++) { for (int x = 0; x < level.LevelAsCharArray.GetLength(0); x++) { PositionOnMap currentPosition = new PositionOnMap { X = x, Y = y }; char symbol = level.LevelAsCharArray[x, y]; switch (symbol) { case '|': objectRenderedMap[x, y] = new WallObject(symbol, currentPosition); break; case '@': objectRenderedMap[x, y] = new PlayerObject(symbol, currentPosition); break; case 'T': objectRenderedMap[x, y] = new GroundObject(symbol, currentPosition); break; case ' ': objectRenderedMap[x, y] = new MapObject(symbol, currentPosition); break; case '_': objectRenderedMap[x, y] = new RoofObject(symbol, currentPosition); break; default: break; } } } return(objectRenderedMap); }
public override void ViewDidLoad() { base.ViewDidLoad(); isRouting = false; UILongPressGestureRecognizer longPress = new UILongPressGestureRecognizer(LongPress); longPress.MinimumPressDuration = 0.5; longPress.CancelsTouchesInView = false; UITapGestureRecognizer tapPress = new UITapGestureRecognizer(TapPress); tapPress.DelaysTouchesBegan = false; scrollView.RemoveAllSubviews(); scrollView.Frame = View.Frame; scrollView.ZoomScale = 1.0f; scrollView.MinimumZoomScale = 0.1f; scrollView.MaximumZoomScale = 2.0f; scrollView.AddSubview(mapView); scrollView.ViewForZoomingInScrollView += (UIScrollView sv) => { return(mapView); }; scrollView.DidZoom += DidZoom; scrollView.ZoomingStarted += ZoomingStarted; scrollView.Scrolled += OnScrolled; scrollView.AddGestureRecognizer(longPress); scrollView.AddGestureRecognizer(tapPress); scrollView.PinchGestureRecognizer.Enabled = true; navigineCore = new NavigineCore(UserHash, NavigineServerUrl); //assign the controller directly to the weak delegate navigineCore.WeakDelegate = this; deviceView = new PositionOnMap(); //deviceView = new UIImageView(new CGRect(0, 0, 30, 30)); //deviceView.BackgroundColor = new UIColor(CIColor.RedColor); //deviceView.Layer.CornerRadius = deviceView.Frame.Size.Height / 2.0f; mapView.AddSubview(deviceView); mapView.UserInteractionEnabled = true; mapView.ContentMode = UIViewContentMode.ScaleAspectFit; timer = new Timer(TimerIntervalInMilliseconds); timer.Interval = TimerIntervalInMilliseconds; timer.Enabled = true; timer.Elapsed += OnTimeEvent; timer.Start(); prevFloorButton.SetBackgroundImage(UIImage.FromBundle("BtnPrevFloor"), UIControlState.Normal); nextFloorButton.SetBackgroundImage(UIImage.FromBundle("BtnNextFloor"), UIControlState.Normal); zoomInButton.SetBackgroundImage(UIImage.FromBundle("BtnZoomIn"), UIControlState.Normal); zoomInButton.Layer.CornerRadius = zoomInButton.Frame.Size.Height / 2.0f; zoomOutButton.SetBackgroundImage(UIImage.FromBundle("BtnZoomOut"), UIControlState.Normal); zoomOutButton.Layer.CornerRadius = zoomInButton.Frame.Size.Height / 2.0f; adjustModeButton.SetBackgroundImage(UIImage.FromBundle("BtnAjustModeOff"), UIControlState.Normal); adjustModeButton.Layer.CornerRadius = zoomInButton.Frame.Size.Height / 2.0f; prevFloorButton.TouchUpInside += LoadPrevSubLocation; nextFloorButton.TouchUpInside += LoadNextSubLocation; zoomInButton.TouchUpInside += ZoomIn; zoomOutButton.TouchUpInside += ZoomOut; adjustModeButton.TouchUpInside += ToggleAdjustMode; UITapGestureRecognizer tapErrorPress = new UITapGestureRecognizer(OnCloseMessage); tapErrorPress.DelaysTouchesBegan = false; errorMessageLabel.Hidden = true; errorMessageLabel.AddGestureRecognizer(tapErrorPress); cancelRouteButton.Hidden = true; cancelRouteButton.TouchUpInside += OnCancelRoute; LoadLocation(); }