void PlaceBlock(Vector2 position) { float randomBlockType = Random.value; if (randomBlockType < ConfigurationUtils.StandardBlockProbability) { Instantiate(standardBlock, position, Quaternion.identity); } else if (randomBlockType < ConfigurationUtils.StandardBlockProbability + ConfigurationUtils.BonusBlockProbability) { Instantiate(bonusBlock, position, Quaternion.identity); } else { GameObject pickUpBlockObject = Instantiate(pickUpBlock, position, Quaternion.identity); PickUpBlock pickUpBlockScript = pickUpBlockObject.GetComponent <PickUpBlock>(); float threshold = ConfigurationUtils.StandardBlockProbability + ConfigurationUtils.BonusBlockProbability + ConfigurationUtils.FreezeBlockProbability; if (randomBlockType < threshold) { pickUpBlockScript.Effect = PickupEffect.Freezer; } else { pickUpBlockScript.Effect = PickupEffect.Speedup; } } }
public static void AddSpeedUpEffectInvoker(PickUpBlock invoker) { speedUpInvokers.Add(invoker); foreach (UnityAction <float, float> listener in speedUplisteners) { invoker.AddSpeedUpEffectListener(listener); } }
public static void AddFreezerEffectInvoker(PickUpBlock invoker) { freezerEffectInvokers.Add(invoker); foreach (UnityAction <float> listener in freezerEffectListeners) { invoker.AddFreezerEffectListener(listener); } }
public static void AddFreezeInvoker(PickUpBlock invoker) { freezeEventInvoker = invoker; if (freezeEventListener != null) { freezeEventInvoker.AddFreezeEventListener(freezeEventListener); } }
public static void AddFreezerInvoker(PickUpBlock invoker) { freezerInvokerList.Add(invoker); if (freezerListener != null) { invoker.AddFreezerEffectListener(freezerListener); } }
public static void AddSpeedUpEventInvoker(PickUpBlock invoker) { speedUpEventInvoker = invoker; if (speedUpEventListener != null) { speedUpEventInvoker.AddSpeedUpEventListener(speedUpEventListener); Debug.Log("Inadd"); } }
void Start() { Instantiate(paddle); //measure the shape of the block GameObject temBlock = Instantiate <GameObject>(prefabStdBlock); BoxCollider2D boxCollider = temBlock.GetComponent <BoxCollider2D>(); float blockWidth = boxCollider.size.x; float blockHeight = boxCollider.size.y; Destroy(temBlock); //blocks per row float screenWidth = ScreenUtils.ScreenRight - ScreenUtils.ScreenLeft; int blockNum = (int)(screenWidth / blockWidth); float totalBlockWidth = blockWidth * blockNum; // 计算左边的block的中心点 float leftBlockoffset = ScreenUtils.ScreenLeft + (screenWidth - totalBlockWidth) / 2 + blockWidth / 2; float topRowOffset = ScreenUtils.ScreenTop - (ScreenUtils.ScreenTop - ScreenUtils.ScreenBottom) / 7 - blockHeight / 2; Vector2 currentPosition = new Vector2(leftBlockoffset, topRowOffset); int layers = 3; for (int i = 0; i < layers; ++i) { for (int j = 0; j < blockNum; j++) { float choice = Random.value; if (choice < ConfigurationUtils.StandardBlockSpawnProbability) { Instantiate(prefabStdBlock, currentPosition, Quaternion.identity); } else if (choice < ConfigurationUtils.StandardBlockSpawnProbability + ConfigurationUtils.BonusBlockSpawnProbability) { Instantiate(prefabBonusBlock, currentPosition, Quaternion.identity); } else { GameObject GO = Instantiate(prefabPickUpBlock, currentPosition, Quaternion.identity); PickUpBlock pickUpBlock = GO.GetComponent <PickUpBlock>(); if (choice < ConfigurationUtils.StandardBlockSpawnProbability + ConfigurationUtils.BonusBlockSpawnProbability + ConfigurationUtils.FreezerBlockSpawnProbability) { pickUpBlock.Effect = PickupEffect.Freezer; } else { pickUpBlock.Effect = PickupEffect.Speedup; } } currentPosition.x += blockWidth; } currentPosition.x = leftBlockoffset; currentPosition.y -= blockHeight; } }
public static void AddInvoker(PickUpBlock script) { invoker = script; if (freezerListners != null) { invoker.AddListenerToFreezer(freezerListners); } foreach (UnityAction <int, int> item in speedListeners) { invoker.AddListenerToSpeed(item); } }
// Update is called once per frame void FixedUpdate() { if (!playerIndexSet || !prevState.IsConnected) { for (int i = 0; i < 4; ++i) { PlayerIndex testPlayerIndex = (PlayerIndex)i; GamePadState testState = GamePad.GetState(testPlayerIndex); if (testState.IsConnected && i == controller.playerIndex) { playerIndex = testPlayerIndex; playerIndexSet = true; } } } prevState = state; state = GamePad.GetState(playerIndex); if (state.ThumbSticks.Left.X != 0 || state.ThumbSticks.Left.Y != 0) { /* * float angle = 0; * if (controller.Left) * angle = 270; * else if (controller.Right) * angle = 90; * else if (controller.Up) * angle = 0; * else * angle = 180;*/ horizontalAxis = state.ThumbSticks.Left.X; verticalAxis = state.ThumbSticks.Left.Y; var tmp = new Vector3(state.ThumbSticks.Left.X, 0, state.ThumbSticks.Left.Y); if (Mathf.Abs(horizontalAxis) > Mathf.Abs(verticalAxis)) { verticalAxis = 0; } else { horizontalAxis = 0; } forward.transform.eulerAngles = new Vector3(0, Mathf.Atan2(horizontalAxis, verticalAxis) * Mathf.Rad2Deg, 0); if (forward.eulerAngles.y == 270) { if (!PickableObject) { spriteRenderer.sprite = m_sprites[1]; } else { spriteRenderer.sprite = m_sprites[2]; } spriteRenderer.flipX = true; } else { spriteRenderer.flipX = false; if (forward.eulerAngles.y == 90) { if (!PickableObject) { spriteRenderer.sprite = m_sprites[1]; } else { spriteRenderer.sprite = m_sprites[2]; } } if (forward.eulerAngles.y == 180) { if (!PickableObject) { spriteRenderer.sprite = m_sprites[3]; } else { spriteRenderer.sprite = m_sprites[0]; } } if (forward.eulerAngles.y == 0) { if (!PickableObject) { spriteRenderer.sprite = m_sprites[5]; } else { spriteRenderer.sprite = m_sprites[4]; } } } //transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, Mathf.Atan2(controller.HorizontalAxis, controller.VerticalAxis) * Mathf.Rad2Deg, 0), settings.Smoothness); myRigidbody.velocity = forward.forward * settings.Speed; // FMODUnity.RuntimeManager.PlayOneShot(footStepEvent, transform.position); } else { myRigidbody.velocity = Vector3.zero; } ComputeRaycast(); bool pickUp = prevState.Buttons.X == ButtonState.Released && state.Buttons.X == ButtonState.Pressed; if (blockToToInteract && pickUp) { blockToToInteract.OnInteract(this); PickUpBlock pickUpBlock = blockToToInteract.GetComponent <PickUpBlock>(); DipositeBlock dipositeBlock = blockToToInteract.GetComponent <DipositeBlock>(); PickUpDipositeBlock pickUpDipositeBlock = blockToToInteract.GetComponent <PickUpDipositeBlock>(); if (pickUpBlock) { if (!PickableObject) { PickableObject pickableObject = pickUpBlock.PickUp(); if (pickableObject) { PickableObject = pickableObject; } } } if (dipositeBlock) { if (PickableObject) { if (dipositeBlock.Diposide(PickableObject)) { PickableObject = null; } } } if (pickUpDipositeBlock) { bool canPickUp = false; if (PickableObject) { canPickUp = pickUpDipositeBlock.Diposide(PickableObject); if (canPickUp) { PickableObject = null; } //PickableObject.transform.SetParent(null); } if (!canPickUp && !PickableObject) { PickableObject pickableObject = pickUpDipositeBlock.PickUp(); if (pickableObject) { PickableObject = pickableObject; return; } } } } }