蛋疼的时候写三消游戏(一)
2012-12-16 18:16
197 查看
现在手机上最火的几种游戏类型:塔防,三消,三国题材,于是有很多游戏就把这些揉一块了。。
《英雄三三杀》
《逆转三国》都算这一类了吧。。
三消的还是经典的有意思一些:
以前在电脑上看过一种三消,它的移动方式是拖动走一整条的,当时觉得挺有意思,现在有了Unity应该可以方便的实现出来,
所以要自己试试了。
我先用photoshop画出三类的可消方块:
接下来要准备的就是U3D里的东西了,因为想做成2D的,我还是图个方便用NGUI吧。
先想个大概的界面布局:
注意NGUI的坐标中心点是在屏幕中心了,所以定义坐标时要自己转换了。
竖的红线的左边做为界面的显示,如分数,时间等。右边就是游戏的主要操作区域了。
我喜欢先把大概的显示搞定,再写游戏逻辑,这样比较先有成就感 嘿嘿。
后面到时可以加一些背景图,其实这边物体的长宽是不相等的。。我为了能自适应屏幕大小,偷懒就不搞成正方形了。。
代码如下:
《英雄三三杀》
《逆转三国》都算这一类了吧。。
三消的还是经典的有意思一些:
细数iPhone上那些经典的三消游戏
http://www.appifan.com/topic-232以前在电脑上看过一种三消,它的移动方式是拖动走一整条的,当时觉得挺有意思,现在有了Unity应该可以方便的实现出来,
所以要自己试试了。
我先用photoshop画出三类的可消方块:
接下来要准备的就是U3D里的东西了,因为想做成2D的,我还是图个方便用NGUI吧。
先想个大概的界面布局:
注意NGUI的坐标中心点是在屏幕中心了,所以定义坐标时要自己转换了。
竖的红线的左边做为界面的显示,如分数,时间等。右边就是游戏的主要操作区域了。
我喜欢先把大概的显示搞定,再写游戏逻辑,这样比较先有成就感 嘿嘿。
后面到时可以加一些背景图,其实这边物体的长宽是不相等的。。我为了能自适应屏幕大小,偷懒就不搞成正方形了。。
代码如下:
using UnityEngine; using System.Collections; /// <summary> /// FileName: UIManager.cs /// Author: Star /// Date: 12/12/16 /// Description: Manager of game UI /// </summary> public class UIManager : MonoBehaviour { public GameObject m_ItemPrefab; public GameObject m_GamePanel; Vector3 m_TopLeft = Vector3.zero; Vector3 m_GameBoardTopLeft = Vector3.zero; Vector3 m_GameBoardBottomRight = Vector3.zero; float m_LeftPercent = 0.2f; int NumRow = 10; int NumCol = 5; float m_fItemWidth = 0; float m_fItemHeight = 0; // Use this for initialization void Start () { m_TopLeft = new Vector3(-Screen.width/2, Screen.height/2, 0); m_GameBoardTopLeft = m_TopLeft + new Vector3(Screen.width * m_LeftPercent, 0, 0); m_GameBoardBottomRight = new Vector3(Screen.width/2, -Screen.height/2, 0); m_fItemWidth = Screen.width * (1-m_LeftPercent) / NumCol; m_fItemHeight = Screen.height / NumRow; InitItems(); } void InitItems() { GameObject go = null; UISprite img = null; for (int i = 0; i < NumRow; i++) { for (int j = 0; j < NumCol; j++) { go = NGUITools.AddChild(m_GamePanel, m_ItemPrefab); go.transform.localPosition = new Vector3(j * m_fItemWidth + m_fItemWidth/2, -i * m_fItemHeight - m_fItemHeight/2, 0) + m_GameBoardTopLeft; img = go.transform.FindChild("ItemImg").GetComponent<UISprite>(); img.gameObject.transform.localScale = new Vector3(m_fItemWidth, m_fItemHeight, 0); } } } // Update is called once per frame void Update () { } }
相关文章推荐
- 蛋疼的时候写三消游戏(五)
- 蛋疼的时候写三消游戏(十二)
- 蛋疼的时候写三消游戏(八)
- 蛋疼的时候写三消游戏(六)
- 蛋疼的时候写三消游戏(十)--字体的生成
- 蛋疼的时候写三消游戏(七)
- 蛋疼的时候写三消游戏(十三)
- 蛋疼的时候写三消游戏(三)
- 蛋疼的时候写三消游戏(九)
- 蛋疼的时候写三消游戏(十一)-- 圆形时钟
- 蛋疼的时候写三消游戏(二)
- 蛋疼的时候写三消游戏(四)
- 当退出游戏的时候 游戏虽然退出了 但是进程不会结束掉 所以在退出的时候要加上这句话
- 写外挂的时候遇到有的用户用挂注入不了游戏~
- Unity3d开发“类三消”游戏
- <原博客>某人在玩游戏的时候输入密码123456后成功进入游戏(输错5次则被强行退出)
- 挑战OOAD:游戏中物品使用时候的不同功能,用OO的方式,该如何设计?
- 关于Cocos2d-x发布游戏的时候遇到的问题和解决
- 三消游戏解析(一)
- google的xss游戏,过时,蛋疼自己记录