[#48952] FreeBSD9.0でruby-1.8.7, rubygems-1.8.24シリアライズ評価 — Fumiaki Sakamoto <ua6ta6@...>

いつもお世話になっております。

9 messages 2012/09/16

[ruby-list:48961] 別ファイルのクラス内メソッドから戻り値を得たい

From: konoki-nannoki-ggrks.mp4@...
Date: 2012-09-19 04:27:49 UTC
List: ruby-list #48961
※色々削っているのでおかしなところがあるかもしれません。
#! ruby -Ks
require 'dxruby'
require 'scene'
require_relative '00shop_status'
require_relative '01shop_etc'
require_relative '00drawint'

class Main_loop_s < Scene::Base

 def init
   @@flame = 0
   @@flame_s = 0
   
   @window  = Window_test.new
   @s_etc  = Shop_etc.new
   @ss = Shop_Status.new
   @interia = Interia.new
   @interia.Ini()
   @interia.Test_all_ini()
 end

 def update
   #秒をはかる
   if @@flame == 60
     @@flame = 1
     @@flame_s += 1
   else
     @@flame += 1
   end

   #01shop_etcの計算
   @s_etc.Calc_s(@@flame)
   end

 def render
 #★
   if @s_etc.Calc_s(@@flame) == 0
     @interia.Rende_interia()
   end
   @s_etc.Render_s()
 end

 def quit

 end


end  
Scene.main_loop Main_loop_s, 60, 1

こんにちは。
多分Rubyやライブラリではなく基本的な文法の問題だと思うのですが、よろしければご指導ください。
#★ の一行したの部分で、01shop_etc.rbの"Calc_s"というメソッドから戻り値を得たいと思っています。(このファイルは00main.rb)
しかしこのように書くと、01shop_etc.rbの挙動がおかしくなってしまいます。
どうおかしいかと言うと、動作が2倍速くらいになっていたり、一つの処理を2回繰り返し(ているように見え)てしまったります。
戻り値の得方が間違っているのでしょうか?正しい書き方があれば教えてください
ちなみに、@foo = @s_etc.Calc_s(@@flame)としておいてifの条件に@foo == 0 とするのはやってみました。

In This Thread

Prev Next