今天給大家帶來的是計時器的簡單制作,其中包含開始、暫停、結束按鈕,顯示格式為小時、分鐘、秒。
首先創建一個場景和一個C#腳本
點擊 Hierarchy 版面的 攝像機 Main Camera,可將腳本掛在攝像機上,直接拖拽到攝像機或者拖拽到右下角的 Add Component處完成腳本綁定。
打開C#腳本:
在方法外創建五個全局變量
string timerRet = “”;
float timer = 0;
float timerDel = 0;
int hour = 0;
int minute = 0;
int second = 0;
此方法中的變臉在持續變化,因此全程在void Update ()方法執行:
void Update () {
//timer表示計錄的時間段 += Time.deltaTime 計時累加
timer += timerDel;
//判定秒數,進行分秒分割
if (timer 》 1)
{
second++;
timer -= 1;
}
if (second 》= 60)
{
minute++;
second = 0;
}
if (minute 》= 60)
{
hour++;
minute = 0;
}
//timerRet 為呈現在顯示器上的字符串,在此進行重寫,寫入時間
timerRet = string.Format(“{0:00}:{1:00}:{2:00}”, hour, minute, second);
}
在 void OnGUI() 方法中進行按鈕及顯示設定:
//設計一個字符串變量用于改變 暫停 和 繼續
static string goOn = “暫停”;
void OnGUI()
{
//GUI.Label 顯示
GUI.Label(new Rect(150, 190, 200, 150), timerRet);
//GUI.Button 按鍵 new Rect 設定位置(X軸,Y軸,長度,寬度),內容
if (GUI.Button(new Rect(0, 0, 120, 100), “開始”))
{
//Time.deltaTime 為增量時間 賦值給 timerDel進行累加
timerDel = Time.deltaTime;
}
//對繼續和暫停進行更改的字符串
string suspend = “”;
suspend = string.Format(“{0}”, goOn);
if (GUI.Button(new Rect(0, 150, 120, 100),suspend))
{
//點擊“暫停”完畢后用“繼續”替換
goOn = “繼續”;
if (timerDel == 0)
{
//點擊“繼續”完畢后用“暫停”替換
goOn = “暫停”;
timerDel = Time.deltaTime;
}
else
{
timerDel = 0;
}
}
//將變量歸零,計時結束
if (GUI.Button(new Rect(0, 300, 120, 100), “結束”))
{
hour = 0;
minute = 0;
second = 0;
timerDel = 0;
}
好啦,一個簡單的計時器的腳本就完成了,是不是很簡單呢?
點擊開始按鈕,顯示時間走動,暫停,時間停止走動,暫停鍵變成了繼續鍵,再次點擊時間繼續,點擊結束按鈕,時間歸零。
簡單秒表計時器的制作
這個簡單計時器的功能如下:
1、點擊開始,進行計時,此時開始按鈕灰度,停止和重置按鈕正常運行。
2、點擊停止按鈕,計時停止,此時停止按鈕灰度,開始和重置按鈕正常運行。
3、點擊重置按鈕,無論當前是計時狀態還是停止狀態,均恢復至開始計時初始界面。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Exercise
{
public partial class 計時器 : Form
{
private DateTime timeSum;
public 計時器()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.timeSum = new DateTime(0); //開始顯示時間 0.0.0:0
this.label1.Text = timeSum.Hour + “。” + timeSum.Minute + “。” + timeSum.Second + “:” + timeSum.Millisecond;
this.button2.Enabled = false;
}
private void IncreaseTime(double seconds)
{
this.timeSum = this.timeSum.AddSeconds(seconds);
this.label1.Text = timeSum.Hour + “。” + timeSum.Minute + “。” + timeSum.Second + “:” + timeSum.Millisecond;
}
private void timer1_Tick(object sender, EventArgs e)
{
this.IncreaseTime(0.1);
}
private void button1_Click(object sender, EventArgs e)
{
this.timer1.Start();
this.button1.Enabled = false;
this.button2.Enabled = true;
}
private void button2_Click(object sender, EventArgs e)
{
this.timer1.Stop();
this.button1.Enabled = true;
this.button2.Enabled = false;
}
private void button3_Click(object sender, EventArgs e)
{
this.timeSum = new DateTime(0); //開始顯示時間 0.0.0:0
this.timer1.Stop();
this.label1.Text = timeSum.Hour + “。” + timeSum.Minute + “。” + timeSum.Second + “:” + timeSum.Millisecond;
this.button1.Enabled = true;
this.button2.Enabled = true;
}
}
}
評論
查看更多