[問題] 區塊問題

看板Ruby作者 (壁虎'.'a)時間13年前 (2011/04/24 22:53), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
環境: Ruby1.9.2 , Gosu0.7.29 狀況: 最近用Gosu來開發小遊戲 (不會搞C++只好這樣...) 後來要增加功能而出現問題 剛開始找不出為什麼 只好把程式碼改寫 底下是有問題的原始碼: @sb.reject!{|sb| if sb.y<-10 true else @enemy.each{|enemy| ex=enemy.x;ey=enemy.y ew=enemy.w;eh=enemy.h if Gosu::distance(sb.x+2,sb.y+5,ex+ew/2,ey+eh/2)<(ew+eh)/2 sb.hurt(enemy) true else false end } end } 這段程式碼是要消除自己的子彈(sb)用的 @sb是陣列 於是利用reject!來處理 本來@enemy不是陣列 後來改成陣列用each處理就會有問題 當自己的子彈(sb)打到敵人(enemy)會消除 並對敵人造成傷害 但是卻變成自己的子彈(sb)出現就不見... 後來改成: @enemy.each{|enemy| ex=enemy.x;ey=enemy.y ew=enemy.w;eh=enemy.h @sb.reject!{|sb| if sb.y <= -10 true elsif Gosu::distance(sb.x+2,sb.y+5,ex+ew/2,ey+eh/2)<(ew+eh)/4 sb.hurt(enemy) true else false end } } 子彈就可以正常消除了 這樣看來是reject!的問題... 是因為包在其中區塊的真假值不會影響的關係嗎? 我不是很確定... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.232.138.159
文章代碼(AID): #1Dj3bnJu (Ruby)
討論串 (同標題文章)
以下文章回應了本文
1
1
完整討論串 (本文為第 1 之 2 篇):
1
1
文章代碼(AID): #1Dj3bnJu (Ruby)