日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flash 游戏设计笔记:计时器制作

發(fā)布時間:2023/12/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flash 游戏设计笔记:计时器制作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?在游戲當(dāng)中,時間器是伴隨游戲一直進(jìn)行的,有時候我們在制作小游戲的時候希望可以在計算這個游戲所玩的時間,那么時間器的制作是我們要解決的問題;關(guān)于時間其實關(guān)鍵一點要知道怎么換算。

?

一,單位換算

?? 如:1小時=60分

???????? 1小時=3600秒

???????? 1分=60秒

???????? 1秒=1/60 分

?????????1秒=1/3600小時

?????????1秒=1000毫秒;

?

有了這樣的換算后,我們就可以制作我們所需要的時間器,首先我們導(dǎo)入i

mport flash.utils.getTimer;

?

getTimer函數(shù)可以計算出運行時候所需要的毫秒數(shù)。

?

private var lasttime:int;//定義個變量用于上一點的時間

public function init():void

{

?? lasttime=getTimer();//計算出運行程序所需要的時間

?

}

?

addEventListener(Event.ENTER_FRAME,Run);

?

private function Run(e:Event):void
??{
???
???SetTime();//時間器
??}

?

private function SetTime():void{var timepast:int=getTimer()-lasttime; //經(jīng)歷了幾秒。 var hour:Number=Math.floor(timepast/(3600*1000));var fen:Number=Math.floor(timepast/(60*1000)); var second:Number=Math.floor(timepast/1000);if(second>=60){second-=60*fen;}if(fen>=60){fen-=60*hour;}showTime.text=String(100+hour).substr(1,2)+":"+String(fen+100).substr(1,2)+":"+String(second+100).substr(1,2);}

?

簡單的效果這樣就出來了。

要進(jìn)行一些判斷,當(dāng)second 大于60的時候,由于second是一直遞增的,時間秒的區(qū)間是【0,60】所以當(dāng)60來的時候

我們就改將它減去 分 *60 這樣時間又再次顯示回原來的狀態(tài)了

?

?

二 00-00-00格式的處理

showTime.text=String(100+hour).substr(1,2)+":"+String(fen+100).substr(1,2)+":"+String(second+100).substr(1,2);

?

我們使用了String類一個方法substr來截取我們所需要的信息:從1開始索引開始截取后面的兩位,這樣就可以變成了這種格式了 。

?

substr(startIndex:Number = 0, len:Number = 0x7fffffff):String 返回一個子字符串,該子字符串中的字符是通過從指定的 startIndex 開始,按照 len 指定的長度截取所得的

?

看看下面時間器,還是覺得可以吧

?

?

0

?

?

源代碼:可以進(jìn)行修改一下

package com.game {import flash.utils.*;import flash.events.*;import flash.text.*;import flash.display.MovieClip;public class GameTime extends MovieClip{private var lastTime:Number;private var timepast:Number;private var showTime:TextField;private var hour:Number;//小時private var min:Number;//分private var second:Number;//秒public function GameTime(){lastTime=getTimer();showTime=new TextField ;addChild(showTime);addEventListener(Event.ENTER_FRAME,Run);}public function Run(event:Event):void{Show();}private function Show():void{timepast=getTimer() - lastTime;//毫秒運算hour=Math.floor(timepast / 3600 * 1000);min=Math.floor(timepast / 60 * 1000);second=Math.floor(timepast / 1000);if (hour >= 24){second=0;hour=0;second=0;}if (second >= 60){second-= 60 * min;}if (min >= 60){min-= 60 * hour;}showTime.text=String(100 + hour).substr(1,2) + ":" + String(min + 100).substr(1,2) + ":" + String(second + 100).substr(1,2);}public function getGameTime():String{timepast=getTimer() - lastTime;//毫秒運算hour=Math.floor(timepast / 3600 * 1000);min=Math.floor(timepast / 60 * 1000);second=Math.floor(timepast / 1000);if (hour >= 24){second=0;hour=0;second=0;}if (second >= 60){second-= 60 * min;}if (min >= 60){min-= 60 * hour;}return String(100 + hour).substr(1,2) + ":" + String(min + 100).substr(1,2) + ":" + String(second + 100).substr(1,2);}} }

?

這里有兩個方法,在創(chuàng)建實例化后,可以自動生成上面的格式,當(dāng)一個mc來使用,只要實例化就可以。

var time:GameTime=new GameTime()

addChild(time);

?

或者進(jìn)行監(jiān)聽就可以

總結(jié)

以上是生活随笔為你收集整理的Flash 游戏设计笔记:计时器制作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。