CoRサンプル集: ギガブロイゼンCoR
      フィールドマップのテスト
まだ全然ゲームになってませんが
進捗的な感じで公開
キャラをマウスで移動できるようにしよと思ったら
意外に難しかった。
画面上の座標とマップ上の座標と違うのが原因であると思われる。
誰か解決できる人ご教授願います。
てだ~れも教えてくれないのな。
なんかフリーズします。
原因不明。
何が原因なのか教えてくれる人なんているわけがない。
いろいろ試してみましたが
どうも仕様だと思う・・・
CoRて長時間作動できないんじゃね?
あとデータのロードセーブにけっこう時間かかります。
敵がマップにめり込むのも仕様です
というわけでRmakeマップを使うといろいろとリスクがあります
    
    まだ全然ゲームになってませんが
進捗的な感じで公開
キャラをマウスで移動できるようにしよと思ったら
意外に難しかった。
画面上の座標とマップ上の座標と違うのが原因であると思われる。
誰か解決できる人ご教授願います。
てだ~れも教えてくれないのな。
なんかフリーズします。
原因不明。
何が原因なのか教えてくれる人なんているわけがない。
いろいろ試してみましたが
どうも仕様だと思う・・・
CoRて長時間作動できないんじゃね?
あとデータのロードセーブにけっこう時間かかります。
敵がマップにめり込むのも仕様です
というわけでRmakeマップを使うといろいろとリスクがあります
          プレー:219
    (人数:20)
    クリア:1
評価: 10 (1回)
    
  
  
        タグが設定されていません
  
    scene 'start' do
  map_layer_01 = nil
  map_layer_02 = nil
  character_layer = nil
  face_sp = nil
  Bos_sp = nil
  
  title = nil
  btan = []
  player_sprite = nil
  Tge_sp=[]
  Ive_sp=[]
  Bom_sp=nil
  BBm_sp=nil
  Kro_sc=nil
  
  Tt_BGM=nil
  S1_BGM=nil
  
  OK_Snd=nil
  DD_Snd=nil
  Dm_Snd=nil
  metu_Snd=nil
  Dwn_Snd=nil
  Kai_Snd=nil
  
  speed = 4
  
  GMod=0
  Move=false
  KTim=false
  Btl=false
  Ply_X=nil
  Ply_Y=nil
  mxx=nil
  myy=nil
  vxxx=nil
  vyyy=nil
  ms_x=nil
  ms_y=nil
  bm_x=nil
  bm_y=nil
  TgNSEW=[]
  
  Lv=1
  Exp=0
  HPmx=100
  HP=HPmx
  Fit=10
  Ivt=0
  ULv=0
  Bos=0
  
  MT=nil
  II=nil
  i=0
  v=0
  T=0
  e=0
  KCT=0
  KKCT=0
  BCT=0
  MCT=0
  
  Text=[]
  
  TgLv=1
  TgHP=[]
  TgFit=5
  
  Ply_X=400
  Ply_Y=300
  
  key1="data1"
  key2="data2"
  key3="data3"
  key4="data4"
  key5="data5"
  key6="data6"
 
  i=0
  while i<5
    TgHP[i]=TgLv*50
    TgNSEW[i]=rand(4)
    i=i+1
  end
  
  preload do
    debug_log 'CoRからRPGマップを読み込むテスト'
    
    # マップデータの読込
    rmake_map 'my_map', id: 44615
    
    # 画像の読み込み
    image 'タイトル', id: 321976
    image 'ボタンはじめから', id: 325379
    image 'ボタンつづきから', id: 325380
    image 'ボタン空', id: 325381
    image 'chara_00', id: 325423 #, frame_size: [32, 32]
    image 'Tge0', id: 325415
    image 'Ive0', id: 325418
    image 'Bom0', id: 325420 
    image 'Kuro', id: 325416
    #BGM
    music 'タイトルBGM', id: 320859
    music 'S1BGM', id: 228449
    # 効果音
    sound '決定', id: 325384
    sound '階段', id: 325399
    sound 'Dmg' , id: 324292
    sound 'Metu', id: 325394
    sound 'Dwn', id: 325397 
    sound 'Kai', id: 324297
    sound 'LvUp', id: 325398
  end
  
  create do
    # マップの配置
    map = put_map 'my_map'
    
    # レイヤーの生成
    # マップのレイヤー0を追加
    map_layer_01 = add_map_layer
    # マップのレイヤー1を追加
    map_layer_02 = add_map_layer
    
    # キャラクタのレイヤーを追加
    character_layer = add_layer
    #キャラフェイス
    face_sp = put_sprite 'chara' do
      position 74,474  
      frame_index 0
    end
    # 操作キャラクタの追加    
    player_sprite = put_sprite 'chara' do
      position Ply_X, Ply_Y
      frame_index 0
    end
    player_sprite.scale 1/4, 1/4
    
    #敵スプライト
    Tge_sp[0] = put_sprite 'Tge00' do
      position 384, 160
      frame_index 0
    end
    Tge_sp[0].scale 1/3, 1/3
    
    Tge_sp[1] = put_sprite 'Tge00' do
      position 320, 96
      frame_index 0
    end
    Tge_sp[1].scale 1/3, 1/3
    
    Tge_sp[2] = put_sprite 'Tge00' do
      position 320, 224
      frame_index 0
    end
    Tge_sp[2].scale 1/3, 1/3
    
    Tge_sp[3] = put_sprite 'Tge00' do
      position 448, 96
      frame_index 0
    end
    Tge_sp[3].scale 1/3, 1/3
    
    Tge_sp[4] = put_sprite 'Tge00' do
      position 448, 224
      frame_index 0
    end
    Tge_sp[4].scale 1/3, 1/3
    #ボススプライト
    Bos_sp = put_sprite 'Tge00' do
      position -100,-100 #384, 160
      frame_index 0
    end
    
    #ボムスプライト
    Bom_sp = put_sprite 'Bom00' do
      position -100,-100
      frame_index 0
    end
    Bom_sp.scale 1/3, 1/3
    
    #ボムスプライト
    BBm_sp = put_sprite 'Bom00' do
      position -100,-100
      frame_index 0
    end
    
    
    #イベントスプライト
    Ive_sp[0] = put_sprite 'Ive00' do
      position 128, 65
      frame_index 0
    end
    Ive_sp[0].scale 1/3, 1/3
    
    Ive_sp[1] = put_sprite 'Ive00' do
      position 384, 65
      frame_index 0
    end
    Ive_sp[1].scale 1/3, 1/3
    
    Ive_sp[2] = put_sprite 'Ive00' do
      position 640, 65
      frame_index 0
    end
    Ive_sp[2].scale 1/3, 1/3
    
    #===テキスト===#
    Text[0] = put_text 'テスト' do
      #position 10, game_size_h-22
      position 158, 410
      text 'X'
    end
    Text[1] = put_text 'テスト' do
      position 158, 460
      text 'X'
    end
    Text[2] = put_text 'テスト' do
      position 158, 510
      text 'X'
    end
    # タイトルの配置
    title = put_sprite 'Title' do
      position 0, 0
      frame_index 0
    end
    
    btan[0] = put_sprite 'Botanはじめから' do
      position 50, 500
      frame_index 0
    end
   
    btan[1] = put_sprite 'Botanつづきから' do
      position 320, 500
      frame_index 0
    end
    
    btan[2] = put_sprite 'Botan空' do
      position 570, 500
      frame_index 0
    end
    
    
    Kro_sc = put_sprite 'Kro00' do
      position 0,-600
      frame_index 0
    end  
    
    #BGM
    Tt_BGM = add_music('タイトルBGM')
    S1_BGM = add_music('S1BGM')
    #効果音
    OK_Snd = add_sound('決定')
    DD_Snd = add_sound('階段')
    Dm_Snd = add_sound('Dmg')
    Metu_Snd = add_sound('Metu')
    Dwn_Snd = add_sound('Dwn')
    Kai_Snd = add_sound('Kai')
    LU_Snd = add_sound('LvUp')
    # レイヤーに追加
    #character_layer.add player_sprite
    
    # 世界の端に到着するとそれ以上進めなくなる
    #player_sprite.collide_world!
    
    #i=0
    #while i<5
    #  Tge_sp[i].collide_world!
    #  i=i+1
    #end  
    
    # このキャラの動きにカメラがついていく
    #player_sprite.camera_target!
    
    # downアニメーションの開始
    #player_sprite.start_animation('down')
    
    #BGM再生
    Tt_BGM.play
  end
  
  update do 
    
    # タイトル画面
    if GMod == 0
     
      if pointer.down? #&& Key_control_flag == true
      
        if Stp == false 
      
          Stp = true
          ms_x = pointer.x
          ms_y = pointer.y
        
          if (ms_x > 50 && ms_x < 210 && ms_y > 500 && ms_y < 550) 
            OK_Snd.play
            Tt_BGM.stop
            
            title.position 0, -600
            btan[0].position 50,-100
            btan[1].position 320,-100
            btan[2].position 570,-100
            GMod = 1   
            S1_BGM.play
          elsif (ms_x > 320 && ms_x < 480 && ms_y > 500 && ms_y <550)
            OK_Snd.play
            Tt_BGM.stop
            
            data1 = loadGameData(key1)
            data2 = loadGameData(key2)
            data3 = loadGameData(key3)
            data4 = loadGameData(key4)
            data5 = loadGameData(key5)
            data6 = loadGameData(key6)
            
            Lv = data1.to_i 
            HPmx = data2.to_i
            Fit = data3.to_i
            Exp = data4.to_i
            TgLv = data5.to_i
            Ivt = data6.to_i 
            
            HP = HPmx
            i=0
            while i<5
              TgHP[i]=TgLv*50
              TgFit=TgLv*5
              i=i+1
            end
            
            #Fit=500000
            title.position 0, -600
            btan[0].position 50,-100
            btan[1].position 320,-100
            btan[2].position 570,-100
            GMod = 1
            S1_BGM.play
          end
      
        end
      else
      
        Stp = false
    
      end
    # ゲーム画面  
    elsif GMod == 1
      # キャラクタとマップの当たり判定処理
      #collision player_sprite, map_layer_01
      #collision player_sprite, map_layer_02
      collision(player_sprite, map_layer_01)do
        #Move=false
      end
      collision(player_sprite, map_layer_02)do
        #Move=false
      end
      
      
      # キャラクタの速度を(x,y)=(0,0)にする
      player_sprite.velocity 0, 0
      Ive_sp[0].velocity 0, 0
      Ive_sp[1].velocity 0, 0
      Ive_sp[2].velocity 0, 0
      
      i=0
      while i<5
        if TgHP[i]>0
          collision(Tge_sp[i], map_layer_01)do
            TgNSEW[i]=TgNSEW[i]+1
            if TgNSEW[i]>3
              TgNSEW[i]=0
            end  
          end
          collision(Tge_sp[i], map_layer_02)do
            TgNSEW[i]=TgNSEW[i]+1
            if TgNSEW[i]>3
              TgNSEW[i]=0
            end  
          end
          Tge_sp[i].velocity 0, 0
        
          v=0
          while v<5
            #debug_log "v #{v}"
            if i==v 
            else
              #collision Tge_sp[i], Tge_sp[v]
              collision(Tge_sp[i], Tge_sp[v])do
                TgNSEW[i]=TgNSEW[i]+1
                if TgNSEW[i]>3
                  TgNSEW[i]=0
                end  
              end
            end
            v=v+1
          end
        end  
        i=i+1
      end
      
      if Bos>0
        collision(Bos_sp, map_layer_01)do
        end
        collision(Bos_sp, map_layer_02)do
        end
        Bos_sp.velocity 0, 0
      end
      
      if KTim==false
        #敵の移動
        i=0
        while i<5
          if TgHP[i]>0
            case TgNSEW[i]
            when 0
            Tge_sp[i].velocity 0,-3
            when 1
            Tge_sp[i].velocity 0,3
            when 2
            Tge_sp[i].velocity 3,0
            when 3
            Tge_sp[i].velocity -3,0
            end
          end
          
          i=i+1
        end
        
        
        
        
        
        # キーボード操作
        if keyboard.down?('LEFT')
          pos = player_sprite.position
          player_sprite.velocity -speed, 0
          #player_sprite.start_animation('left')
        end
    
        if keyboard.down?('DOWN')
          pos = player_sprite.position
          player_sprite.velocity 0, speed
          #player_sprite.start_animation('down')
        end
    
        if keyboard.down?('RIGHT')
          pos = player_sprite.position
          player_sprite.velocity speed, 0
          #player_sprite.start_animation('right')
        end
    
        if keyboard.down?('UP')
          pos = player_sprite.position
          player_sprite.velocity 0, -speed
          #player_sprite.start_animation('up')
        end
    
        if pointer.down?
          if Stp == false 
      
            Stp = true
            Move = true
            MCT = 0
            ms_x = pointer.x
            ms_y = pointer.y
            #Zpos = player_sprite.position
            Tpos = player_sprite.position
            #Tpos = character_layer.position
            #pos = player_sprite.position
            vx = ms_x - Tpos[0]
            vy = ms_y - Tpos[1]
            II = (vx**2 + vy**2) ** 0.5
            if II < 0.1
              II = 0.1
            end  
            vxx = vx / II
            vyy = vy / II
            vxxx = vxx * 5
            vyyy = vyy * 5
        
          end
      
        else
      
          Stp = false
          
        end
    
        if Move == true
          #Ply_X=Ply_X+vxxx
          #Ply_Y=Ply_Y+vyyy
       
          MCT=MCT+1
          pos = player_sprite.position
          if (vxxx>0 && pos[0]>ms_x) 
            if (vyyy>0 && pos[1]>ms_y)
              Move=false
            elsif (vyyy<0 && pos[1]<ms_y)
              Move=false
            end  
          end
      
          if (vxxx<0 && pos[0]<ms_x) 
            if (vyyy>0 && pos[1]>ms_y)
              Move=false
            elsif (vyyy<0 && pos[1]<ms_y)
              Move=false
            end  
          end
          
          if MCT>80
            Move=false
          end  
          #collision(player_sprite, map_layer_01)do
          #  Move=false
          #end
          #collision(player_sprite, map_layer_02)do
          #  Move=false
          #end
      
      
          #player_sprite.position Ply_X, Ply_Y
          player_sprite.velocity vxxx, vyyy
          #pos = player_sprite.position
          #if (vxxx>0 && pos[0]>ms_x) || (vyyy>0 && pos[1]>ms_y)
          #  Move=false
          #end
          #if (vxxx<0 && pos[0]<ms_x) || (vyyy<0 && pos[1]<ms_y)
          #  Move=false
          #end
          
        end 
      
      else
        KCT=KCT+1
        if KCT>80
          KCT=0
          if TgLv==10
            Bos=1
            TgHP[0]=5000
            TgFit=55
            Bos_sp.position 352,128
          else  
            Bos=0
            #i=0
            #while i<5
            #  TgHP[i]=TgLv*50
            #  TgFit=TgLv*5
            #  i=i+1
            #end
            Set_Tgt()
            #Tge_sp[0].position 384, 160
            #Tge_sp[1].position 320, 96
            #Tge_sp[2].position 320, 224
            #Tge_sp[3].position 448, 96
            #Tge_sp[4].position 448, 224
      
            #Ive_sp[0].position 128,65
            #Ive_sp[1].position 384,65
            #Ive_sp[2].position 640,65
          end  
          Kro_sc.position 0,-600
          Move=false
          KTim=false
          
        end  
      end
      
      #敵との接触
      e=0
      while e<5
        collision(player_sprite, Tge_sp[e])do
          if Btl==false
            Btl=true
            BCT=0
            MT = (Fit / 5 + rand(Fit)) - (TgFit / 5 + rand(TgFit))
            Dm_Snd.play
            T=e
            if MT>0
              TgHP[T]=TgHP[T]-MT
              if TgHP[T]<1 
                Metu_Snd.play
                TgHP[T]=0
                Tge_sp[T].position -100,-100*T
                Tge_sp[T].velocity 0,0
                
                Exp = Exp + TgLv
                LvU = 0
                Set_Exp() #NxExp = (Lv * (2 * 50 + (Lv - 1) * 10)) / 2
                while (NxExp <= Exp) 
                  LvU = LvU + 1
                  Lv = Lv + 1
                  HPmx = HPmx + 10
                  Fit = Fit + 5
                  Set_Exp() #NxExp = (Lv * (2 * 50 + (Lv - 1) * 10)) / 2
                  HP = HPmx
                end
                if (LvU > 0) 
                  LU_Snd.play
                end
                
                
              end
            else
              HP=HP+MT
              if HP<1
                Dwn_Snd.play
                HP=100
                TgLv=1
                S1_BGM.stop
                Tt_BGM.play
                player_sprite.position 400,300
                player_sprite.velocity 0, 0
                title.position 0, 0
                btan[0].position 50,500
                btan[1].position 320,500
                btan[2].position 570,500
                #i=0
                #while i<5
                #  TgHP[i]=TgLv*50
                #  TgFit=TgLv*5
                #  i=i+1
                #end
                Set_Tgt()
                #Tge_sp[0].position 384, 160
                #Tge_sp[1].position 320, 96
                #Tge_sp[2].position 320, 224
                #Tge_sp[3].position 448, 96
                #Tge_sp[4].position 448, 224
      
                #Ive_sp[0].position 128,65
                #Ive_sp[1].position 384,65
                #Ive_sp[2].position 640,65
                Btl=false
                GMod=0
              end  
            end  
          #  TgLv=TgLv+1
          #  Kro_sc.position 0,0
          #  player_sprite.position 128+16,160
          #  KTim=true
          end
        end
        e=e+1
      end
      
      collision(player_sprite, Bos_sp)do
        if Btl==false
          Btl=true
          BCT=0
          MT = (Fit / 5 + rand(Fit)) - (TgFit / 5 + rand(TgFit))
          Dm_Snd.play
          if MT>0
            TgHP[0]=TgHP[0]-MT
            if TgHP[0]<1 
              Metu_Snd.play
              TgHP[0]=0
              Bos_sp.position -100,-100
                
              # アクティビティフィードを流す
              result = send_activity_feed("レベル:#{Lv}でクリア");
      
              # 結果をデバッグログに出力する
              # 公開したゲームでは見えません
              debug_log(result ? "フィードを流した" : "フィードを流さなかった")
              S1_BGM.stop
              
              game_clear
                
              Exp = Exp + TgLv
              LvU = 0
              NxExp = (Lv * (2 * 50 + (Lv - 1) * 10)) / 2
              while (NxExp <= Exp) 
                LvU = LvU + 1
                Lv = Lv + 1
                HPmx = HPmx + 10
                Fit = Fit + 5
                NxExp = (Lv * (2 * 50 + (Lv - 1) * 10)) / 2
                HP = HPmx
              end
              if (LvU > 0) 
                LU_Snd.play
              end
                
                
            end
          else
            HP=HP+MT
            if HP<1
              Dwn_Snd.play
              HP=100
              TgLv=1
              S1_BGM.stop
              Tt_BGM.play
              player_sprite.position 400,300
              player_sprite.velocity 0, 0
              title.position 0, 0
              btan[0].position 50,500
              btan[1].position 320,500
              btan[2].position 570,500
              i=0
              while i<5
                TgHP[i]=TgLv*50
                TgFit=TgLv*5
                i=i+1
              end
              Tge_sp[0].position 384, 160
              Tge_sp[1].position 320, 96
              Tge_sp[2].position 320, 224
              Tge_sp[3].position 448, 96
              Tge_sp[4].position 448, 224
      
              Ive_sp[0].position 128,65
              Ive_sp[1].position 384,65
              Ive_sp[2].position 640,65
              Btl=false
              GMod=0
            end  
          end  
          #  TgLv=TgLv+1
          #  Kro_sc.position 0,0
          #  player_sprite.position 128+16,160
          #  KTim=true
        end
      end  
      
      
      
      
      
      if Btl==true
        BCT=BCT+1
        if MT>0 
          if Bos>0
            pos = Bos_sp.position
            BBm_sp.position pos[0],pos[1]
          else  
            pos = Tge_sp[T].position
            Bom_sp.position pos[0],pos[1]
          end
        else  
          pos = player_sprite.position
          Bom_sp.position pos[0]-16,pos[1]-16
        end
        if BCT>10
          Bom_sp.position -100,-100
          BBm_sp.position -100,-100
          BCT=0
          Btl=false
        end  
      end  
      
      #上り階段 レベルダウン階段
      collision(player_sprite, Ive_sp[0])do
        if TgLv>1
          DD_Snd.play
          TgLv=TgLv-1
          Kro_sc.position 0,0
          player_sprite.position 640+16,160
          KTim=true
        else
          Ive_sp[0].position 128,65
        end
      end
      #下り階段 レベルアップ階段
      collision(player_sprite, Ive_sp[2])do
        if TgLv<10
          DD_Snd.play
          TgLv=TgLv+1
          Kro_sc.position 0,0
          player_sprite.position 128+16,160
          KTim=true
        end
      end
      #回復&セーブ
      collision(player_sprite, Ive_sp[1])do
        Move=false
        player_sprite.velocity 0, 0
        player_sprite.velocity 0, 4#32
        Ive_sp[1].velocity 0, 0
        Ive_sp[1].position 384,65
        if (TgHP[0]+TgHP[1]+TgHP[2]+TgHP[3]+TgHP[4])==0
          player_sprite.velocity 0, 0
          Kai_Snd.play
          HP=HPmx
          #collision(player_sprite, map_layer_01)do
          #Move=false
          #end
          #collision(player_sprite, map_layer_02)do
          #Move=false
          #end
          data1="#{Lv}"
          data2="#{HPmx}"
          data3="#{Fit}"
          data4="#{Exp}"
          data5="#{TgLv}"
          data6="#{Ivt}"
          
          saveGameData(key1, data1)
          saveGameData(key2, data2)
          saveGameData(key3, data3)
          saveGameData(key4, data4)
          saveGameData(key5, data5)
          saveGameData(key6, data6)
          
          #Kro_sc.position 0,0
          player_sprite.position 384+16,98+32
          
        else
          Ive_sp[1].position 384,65
        end
      end  
        pos = player_sprite.position
        Text[0].text("#{TgLv}階  Lv #{Lv}")
        Text[1].text("HP #{HP} / #{HPmx}  ") #Move:#{Move} Y:#{vyyy} PX:#{pos[0]} PY:#{pos[1]}")
        NxExp = (Lv * (2 * 50 + (Lv - 1) * 10)) / 2
        V=NxExp-Exp
        Text[2].text("必要経験値  #{V}")
    end
    
    
    
    
  end
  render do
    
  end
end
start_scene "start"
# キャラクタの定義
sprite 'chara' do
  image 'chara_00'
  origin :center
end
sprite 'Tge00' do
  image 'Tge0'
  origin :left_top
end
sprite 'Ive00' do
  image 'Ive0'
  origin :left_top
end
sprite 'Bom00' do
  image 'Bom0'
  origin :left_top
end
sprite 'Kro00' do
  image 'Kuro'
  origin :left_top
end
sprite 'Title' do
  image 'タイトル'
  origin :left_top
end
sprite 'Botanはじめから' do
  image 'ボタンはじめから'
  origin :left_top
end
sprite 'Botanつづきから' do
  image 'ボタンつづきから'
  origin :left_top
end
sprite 'Botan空' do
  image 'ボタン空'
  origin :left_top
end
#####テキストスプライト定義#####
text 'テスト' do
  origin :left_top #原点を画像左上に設定
  font_size 30
  color '#EEEEEE' #白っぽい色
end
#関数
def Set_Exp()
  NxExp = (Lv * (2 * 50 + (Lv - 1) * 10)) / 2
end 
def Set_Tgt()
  i=0
  while i<5
    TgHP[i]=TgLv*50
    TgFit=TgLv*5
    Tge_sp[i].velocity 0,0
    i=i+1
  end
  Tge_sp[0].position 384, 160
  Tge_sp[1].position 320, 96
  Tge_sp[2].position 320, 224
  Tge_sp[3].position 448, 96
  Tge_sp[4].position 448, 224
  
  Ive_sp[0].position 128,65
  Ive_sp[1].position 384,65
  Ive_sp[2].position 640,65
end  
  コード一覧
- start.rb
 
プレー内容を公開する
    プレー履歴
    プレー履歴はありません。
新着レビュー
      レビューはまだ投稿されていません。 作品の感想を作者に伝えるためにレビューを投稿してみませんか?
フォロー/シェア
    
    
    
    
  
私のゲームも何故かフリーズするものがあります。
当たり判定が原因じゃないかと疑ってるんですが、まだ詳しい事はサッパリです。
おお、やっぱりフリーズしちゃうもんなんですね
現在疑似3Dダンジョンのゲームを作っているのですが
これまた原因不明のエラーが出て困ってます
プログラム自体は間違ってない自信はあるのですが
どうにも上手くいきませんね
なんかCoRは不具合があるように思います
めっちゃ複雑なゲームは作れない気がしますね
これからも光楼さんのプログラムは参考にしていきたいと思います
僕も及ばずながらプログラムは公開していくつもりなので
情報交換といきましょう
よろしくお願いします!