Re: [問題] 遊戲中 子彈發射的間隔

作者: KawasumiMai (さあ、死ぬがいい)   2013-09-30 11:27:36
※ 引述《weirdfoot (怪腳之哈比)》之銘言:
: 各位大大好
: 小的最近在構思一個小遊戲
: 想先寫幾個小程式 來試試看順暢度
: 今天試的是子彈發射
: http://www.mediafire.com/download/d4y5gryixgaovpy/ShootTest_2013.fla
: (家裡只有CS3 如有不便我可以只貼AS...)
: 左右鍵可以移動 空白鍵發射子彈
: 我的問題是
: 我按下空白鍵後會連發
: 可是我想要發射第一發後 間隔一段時間再發射下一發
: 可是我沒有學過 家裡有的書也找不到相關的寫法..
: 想問問有沒有辦法做到
: 1.不連發 一下空白鍵發射一發 or 2.隔一段時間一發
: 這樣不知道會不會太伸手..
: 麻煩各位大大了(跪
遊戲中,建議用一個變數去判斷影格同步
以下描述邏輯,這是我比較常用的作法
var shoot_delay:Number=new Number(0)
Keydown{
if(shoot_delay==0){
發射
shoot_delay=30
}
}
Keyup{
shoot_delay=0 //可以不要,否則連按就可以拼命射
}
EnterFrame{
if(shoot_delay>0){
shoot_delay
作者: KawasumiMai (さあ、死ぬがいい)   0000-00-00 00:00:00
布林只有true false兩種,int的true(正數)則有"程度"一樣用EnterFrame,反向思考,delay=0就是true依據你的作法,可以在EnterFrame檢測true後修改delay
作者: SouthernSun (撒燈尚)   2013-09-30 18:02:00
推推!!
作者: weirdfoot (ユニライト)   2013-09-30 22:59:00
先感謝K大T_T 但因為我是用一個布林值檢測要不要發射原是keyDown後變數變true Enterframe檢測true後開始發射依照大大的邏輯測試 還是會有連發的狀況 我猜是因為沒有在"某個地方"檢測如果delay值>0則布林值變false但我不確定要寫在哪..要另起一個Enterframe檢測嗎?

Links booklink

Contact Us: admin [ a t ] ucptt.com