天和3D游戏三打一棋牌游戏戏 陪打 30一天 ...

& & & &此游戏是根据书上一步一步敲的。是一个入门级别的游戏。
游戏状态机
  说到游戏状态机,就不得不提到开发中最常用的MVC模式。
MVC模式的全称是Model-View-Control,他将整个游戏划分为三大模块:模型组件,视图组件和控制器组件。
模型组件是视图组件与控制器组件之间通信的桥梁,比如:在控制主角移动时,系统先通过控制器输入键盘事件并将具体操作信息发送给模型组件,然后模型组件通过一系列的逻辑计
算,得到主角移动后的位置,并将相关信息发送给视图组件,最后视图组件接收消息并将主角的位置正确的显示在屏幕中。
游戏状态机对游戏进行模块化,并且将其划分为很多不同的游戏状态,在脚本最上层用一个变量来记录当前的游戏状态,这样,游戏逻辑与游戏渲染就可以根据当前的
游戏状态来执行各自的任务了。因为这个变量凌驾于MVC模式之上。所以在各自循环中都可以判断当前的游戏状态。
1 using UnityE
2 using System.C
4 public class nq01 : MonoBehaviour
//游戏界面状态机
//主菜单界面
public const int STATE_MAINMENU = 0;
//开始游戏界面
public const int STATE_STARTGAME = 1;
//游戏设置界面
public const int STATE_OPTION = 2;
//游戏帮助界面
public const int STATE_HELP = 3;
//游戏退出界面
public const int STATE_EXIT = 4;
public GUISkin myS
//游戏背景贴图
public Texture textureBG;
//开始菜单贴图
public Texture tex_startI
//帮助菜单贴图
public Texture tex_helpI
//游戏音乐资源
public AudioS
//当前游戏状态
private int gameS
// Use this for initialization
void Start()
//初始化游戏状态为主菜单界面
gameState = STATE_MAINMENU;
// Update is called once per frame
void Update()
void OnGUI()
switch (gameState)
case STATE_MAINMENU:
//绘制主菜单界面
RenderMainMenu();
case STATE_STARTGAME:
//绘制游戏开始界面
RenderStart();
case STATE_OPTION:
//绘制游戏设置界面
RenderOption();
case STATE_HELP:
//绘制游戏帮助界面
RenderHelp();
case STATE_EXIT:
//绘制游戏退出界面
//目前直接关闭并退出游戏
/// &summary&
/// 绘制游戏帮助界面
/// &/summary&
private void RenderHelp()
GUI.skin = myS
GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), tex_helpInfo);
//返回按钮
if (GUI.Button(new Rect(0, 500, 403, 78), "", "back"))
gameState = STATE_MAINMENU;
/// &summary&
/// 绘制游戏设置界面
/// &/summary&
private void RenderOption()
GUI.skin = myS
GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), textureBG);
//开启音乐按钮
if (GUI.Button(new Rect(0, 0, 403, 75), "", "music_on"))
if (!music.isPlaying)
//播放音乐
music.Play();
//关闭音乐按钮
if (GUI.Button(new Rect(0, 200, 403, 75), "", "music_off"))
//关闭音乐
music.Stop();
//返回按钮
if (GUI.Button(new Rect(0, 500, 403, 78), "", "back"))
gameState = STATE_MAINMENU;
/// &summary&
/// 绘制游戏开始界面
/// &/summary&
private void RenderStart()
GUI.skin = myS
GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), tex_startInfo);
if (GUI.Button(new Rect(0, 500, 403, 78), "", "back"))
gameState = STATE_MAINMENU;
/// &summary&
/// 绘制主菜单界面
/// &/summary&
private void RenderMainMenu()
//设置界面皮肤
GUI.skin = myS
//绘制游戏背景图
GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), textureBG);
//开始游戏按钮
if (GUI.Button(new Rect(0, 30, 623, 153), "", "start"))
//进入开始游戏状态
//由于目前处于测试阶段
//后期会在这里重新载入新的游戏场景
gameState = STATE_STARTGAME;
//游戏设置按钮
if (GUI.Button(new Rect(0, 180, 623, 153), "", "option"))
//处于开始游戏状态
gameState = STATE_OPTION;
//游戏帮助按钮
if (GUI.Button(new Rect(0, 320, 623, 153), "", "help"))
//进入游戏帮助状态
gameState = STATE_HELP;
//游戏退出按钮
if (GUI.Button(new Rect(0, 470, 623, 153), "", "exit"))
//退出游戏
Application.Quit();
阅读(...) 评论()好爸爸把3D打印机改成游戏机器人陪女儿
查看: 1531|
摘要: 创客Jose Julio热爱机器人和3D打印,更爱他的女儿。他的女儿很喜欢空气曲棍球(air hockey)游戏,但Jose 常常抽不出时间陪她玩。有一天,他决定用3D打印机零部件和PS3摄像头制造一台空气曲棍球机器人,以确保孩子一 ...
创客Jose Julio热爱机器人和,更爱他的女儿。他的女儿很喜欢空气曲棍球(air hockey)游戏,但Jose 常常抽不出时间陪她玩。有一天,他决定用3D打印机零部件和PS3摄像头制造一台空气曲棍球机器人,以确保孩子一个人也能玩空气曲棍球。看下面的视频,空气曲棍球机器人与人轻松地对攻,你能想象得到它其实是一台3D打印机改装的吗?
这是一个了不起的成就:机器人不只是可以在平面上前后左右地移动。它还可以预测冰球的运动,决定是否阻止或射门,并且难度可调(速度+加速度+策略算法)。
有一个创客爸爸真幸福啊!
除特殊注明的文章外,本站文章均为原创或编译,转载请注明“来自天工社 ”并链回本页.谢谢!
上一篇:下一篇:
刚表态过的朋友 ()
Powered by

参考资料

 

随机推荐