亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Unity實現(xiàn)俄羅斯方塊(二)

 更新時間:2020年06月22日 10:24:19   作者:阿浪啊  
這篇文章主要為大家詳細介紹了Unity實現(xiàn)俄羅斯方塊的第一部分代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Unity實現(xiàn)俄羅斯方塊第2部分,供大家參考,具體內(nèi)容如下

代碼部分

1. 實現(xiàn)物體自由降落(在有關于物體的腳本中編寫)

1)、使用循環(huán)調用方法實現(xiàn)

public float speed = 0.3f;//物體下落
 // Start is called before the first frame update
 void Start()
 {
 InvokeRepeating("Move", 0, speed);
 }
 void Move()
 {
 transform.position += new Vector3(0, -1, 0);
 }

2)、使用時間差進行自由降落(在這里使用的該方法)

float lastFail=0;
else if (Input.GetKeyDown(KeyCode.DownArrow)||Time.time-lastFail>=1)
{
 transform.position += new Vector3(0, -1, 0);
 lastFail = Time.time;
}

2. 處理碰邊界問題

邏輯部分:

1)、得到游戲區(qū)域的寬度和高度,分析寬度和高度能放多少個格子,用一個二維數(shù)組來保存信息。如果占據(jù)了這個格子將其設置為非空。
2)、編寫格子的腳本,處理格子的邏輯。

代碼部分:

//設置變量
public static int width = 10;//游戲窗口的寬度
public static int height = 20;//游戲窗口的高度
public static Transform[,] grid=new Transform[width,height];
//*注:變量應設置成static 否則無法引用

3. 處理物體是否還能下降問題(物體腳本)

邏輯部分:

1)、在一個格子剛產(chǎn)生的時候,就要判斷是否能繼續(xù)下落,如果還可以繼續(xù)下落,說明游戲仍可進行,如果不能繼續(xù)下落,說明游戲結束。

2)、所以判斷能都繼續(xù)下落的重要條件依據(jù)就是下方的格子是否被占據(jù)。也可以先移動位置,判斷移動后的位置是否有效,如果有效,物體進行移動,否則不移動。

3)、編寫是否組成物體的格子是否在邊界內(nèi),防止超出邊界(游戲區(qū)域格子腳本),每一個格子的x要大于左邊界且小于右邊界,y要大于下邊界。

4)、當其在uodate不能下落時,應該產(chǎn)生一個新的物體,并且將當前的物體的腳本進行關閉,避免腳本還發(fā)生作用。
代碼部分:

格子腳本:

public static Vector2 roundVec2(Vector2 v)
 {
 return new Vector2(Mathf.Round(v.x), Mathf.Round(v.y));
 }
 public static bool insideBorder(Vector2 pos) {
 //注寬是小于否則會出邊界
 if ((int)pos.x >= 0 && (int)pos.x <width && (int)pos.y >= 0)
  return true;
 else
  return false;
 }

物體腳本:

void Start()
 {
 if (!isValidGridPos())//剛產(chǎn)生就無效
 {
  Debug.Log("GAME OVER");
 }
 }
 float lastFail=0;
 // Update is called once per frame
 void Update()
 {
 //控制物體向左移
 if (Input.GetKeyDown(KeyCode.LeftArrow))
 {
  transform.position += new Vector3(-1, 0, 0);
  if (isValidGridPos())
  {
  }
  else {
  transform.position += new Vector3(1, 0, 0);
  }
 }
 //控制物體右移
 else if (Input.GetKeyDown(KeyCode.RightArrow))
 {
  transform.position += new Vector3(1, 0, 0);
  if (isValidGridPos())
  {
  }
  else
  {
  transform.position += new Vector3(-1, 0, 0);
  }
 }
 //控制物體旋轉
 else if (Input.GetKeyDown(KeyCode.UpArrow))
 {
  //可在unity編輯器中通過旋轉可得是對z軸進行旋轉
  transform.Rotate(0, 0, -90);
  if (isValidGridPos())
  {
  }
  else
  {
  transform.Rotate(0, 0, 90);
  }
 }
 else if (Input.GetKeyDown(KeyCode.DownArrow)||Time.time-lastFail>=1)
 {
  transform.position += new Vector3(0, -1, 0);
  if (isValidGridPos())
  {
  }
  else
  {
  transform.position += new Vector3(0, 1, 0);
  FindObjectOfType<Spawner>().spawnNext();
  enabled = false;
  }
  lastFail = Time.time;
 }
 }
 bool isValidGridPos()//判斷是否有效
 {
 foreach (Transform child in transform)
 {
  Vector2 v=Grid.roundVec2(child.position);
  //判斷是否在邊界之間
  if (!Grid.insideBorder(v))
  return false;
  if (Grid.grid[(int)v.x, (int)v.y] != null)
  return false;
 }
 return true;
 }

更多俄羅斯方塊精彩文章請點擊專題:俄羅斯方塊游戲集合 進行學習。

更多有趣的經(jīng)典小游戲實現(xiàn)專題,分享給大家:

C++經(jīng)典小游戲匯總

python經(jīng)典小游戲匯總

python俄羅斯方塊游戲集合

JavaScript經(jīng)典游戲 玩不停

javascript經(jīng)典小游戲匯總

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • WPF實現(xiàn)3D立方體波浪墻效果

    WPF實現(xiàn)3D立方體波浪墻效果

    這篇文章主要為大家詳細介紹了WPF實現(xiàn)3D立方體波浪墻效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • c#實現(xiàn)簡單控制臺udp異步通信程序示例

    c#實現(xiàn)簡單控制臺udp異步通信程序示例

    這篇文章主要介紹了c#實現(xiàn)簡單控制臺udp異步通信程序示例,需要的朋友可以參考下
    2014-04-04
  • C#實現(xiàn)一個控制臺的點餐系統(tǒng)

    C#實現(xiàn)一個控制臺的點餐系統(tǒng)

    這篇文章主要為大家詳細介紹了C#實現(xiàn)一個控制臺的點餐系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • c#?理解csredis庫實現(xiàn)分布式鎖的詳細流程

    c#?理解csredis庫實現(xiàn)分布式鎖的詳細流程

    這篇文章主要介紹了c#?理解csredis實現(xiàn)分布式鎖,該庫本身已經(jīng)足夠完善,這里我畫蛇添足一下,為了方便自己的使用,本文通過實例代碼給大家詳細介紹,需要的朋友可以參考下
    2022-02-02
  • C#通過熱鍵控制顯示器開關的方法

    C#通過熱鍵控制顯示器開關的方法

    這篇文章主要介紹了C#通過熱鍵控制顯示器開關的方法,涉及C#針對熱鍵的操作技巧,非常具有實用價值,需要的朋友可以參考下
    2014-12-12
  • c#類的使用示例

    c#類的使用示例

    這篇文章主要介紹了c#類的使用示例,還有我學習時的筆記,需要的朋友可以參考下
    2014-04-04
  • Unity游戲開發(fā)之射擊小游戲的實現(xiàn)

    Unity游戲開發(fā)之射擊小游戲的實現(xiàn)

    本篇文章為大家?guī)硪粋€橫版2D射擊小游戲,游戲制作超級簡單,玩法一學就會。文中的示例代碼講解詳細,快跟隨小編一起動手試一試
    2022-03-03
  • Unity中的PostProcessBuild實用案例深入解析

    Unity中的PostProcessBuild實用案例深入解析

    這篇文章主要為大家介紹了Unity中的PostProcessBuild實用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • C# Marshal類基本概念和入門實例講解

    C# Marshal類基本概念和入門實例講解

    這篇文章主要介紹了C# Marshal類基本概念和入門實例,具有很好的參考價值,希望對大家有所幫助。
    2023-02-02
  • unity實現(xiàn)簡單的貪吃蛇游戲

    unity實現(xiàn)簡單的貪吃蛇游戲

    這篇文章主要為大家詳細介紹了unity實現(xiàn)簡單的貪吃蛇游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03

最新評論