6.计分
计分概述:
分值计量直接反应玩家在游戏中获得的成就感。因此,计分系统在游戏中显得尤为重要,有的反应在直接获取的分数上,有的反应在杀敌数量上等。
计分原理:
原理图,如图6-1所示。

图6-1
实现方法:
步骤1:
子弹击中敌人。击中敌人的条件参考4.碰撞检测内容。
步骤2:
敌人死亡。相关代码如下所示。
步骤3:
3.1计分器计分原理:
(1)定义一个有九个格子的显示器面板,面板从右到左用下角标标注为0-8,每个格子存放0-9十个数字。
(2)设定每消灭一个敌人,玩家获取5分,将数值每次传给一个变量var;将数值var传给string数组。
(3)数组中有数值的位数,对应显示器面板方格的下角标,使对应下角标方格的数字显示,并且设定数字为数组中对应的数值。
3.2代码的实现:
//定义存放数字的9个方格
_NumberSimulator = new UI_Number_Simulate(_windowName, "JuanZhouNumber", 9);
//设置现有分数
_NumberSimulator.SetNumber(ScriptRuntime.MarkMgr.Instance.GetMark(),true);
01 |
public class UI_Number_Simulate |
03 |
private class NumberSimulate |
07 |
char _currentChar = 'a' ; |
08 |
public NumberSimulate(FString layoutname, string simulateID) |
11 |
_layoutname = layoutname; |
12 |
_simulateID = simulateID; |
13 |
SetAllInvisible (); //隐藏所有数字 |
17 |
public void DoNumSimulate ( char var) |
19 |
if (_layoutname == null || _simulateID == null ) |
23 |
if (_currentChar == var) |
28 |
SetAllInvisible (); //首先隐藏所有数字 |
31 |
GUI.UIWidget.SetVisible (_layoutname, _simulateID + "_0" , true ); |
32 |
} else if (var == '1' ) { |
33 |
GUI.UIWidget.SetVisible (_layoutname, _simulateID + "_1" , true ); |
34 |
} else if (var == '2' ) { |
35 |
GUI.UIWidget.SetVisible (_layoutname, _simulateID + "_2" , true ); |
36 |
} else if (var == '3' ) { |
37 |
GUI.UIWidget.SetVisible (_layoutname, _simulateID + "_3" , true ); |
38 |
} else if (var == '4' ) { |
39 |
GUI.UIWidget.SetVisible (_layoutname, _simulateID + "_4" , true ); |
40 |
} else if (var == '5' ) { |
41 |
GUI.UIWidget.SetVisible (_layoutname, _simulateID + "_5" , true ); |
42 |
} else if (var == '6' ) { |
43 |
GUI.UIWidget.SetVisible (_layoutname, _simulateID + "_6" , true ); |
44 |
} else if (var == '7' ) { |
45 |
GUI.UIWidget.SetVisible (_layoutname, _simulateID + "_7" , true ); |
46 |
} else if (var == '8' ) { |
47 |
GUI.UIWidget.SetVisible (_layoutname, _simulateID + "_8" , true ); |
48 |
} else if (var == '9' ) { |
49 |
GUI.UIWidget.SetVisible (_layoutname, _simulateID + "_9" , true ); |
54 |
public void SetAllInvisible() |
56 |
GUI.UIWidget.SetVisible(_layoutname, _simulateID + "_0" , false ); |
57 |
GUI.UIWidget.SetVisible(_layoutname, _simulateID + "_1" , false ); |
58 |
GUI.UIWidget.SetVisible(_layoutname, _simulateID + "_2" , false ); |
59 |
GUI.UIWidget.SetVisible(_layoutname, _simulateID + "_3" , false ); |
60 |
GUI.UIWidget.SetVisible(_layoutname, _simulateID + "_4" , false ); |
61 |
GUI.UIWidget.SetVisible(_layoutname, _simulateID + "_5" , false ); |
62 |
GUI.UIWidget.SetVisible(_layoutname, _simulateID + "_6" , false ); |
63 |
GUI.UIWidget.SetVisible(_layoutname, _simulateID + "_7" , false ); |
64 |
GUI.UIWidget.SetVisible(_layoutname, _simulateID + "_8" , false ); |
65 |
GUI.UIWidget.SetVisible(_layoutname, _simulateID + "_9" , false ); |
68 |
private List<numbersimulate> _List = new List<numbersimulate>(); |
69 |
//UI_Number_Simulate的构造函数 |
70 |
public UI_Number_Simulate (FString layoutname, string simulateID, int size) |
73 |
for ( int i=0; i < size; i++) |
75 |
NumberSimulate numSimulate = new NumberSimulate(layoutname, simulateID + i.ToString()); |
76 |
_List.Add(numSimulate); |
77 |
numSimulate.SetAllInvisible(); |
83 |
public void SetNumber ( int num, bool numFromLeftToRight) |
85 |
//将传入的数字转换为string,根据数组的位数对应的char值设置对应的单位数字模拟器的数值 |
86 |
string numString = num.ToString (); |
87 |
if (numFromLeftToRight) |
89 |
numString = numString.PadRight (_List.Count, 'a' ); |
93 |
numString = numString.PadLeft (_List.Count, 'a' ); |
95 |
for ( int i = 0; i < _List.Count; ++i) |
97 |
_List[i].DoNumSimulate(numString[i]); |
99 |
}</numbersimulate></numbersimulate> |
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- windows系统下Python环境的搭建
1.下载最新的Python版本3.5.0.
- [POJ3352]Road Construction(缩点,割边,桥,环)
题目链接:http://poj.org/problem?id=3352 给一个图,问加多少条边可以干掉所有的桥. 先找环,然后缩点.标记对应环的度,接着找桥.写几个例子就能知道要添加的边数是桥的个数/ ...
- hdu 4882 ZCC Loves Codefires (贪心 推导)
题目链接 做题的时候凑的规律,其实可以 用式子推一下的. 题意:n对数,每对数有e,k, 按照题目的要求(可以看下面的Hint就明白了)求最小的值. 分析:假设现在总的是sum, 有两个e1 k1 e ...
- bzoj1975
显然是类似k短路,直接不停增广即可 好久没写A*了,裸的A*可能会TLE 加点剪枝就卡过去了……… type node=record po,next:longint; cost:double; end ...
- 8 种 NoSQL 数据库系统对比
导读:Kristóf Kovács 是一位软件架构师和咨询顾问,他最近发布了一片对比各种类型NoSQL数据库的文章. 虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破.这只 ...
- EF4.0和EF5.0增删改查的写法区别及执行Sql的方法
EF4.0和EF5.0增删改查的写法区别 public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>(). ...
- [转] jQuery Infinite Ajax Scroll(ias) 分页插件介绍
原文链接:http://justflyhigh.com/index.php/articlec/index/index.php?s=content&m=aticle&id=91 Infi ...
- HelloX操作系统网络功能简介及使用和开发指南
HelloX网络功能简介及使用和开发指南 HelloX网络功能简介 作为物联网操作系统,网络功能是必备的核心功能之一.按照规划,HelloX实现了两个不同类型的TCP/IP协议栈,一个面向资源受限的嵌 ...
- django --------------------- [必要操作]
基本models 命令: python manage.py validate (验证模型有效性, 记得配置 settings.py - INSTALLED_APPS) python manage.py ...
- 【转】Windows环境下Android Studio v1.0安装教程
原文网址:http://ask.android-studio.org/?/article/9 http://android-studio.org/index.php/docs/experience/1 ...