上班划水,给男朋友做个数字炸弹游戏
上班划水的时候无意中看到了这篇文章:上班划水,给女朋友做个猜数字游戏。
作为一个有男朋友的女程序员,那我也不能落下,赶紧给自己的男朋友安排。
本游戏纯手工unity+C#制作,素材来源于情侣间的生活照。
游戏主界面
既然是给男朋友做的,那男朋友的排面肯定不能小,上美照。大大的美照布满了背景,每一个像素都透漏出这个男人的帅气
游戏主界面主要包括:目标值的范围区间提示;当前操作后的提示;用户输入框以及确定按钮。输入框有输入提示文本,主要是为了夸夸男朋友的英俊美貌。
开始界面
主界面和游戏界面差不多:展示区间范围,输入框,确认按钮,进度条。开始游戏后,男朋友需要输入一个爱我的数字,来表达对我的爱。
游戏界面
由于游戏背景太过帅气,下面我就先将背景隐藏了,留给自己偷偷看。
输入数字后点击确认按钮会提示当前猜想后,目标值的范围,通过输入确认来缩小范围,从而得到目标值。下面加个进度条进度条更友好的展示了距离目标的差距。
由于是数字游戏,所以我们必须得对创建的输入框InputField限制一下,只能输入整数
胜利界面
当我那帅气的男朋友终于猜中了的时候,屏幕上会有一个提示,这里当然是夸他聪明勇敢有力气了。
打包
先偷偷给男朋友发个消息,别人女朋友有的,我的男人也必须有,哈哈哈。
游戏完成了,接下来打包发给男朋友吧。
选一张优质照片当游戏icon
好了,打包完成,发给男朋友了,男朋友很开心~
代码展示
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GuessNumber : MonoBehaviour
{
// Start is called before the first frame update
private InputField inputTxt;
private Text ruleTxt;
private Text maxTxt;
private Text minTxt;
private Text desTxt;
private Button sureBtn;
private int targetNum;
private Slider slider;
void Start()
{
inputTxt = GameObject.Find("InputField").GetComponent<InputField>();
ruleTxt = GameObject.Find("ruleTxt").GetComponent<Text>();
maxTxt = GameObject.Find("min").GetComponent<Text>();
minTxt = GameObject.Find("max").GetComponent<Text>();
desTxt = GameObject.Find("des").GetComponent<Text>();
sureBtn = GameObject.Find("sureBtn").GetComponent<Button>();
sureBtn.onClick.AddListener (ClickSureBtn);
slider = GameObject.Find("Slider").GetComponent<Slider>();
// slider.onValueChanged.AddListener((float value)=>Change(value));
InitData();
}
// Update is called once per frame
void Update()
{
}
// private void Change(float value)
// {
// Debug.Log(value+" lx");
// }
private void InitData()
{
targetNum = Random.Range(1,101); //1-100随机
Debug.Log(targetNum);
desTxt.text = "";
minTxt.text = "当前区间最小值:"+1;
maxTxt.text = "当前区间最大值:"+100;
inputTxt.text = "";
slider.value = 0;
CancelInvoke();//用于结束当前所有的Invoke委托
}
private void ClickSureBtn()
{
if (inputTxt.text == "")
{
desTxt.text = "你还没输入你的答案哦~";
return;
}
else
{
Debug.Log(targetNum + " targetNum");
int num = int.Parse(inputTxt.text);
if (num == targetNum)
{
desTxt.text = "小帅哥,恭喜你猜中,你怎么这么棒,再来一局吧";
maxTxt.text = "当前区间最大值:"+num;
minTxt.text = "当前区间最小值:"+num;
Invoke("InitData", 2);
}
else if(num < targetNum)
{
desTxt.text = "值有点小哦,再加大一点试试!";
minTxt.text = "当前区间最小值:"+num;
}
else if(num > targetNum)
{
desTxt.text = "值太大了哦,换小一点的试试呢!";
maxTxt.text = "当前区间最大值:"+num;
}
string max = System.Text.RegularExpressions.Regex.Replace(maxTxt.text, @"[^0-9]+", "");
string min = System.Text.RegularExpressions.Regex.Replace(minTxt.text, @"[^0-9]+", "");
int a = int.Parse(max);
int b = int.Parse(min);
slider.value = 1-(float)(a-b)/(100-1);
}
}
}