OX論壇
Would you like to react to this message? Create an account in a few clicks or log in to continue.

怎麼寫RGSS的算式?

3 posters

向下

怎麼寫RGSS的算式? Empty 怎麼寫RGSS的算式?

發表  棋匿 周二 8月 26, 2008 7:13 pm

如題,
用事件裡的「腳本」指令寫完底下圖片的算式。
怎麼寫RGSS的算式? Mylifebar


但是執行遊戲的時候,卻沒有算出來...OTZ
怎麼寫RGSS的算式? Mylifebar2


這該怎麼辦(-3-)
棋匿
棋匿
頭戴內褲手拿木劍的瘋癲佬
頭戴內褲手拿木劍的瘋癲佬

文章數 : 214
注冊日期 : 2008-07-19

回頂端 向下

怎麼寫RGSS的算式? Empty 回復: 怎麼寫RGSS的算式?

發表  丘 周二 8月 26, 2008 7:55 pm

棋匿 寫到:如題,
用事件裡的「腳本」指令寫完底下圖片的算式。
怎麼寫RGSS的算式? Mylifebar


但是執行遊戲的時候,卻沒有算出來...OTZ
怎麼寫RGSS的算式? Mylifebar2


這該怎麼辦(-3-)


舉例~

V1 = MAXHP
V2 = HP
V3 = ((V2*100)/(V1))
picture.zoom_x = V3

V1 = 變數1
V2 = 變數2
V3 = 變數3
picture.zoom_x = 圖片長度百分比

你的寫法變數顯示不出原因出在

你沒有計算到變數.....

rgss計算 "=" 代表帶入

a = b

將b值帶入a值

所以變更的是a

b沒有動到只是得到值

以上只是想法的解說


丘 在 周二 8月 26, 2008 8:31 pm 作了第 3 次修改 (原因 : 沒講完~"~sorry)
丘
拿著衝鋒槍瘋狂掃射的瘋子
拿著衝鋒槍瘋狂掃射的瘋子

文章數 : 146
注冊日期 : 2008-05-21
年齡 : 33
來自 : 台北中和

回頂端 向下

怎麼寫RGSS的算式? Empty 回復: 怎麼寫RGSS的算式?

發表  棋匿 周二 8月 26, 2008 8:43 pm

唔...謝啦~ Smile

不過用不到圖像百分比(-3-)
因為血條是長成這樣的↓
怎麼寫RGSS的算式? ARPG
棋匿
棋匿
頭戴內褲手拿木劍的瘋癲佬
頭戴內褲手拿木劍的瘋癲佬

文章數 : 214
注冊日期 : 2008-07-19

回頂端 向下

怎麼寫RGSS的算式? Empty 回復: 怎麼寫RGSS的算式?

發表  丘 周二 8月 26, 2008 8:51 pm

棋匿 寫到:唔...謝啦~ Smile

不過用不到圖像百分比(-3-)
因為血條是長成這樣的↓
怎麼寫RGSS的算式? ARPG

哇~

這樣很累說但也只能這樣了

建議多寫一個式子

@running_hp_bar = 0 if @running_hp_bar == nil
if @running_hp_bar != $game_party.actors[0].hp
內容
end
@running_hp_bar = $game_party.actors[0].hp

希望這段可以為你減少LAG

當此變數不等於血量才做更新運作
丘
拿著衝鋒槍瘋狂掃射的瘋子
拿著衝鋒槍瘋狂掃射的瘋子

文章數 : 146
注冊日期 : 2008-05-21
年齡 : 33
來自 : 台北中和

回頂端 向下

怎麼寫RGSS的算式? Empty 回復: 怎麼寫RGSS的算式?

發表  棋匿 周二 8月 26, 2008 9:18 pm

不過我是用事件去做的.....OTZ
(匿:雖然事件的指令對我來說不算難)

所以希望有個熟悉RGSS的人幫我寫程式... Laughing
棋匿
棋匿
頭戴內褲手拿木劍的瘋癲佬
頭戴內褲手拿木劍的瘋癲佬

文章數 : 214
注冊日期 : 2008-07-19

回頂端 向下

怎麼寫RGSS的算式? Empty 回復: 怎麼寫RGSS的算式?

發表  愚零鬥武多 周三 8月 27, 2008 11:14 am

棋匿 寫到:如題,
用事件裡的「腳本」指令寫完底下圖片的算式。
怎麼寫RGSS的算式? Mylifebar

這該怎麼辦(-3-)

你這樣算百分比會有問題
假設hp = 500,maxhp = 1000
以Ruby的運算結果為500/1000 = 0
0*100還是0....

提供你平行公共事件內的腳本指令範例就能搞定麻煩一拖拉庫的事件寫法:
代碼:

actor = $game_party.actors[0]
if [@hp,@maxhp] != [actor.hp,actor.maxhp]
  @hp,@maxhp = actor.hp,actor.maxhp
  r = (@hp/(@maxhp+0.00)*100).truncate
  name = "1b_hp" + (r/5).to_s
  a = $game_screen.pictures[2]
  a.show(name,0,400,360,100,100,255,0)
end

參考圖:
怎麼寫RGSS的算式? 0710

使用說明:
if [@hp,@maxhp] != [actor.hp,actor.maxhp]
@hp,@maxhp = actor.hp,actor.maxhp
這段是用來作緩衝處理,當主角hp有變動時才執行圖像顯示

其中r = (@hp/(@maxhp+0.00)*100).truncate
就是用浮點數算出小數點結果,最後再用.truncate去除小數點

name = "1b_hp" + (r/5).to_s
假設算出來的百分比r為100,100/5 = 20,對應要顯示的圖檔名就是1b_hp20
假設算出來的百分比r為(99..95),(99..95)/5 = 19,對應要顯示的圖檔名就是1b_hp19
假設算出來的百分比r為(94..90),(99..95)/5 = 18,對應要顯示的圖檔名就是1b_hp18
假設算出來的百分比r為(89..85),(89..85)/5 = 17,對應要顯示的圖檔名就是1b_hp17
.
.
假設算出來的百分比r為(9..5),(9..5)/5 = 1,對應要顯示的圖檔名就是1b_hp1
假設算出來的百分比r為(4..0),(4..0)/5 = 0,對應要顯示的圖檔名就是1b_hp0

為何這麼做?因為我看你的範例是每5%去更換一張圖,所以百分比100%~0%的結果除5就是圖檔名
也就是說你要準備1b_hp20..1b_hp0總共21張圖

a = $game_screen.pictures[2]
a.show(name,0,400,360,100,100,255,0)
就是顯示圖片的指令code

a = $game_screen.pictures[2] # a = 第2張圖片
a.show(name=圖檔名,0=左上,400=x,360=y,100=x縮放率,100=y縮放率,255=不透明度,0=合成方式)
show的定義請在腳本Game_Picture中找到def show

既然都用到RGSS CODE,若不想辦法徹底簡化程式就說不大過去了....
愚零鬥武多
愚零鬥武多
不正常人類研究中心自慰隊員
不正常人類研究中心自慰隊員

文章數 : 421
注冊日期 : 2008-04-06

回頂端 向下

怎麼寫RGSS的算式? Empty 回復: 怎麼寫RGSS的算式?

發表  棋匿 周三 8月 27, 2008 1:25 pm

唔...( -3-)
愚大的寫法,真的把我腦殘洗程式的一長串指令給幹掉了呢!

不過我是以%數來轉換檔名的
代碼:
(99.999...99.00000)=99  lb_hp99
(98.999...98.00000)=98  lb_hp98
(97.999...97.00000)=97  lb_hp97
(96.999...96.00000)=96  lb_hp96
˙
˙
˙
˙
(2.999...2.00000)=96  lb_hp2
(1.999...1.00000)=96  lb_hp1
(0.999...0.00000)=96  lb_hp0

接下來我就順便套進MP吧~XD
棋匿
棋匿
頭戴內褲手拿木劍的瘋癲佬
頭戴內褲手拿木劍的瘋癲佬

文章數 : 214
注冊日期 : 2008-07-19

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章