NBA投篮小游戏总结

2/3D游戏:3D

辅助插件:原生

游戏制作难度系数:初级

游戏教程网址:http://www.raywenderlich.com/20333/beginning-unity-3d-for-ios-part-1

1、GUI自适应分辨率

    public const float kDesignWidth = 960f;  //游戏测试时宽度
    public const float kDesignHeight = 640f; //游戏测试时高度     private Vector2 _scaleOffset = Vector2.one;
    private float _scale = 1.0f;
    void Start()
    {
        _scaleOffset.x = Screen.width / kDesignWidth;
        _scaleOffset.y = Screen.height / kDesignHeight;
        _scale = Mathf.Max(_scaleOffset.x, _scaleOffset.y);
    }
    void OnGUI()
    {
        if (_scale < 1)
        {
            GUI.skin = gameMenuGUISkinForSmall; //小字体
        }
        else
        {
            GUI.skin = gameMenuGUISkinForNormal;//正常字体
        }
        //绘制背景图
        GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), backgroundTex);
        //绘制按钮
        if (GUI.Button(new Rect(77 * _scaleOffset.x, 345 * _scaleOffset.y, 130 * _scaleOffset.x, 130 * _scaleOffset.y), resumeButtonTex, GUIStyle.none))
     }

 2、获取动画总的播放时间以及当前动画播放到哪一时间(老版动画系统)

当前动画总的时间:_animation[_currentAnimation.name].length / _animation[_currentAnimation.name].speed

动画播放完,执行OnAnimationFinished方法:

Invoke("OnAnimationFinished", _animation[_currentAnimation.name].length / _animation[_currentAnimation.name].speed);
private void OnAnimationFinished()
 {
     //some codes
}

当前动画播放到哪一时间:

//normalizedTime(float):动画当前规范化时间,1是动画结尾. 0.5是动画中间

_animation[_currentAnimation.name].normalizedTime

3、判断运行平台

    //判断设备平台
    public bool IsMobile
    {
        get
        {
            return (Application.platform == RuntimePlatform.IPhonePlayer || Application.platform == RuntimePlatform.Android);
        }
    }

4、判断网络的可达性

    //判断网络是否可用
    public bool NetworkAvailable
    {
        get
        {
            return Application.internetReachability != NetworkReachability.NotReachable;
        }
    }

NotReachable:表示设备没有连接网络

ReachableViaCarrierDataNetwork:表示设备是通过运营商数据连接的

ReachableViaLocalAreaNetwork:表示设备是通过WiFi或有线网络连接的

5、判断设备方向

Input.deviceOrientation == DeviceOrientation.FaceDown  表示屏幕朝下

Unknown:设备的方向不能被确定。

Portrait:设备在纵向模式,设备直立并home按钮在底部。

PortraitUpsideDown:设备在纵向模式,但颠倒一下,设备直立并home按钮在顶部。

LandscapeLeft:设备在横向模式,设备直立并home按钮在右边。

LandscapeRight:设备在横向模式,设备直立并home按钮在左边。

FaceUp:设备保持与地面平行,屏幕的面向上。

FaceDown:设备保持与地面平行,屏幕的面向下。

6、获取触摸状态

Input.touchCount 获取手指触摸屏幕的数量

                foreach (Touch touch in Input.touches)
                {
                    if (touch.phase == TouchPhase.Began)
                    {
                        //some codes
                    }
                }

Begin:手指已触摸屏幕。

Moved:手指在屏幕上移动。

Stationary:手指触摸屏幕,但并没有移动。

Ended:手指从屏幕上移开。这是一个触摸的最后状态。

Canceled:系统取消跟踪触摸,如用户把屏幕放到他脸上或超过五个接触同时发生。这是一个触摸的最后状态。

Input类的其他详细使用如下:

水平(Horizontal )和垂直(Vertical )被映射到w, a, s, d键和方向键

Fire1, Fire2, Fire3被分别映射到Ctrl,Option(Alt)和Command键

Mouse X 和 Mouse Y被映射到鼠标移动增量

Window Shake X 和 Window Shake Y 被映射到窗口的移动

 7、可视化改变碰撞器的大小

选择碰撞器的对象,然后按下Shift,会出现碰撞器的控制柄,这样就可以用鼠标可视化的改变碰撞器大小。

在场景面板中展示的碰撞器都是绿色的,Mesh Collider除外,它的网格显示着碰撞的边界。

8、单例模式

public class GameController : MonoBehaviour
{
    private static GameController _instance = null;
    public static GameController SharedInstance
    {
        get
        {
            if (_instance == null)
            {
                _instance = GameObject.FindObjectOfType(typeof(GameController)) as GameController;
            }
            return _instance;
        }
    }
    void Awake()
    {
        _instance = this;
    }    private GameController()    {

    }}
IOS创建单例模式:http://stackoverflow.com/questions/5720029/create-singleton-using-gcds-dispatch-once-in-objective-c
时间: 2024-10-09 04:42:00

NBA投篮小游戏总结的相关文章

做了一个小游戏,结项目,数数坑

这是一个微信端的,投篮小游戏. 游戏规则如下: 点击开始,进入游戏,按住右下角红色按钮控制投篮力度,3次进球以后游戏难度将会升级.45秒内您的进球数将会计入排行榜,最终排行榜上的名次可以获得相应奖励,快来投篮冲榜领福利吧. 一.动画效果 做微信项目,相信大家和我一样,已经习惯了放弃使用jQuery,转而使用zepto.但是zepto并没有集成animate()方法.因此若想使用动画,用不想做兼容处理,最高效的方法是重拾jQuery. $(selector).animate(styles,spee

js选择颜色小游戏(随机生成不含重复数字的数组,通过数组中的数控制定义好的数组)

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>js网页版小游戏</title> <style media="screen"> .wrap { width: 577px; outline: 1px solid hotpink; margin: 100px auto; box-shadow: 0 0 5px; } .

使用AxureRP7.0制作经典小游戏"大家来找茬"

本案例是<网站蓝图AxureRP7.0从入门到精通视频教程>中的最后一节,适用于对Axure基础知识掌握比较熟练的同学:教程由axure原型库网站录制,转载请注明出处!相信很多刚接触Axure或者学习了一段时间但并没有深入的同学们,看到这个案例一定很惊讶,使用Axure竟然能做出如此逼真的交互效果!通过此案例也可以激发广大同学们学习Axure的热情和信心!试想一下,如果你有情侣的话,把你们珍藏的合影拿出来处理几张,做成大家来找茬的小游戏,不但锻炼了自己的技能,还能给对方一个惊喜,岂不是一举两得

使用AxureRP7.0制作经典数独小游戏原型,axure游戏原型下载

之前,有同学在Q群中提问,如何使用axure制作经典数独解谜小游戏,当时由于时间关系没有来得及亲手制作,而是给同学们提供了Axure6.5版本的一个数独解谜游戏的原型,本教程由axure原型库网站录制,转载请注明出处!但是那个原型做的太过繁杂,所以仅供大家参考交流:在此,金乌老师特地抽时间给同学们使用AxureRP7.0制作了一下,感觉对实战逻辑分析和axure变量的掌握比较有考验,所以就放出来供大家学习交流使用. 在学习的过程中,如果你仅凭自己现有的对axure的掌握,无法准确分析并组织出原型

【H5小游戏开发教程】如何限制微信游戏只能在微信端打开?

在这行里接触的时间多了,就会发现很多有意思的东西. 比如,很多微信小游戏会限制只能在微信端打开,有木有? 有这样的, 也有这样的, 妈蛋,不能用PC访问,这游戏就没法扒呀..... 其实涛舅舅告诉你,这两种都可以扒 而且是用PC! 但是今天,我不教你扒皮 我要教你的是,怎么让你的微信游戏也能限制PC打不开 很想学吧  准备开始! 1.第一种不提了,因为人家是设置了微信授权登录,从微信那里就拦截住了,只能用微信访问,你可能弄不了这么高级的微信授权这块,如果你真能弄,这一讲你也不用听了,因为你已经能

Chrome自带恐龙小游戏的源码研究(完)

在上一篇<Chrome自带恐龙小游戏的源码研究(七)>中研究了恐龙与障碍物的碰撞检测,这一篇主要研究组成游戏的其它要素. 游戏分数记录 如图所示,分数及最高分记录显示在游戏界面的右上角,每达到100分就会出现闪烁特效,游戏第一次gameover时显示历史最高分.分数记录器由DistanceMeter构造函数实现,以下是它的全部代码: 1 DistanceMeter.dimensions = { 2 WIDTH: 10, //每个字符的宽度 3 HEIGHT: 13, //每个字符的高 4 DE

C语言小游戏设计报告

课程设计名称:贪吃蛇小游戏 专业班级:计科15-2 学号:150809229 姓名:XXX 一.设计目标 通过设计,培养学生对电脑的动手能力,使学生巩固<C语言程序设计>课程学习的内容,掌握编写程序的基本方法,强化对其的动手能力,可以独自完成程序的编写. 二.设计内容和要求 设计内容 编写贪吃蛇的小游戏,使其可以成功运行并且操作玩耍. 设计要求 1)源程序要有适当的注释,使程序便于阅读. 2)要有程序运行结果作为依据 三.程序流程 1.编写地图 运用函数,数组编写地图 2.相同的方法把蛇添加进

用Python写一个小游戏

刚学Python时间不长,但也知道了一点,看别人的参考写了一个猜数字小游戏,也算是禹学于乐吧. #!/usr/bin/env   python #coding=utf-8 import random secret = random.randint(1,100) guess,tries = 0,0 print u"已经给出了一个1-99的数字" while guess != secret and tries < 5: print u"请给出你猜的数字:" pri

2D命令行小游戏Beta1.0_代码

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _2D命令行小游戏Beta1_0 { class Game { public Game(int scale) { _scale = scale; peox = 1; peoy = 1; map = new int[_scale, _scale];