Skip to content

Commit

Permalink
推箱子逻辑
Browse files Browse the repository at this point in the history
  • Loading branch information
--ggr committed Dec 23, 2016
1 parent 7b451fa commit 986c1cf
Show file tree
Hide file tree
Showing 38 changed files with 749 additions and 5 deletions.
9 changes: 9 additions & 0 deletions Assets/Resources/Prefabs/Game.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added Assets/Resources/Prefabs/Game/GameBorad.prefab
Binary file not shown.
8 changes: 8 additions & 0 deletions Assets/Resources/Prefabs/Game/GameBorad.prefab.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added Assets/Resources/Prefabs/Game/Grid.prefab
Binary file not shown.
8 changes: 8 additions & 0 deletions Assets/Resources/Prefabs/Game/Grid.prefab.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added Assets/Resources/Prefabs/Game/Rock.prefab
Binary file not shown.
8 changes: 8 additions & 0 deletions Assets/Resources/Prefabs/Game/Rock.prefab.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified Assets/Resources/Prefabs/UI/Canvas.prefab
Binary file not shown.
Binary file added Assets/Resources/Prefabs/UI/GameUI.prefab
Binary file not shown.
8 changes: 8 additions & 0 deletions Assets/Resources/Prefabs/UI/GameUI.prefab.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added Assets/Resources/Prefabs/UI/StartGameUI.prefab
Binary file not shown.
8 changes: 8 additions & 0 deletions Assets/Resources/Prefabs/UI/StartGameUI.prefab.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions Assets/Scenes.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.
File renamed without changes.
Binary file added Assets/Scenes/StartGameScene.unity
Binary file not shown.
8 changes: 8 additions & 0 deletions Assets/Scenes/StartGameScene.unity.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Assets/Scripts/Core/Game.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ private void InitUIRoot()
uiRoot = ui_Root;
UIManager.Instance.InitUIManager(uiRoot.transform.FindChild("UI"));
DontDestroyOnLoad(uiRoot);
UIManager.Instance.OpenUI(UINames.StartGameUI);
}

private void AutoRegisterUpdateObj()
Expand Down
6 changes: 3 additions & 3 deletions Assets/Scripts/Core/UI/UINames.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
public enum UINames {
public enum UINames : byte {
Canvas,
TestUI,

GameUI,
StartGameUI,
}
6 changes: 4 additions & 2 deletions Assets/Scripts/Core/UI/UIPath.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ public string GetUIPath(UINames UIName)
{
case UINames.Canvas:
return "Prefabs/UI/Canvas";
case UINames.TestUI:
return "Prefabs/UI/TestUI";
case UINames.GameUI:
return "Prefabs/UI/GameUI";
case UINames.StartGameUI:
return "Prefabs/UI/StartGameUI";

}
return path;
Expand Down
9 changes: 9 additions & 0 deletions Assets/Scripts/Logic/Game.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

133 changes: 133 additions & 0 deletions Assets/Scripts/Logic/Game/Grid.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public enum GridValue
{
grid_zero,//
grid_one,
grid_two,
grid_three,
grid_four,
grid_five,
grid_six,
}

public class Grid : MonoBehaviour {
public Text valeText;
private GridValue value;
private Node node;
private bool moving;
private Node destNode;
private float speed;
private Vector3 moveDir;
private Node moveDestNode;
private bool self;

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
if(moving)
{
if(node.Distance(destNode) == 1)
{
if(self)
{
if(GridContainer.NodeToPosition(moveDestNode).y >= transform.localPosition.y)
{
Move();
}
else
{
moving = false;
SetNode(moveDestNode);
PushBoxGame.Instance.gridContainer.SelfGrids.Add(this);
PushBoxGame.Instance.CheckRemove(true);
}
}
else
{
if (GridContainer.NodeToPosition(moveDestNode).y <= transform.localPosition.y)
{
Move();
}
else
{
moving = false;
SetNode(moveDestNode);
PushBoxGame.Instance.gridContainer.enemyGrids.Add(this);
}
}
}
else
{
Move();
}
}
}

public GridValue Value
{
get { return this.value; }

set{
this.value = value;
if (null != valeText)
{
valeText.text = (int)value + "";
}
}
}

public Node Node
{
get { return node; }
set
{
node = value;
}
}

public void Move(Node destNode, float speed, bool self = true)
{
this.speed = speed;
this.destNode = destNode;
this.self = self;
moveDestNode = new Node(destNode.X, destNode.Y - 1);
Vector3 pos = GridContainer.NodeToPosition(node);
moveDir = (GridContainer.NodeToPosition(destNode) - pos).normalized;
moveDir.x = moveDir.z = 0;
moving = true;
}

public void SetNode(Node node)
{
this.node = node;
transform.localPosition = GridContainer.NodeToPosition(node);
}

public static Grid Spawn(GridValue gridValue,Node node)
{
GameObject model = Resources.Load<GameObject>(gridValue == GridValue.grid_zero ? "Prefabs/Game/Rock" : "Prefabs/Game/Grid");
GameObject grid = GameObject.Instantiate<GameObject>(model);
grid.transform.SetParent(PushBoxGame.Instance.gridContainer.transform);
grid.transform.localScale = Vector3.one;
Vector2 pos = GridContainer.NodeToPosition(node);
grid.transform.localPosition = new Vector3(pos.x,pos.y,0);
Grid gridCom = grid.GetComponent<Grid>();
gridCom.Value = gridValue;
gridCom.Node = node;
//grid.GetComponent<RectTransform>().sizeDelta = new Vector2(GridContainer.GRID_WIDTH,GridContainer.GRID_HEIGHT);
return gridCom;
}

private void Move()
{
transform.Translate(moveDir * speed * Time.deltaTime, Space.Self);
node = GridContainer.PositionToNode(transform.localPosition);
}
}
12 changes: 12 additions & 0 deletions Assets/Scripts/Logic/Game/Grid.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 986c1cf

Please sign in to comment.