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 安装并启动 ...
随机推荐
- 一个java的DES加解密类转换成C#
原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //i ...
- 44. Wildcard Matching
题目: Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single charact ...
- NDK 提示"undefined reference to xxx“的解决办法
在Android.mk文件的 LOCAL_SRC_FILES后面加入包含该类或函数的文件,用\隔开,\后换行继续添加 例如 LOCAL_SRC_FILES := NDKTest.cpp\bncore. ...
- Android提供的LruCache类简介
分类: Android开发 2013-02-06 15:26 26733人阅读 评论(10) 收藏 举报 package android.util; import import /** * A cac ...
- Android安卓开发中图片缩放讲解
安卓开发中应用到图片的处理时候,我们通常会怎么缩放操作呢,来看下面的两种做法: 方法1:按固定比例进行缩放 在开发一些软件,如新闻客户端,很多时候要显示图片的缩略图,由于手机屏幕限制,一般情况下,我们 ...
- Jqgrid入门-别具特色的Pager Bar (四)
Pager Bar位于表格最下边.默认情况下,分为三部分.如图: 第一部分:导航按钮栏(Navigator) 第二部分:页码栏(Pager) 第三部分:记录信息栏(Record) 要实 ...
- php和java的一些比较
现在市场上的电子商务软件基本上可归结为两大阵营,即PHP阵营和Java阵营.但对接触电子商务不久的用户来说,看到的往往只是它们的表相,只是明显的价格差异,却很难看出它们之间的实际差异.其实,PHP+ ...
- fiddler2抓包工具使用图文教程
fiddler2抓包工具使用图文教程 三.fiddler实用功能使用说明: 1.fiddler捕获浏览器的会话: 能支持http代理的任意程序都能被fiddler捕获到,由于fiddler的运行机制就 ...
- cocos2dx场景切换中init、onEnter、onEnterTransitionDidFinish的调用顺序
这些方法调用的先后顺序如下(使用 replaceScene 方法): 1. 第2个场景的 scene 方法 2. 第2个场景的 init 方法 3. 第2个场景的 onEnter 方法 4. 转场 5 ...
- 纯css3写的仿真图书翻页效果
对css3研究越深入,越觉得惊艳.css3说不上是万能的,但是它能实现的效果也超出了我的想象.它的高效率和动画效果的流畅性很多情况下能替代js的作用.个人习惯css3能实现的效果就不会用js,虽然在国 ...