ruby-miyako-mswin32 2.1.14 → 2.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +94 -5
 - data/install_miyako.rb +1 -34
 - data/lib/Miyako/API/i_yuki.rb +94 -6
 - data/lib/Miyako/API/input.rb +87 -5
 - data/lib/Miyako/API/textbox.rb +6 -1
 - data/lib/Miyako/API/utility.rb +112 -42
 - data/lib/Miyako/API/yuki.rb +67 -2
 - data/lib/Miyako/miyako.rb +2 -2
 - data/lib/Miyako/miyako_no_katana.so +0 -0
 - metadata +4 -4
 
    
        data/README
    CHANGED
    
    | 
         @@ -1,8 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            *******************************************************************************
         
     | 
| 
       2 
2 
     | 
    
         
             
            【   作者名   】 サイロス誠
         
     | 
| 
       3 
3 
     | 
    
         
             
            【  ソフト名  】 Interactive Media Authoring System "Miyako"
         
     | 
| 
       4 
     | 
    
         
            -
            【 バージョン 】 2.1. 
     | 
| 
       5 
     | 
    
         
            -
            【   作成日   】 2010/ 
     | 
| 
      
 4 
     | 
    
         
            +
            【 バージョン 】 2.1.16
         
     | 
| 
      
 5 
     | 
    
         
            +
            【   作成日   】 2010/08/30
         
     | 
| 
       6 
6 
     | 
    
         
             
            【    種別    】 フリーウェア
         
     | 
| 
       7 
7 
     | 
    
         
             
            【  開発言語  】 Ruby 1.9.1
         
     | 
| 
       8 
8 
     | 
    
         
             
            【 ランタイム 】 Ruby 1.9.1~,Ruby/SDL 2.1~,SDL
         
     | 
| 
         @@ -15,7 +15,7 @@ 
     | 
|
| 
       15 
15 
     | 
    
         | 
| 
       16 
16 
     | 
    
         
             
            【 注意事項  】
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
            本バージョンは、2.1. 
     | 
| 
      
 18 
     | 
    
         
            +
            本バージョンは、2.1.16公式リリース版です。
         
     | 
| 
       19 
19 
     | 
    
         
             
            本バージョンでは、ドキュメント・リファレンスは不十分ですが、「サイログ。」内や、サンプルプログラムの紹介等で随時ドキュメントを公開して行きます。
         
     | 
| 
       20 
20 
     | 
    
         
             
            (RDOC化を進めていますので、我こそはと思う方は是非・・・)
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
         @@ -91,7 +91,7 @@ PAD : BUFFALO BGC-FC802 
     | 
|
| 
       91 
91 
     | 
    
         
             
            OS  : Microsoft WindowsXp SP3
         
     | 
| 
       92 
92 
     | 
    
         
             
                  Microsoft WindowsVista Ultimate(x64) SP1
         
     | 
| 
       93 
93 
     | 
    
         
             
            DEV : Notepad++ v5.3.1-6
         
     | 
| 
       94 
     | 
    
         
            -
                  mingw32版Ruby 1.9. 
     | 
| 
      
 94 
     | 
    
         
            +
                  mingw32版Ruby 1.9.2-p0 + Ruby/SDL 2.1.1
         
     | 
| 
       95 
95 
     | 
    
         
             
                  MinGW+MSYS(miyako_no_katanaビルド)
         
     | 
| 
       96 
96 
     | 
    
         | 
| 
       97 
97 
     | 
    
         
             
            <サブ開発PC>
         
     | 
| 
         @@ -101,7 +101,7 @@ MEM : 4GB(2GBx2) 
     | 
|
| 
       101 
101 
     | 
    
         
             
            PAD : SANWA SUPPLY JY-P1W
         
     | 
| 
       102 
102 
     | 
    
         
             
            OS  : Microsoft Windows7 x64
         
     | 
| 
       103 
103 
     | 
    
         
             
            DEV : Notepad++ v5.3.1-6
         
     | 
| 
       104 
     | 
    
         
            -
                  mswin32版Ruby 1.9. 
     | 
| 
      
 104 
     | 
    
         
            +
                  mswin32版Ruby 1.9.2-p0 + Ruby/SDL 2.1.1
         
     | 
| 
       105 
105 
     | 
    
         | 
| 
       106 
106 
     | 
    
         
             
            【 動作確認環境 】
         
     | 
| 
       107 
107 
     | 
    
         | 
| 
         @@ -1830,5 +1830,94 @@ v2.1.14(2010.06.11) 
     | 
|
| 
       1830 
1830 
     | 
    
         
             
            <インスタンスメソッド廃止>
         
     | 
| 
       1831 
1831 
     | 
    
         
             
            <ドキュメント>
         
     | 
| 
       1832 
1832 
     | 
    
         | 
| 
      
 1833 
     | 
    
         
            +
            v2.1.15(2010.07.18)
         
     | 
| 
      
 1834 
     | 
    
         
            +
            <バグ修正>
         
     | 
| 
      
 1835 
     | 
    
         
            +
            ・map_testサンプルで、マップと画面とのずれを算出する際に、アニメーションではなくスプライトからずれを算出していた問題を修正
         
     | 
| 
      
 1836 
     | 
    
         
            +
             ・実際にはずれていなかったため、海の上を歩けるなどの問題があった
         
     | 
| 
      
 1837 
     | 
    
         
            +
            <機能改善>
         
     | 
| 
      
 1838 
     | 
    
         
            +
            ・Utility.product_liner(_f)の内部アルゴリズムを変更
         
     | 
| 
      
 1839 
     | 
    
         
            +
            <仕様変更>
         
     | 
| 
      
 1840 
     | 
    
         
            +
            <ファイル追加>
         
     | 
| 
      
 1841 
     | 
    
         
            +
            <ファイル削除>
         
     | 
| 
      
 1842 
     | 
    
         
            +
            <グローバル変数追加>
         
     | 
| 
      
 1843 
     | 
    
         
            +
            <定数追加>
         
     | 
| 
      
 1844 
     | 
    
         
            +
            <定数削除>
         
     | 
| 
      
 1845 
     | 
    
         
            +
            <構造体追加>
         
     | 
| 
      
 1846 
     | 
    
         
            +
            <クラス追加>
         
     | 
| 
      
 1847 
     | 
    
         
            +
            <モジュール追加>
         
     | 
| 
      
 1848 
     | 
    
         
            +
            <mixin>
         
     | 
| 
      
 1849 
     | 
    
         
            +
            <クラス・モジュールメソッド追加>
         
     | 
| 
      
 1850 
     | 
    
         
            +
            ・ScenarioEngine.[]
         
     | 
| 
      
 1851 
     | 
    
         
            +
            ・ScenarioEngine.[]=
         
     | 
| 
      
 1852 
     | 
    
         
            +
            ・InitiativeScenarioEngine.[]
         
     | 
| 
      
 1853 
     | 
    
         
            +
            ・InitiativeScenarioEngine.[]=
         
     | 
| 
      
 1854 
     | 
    
         
            +
            ・Utility.theta2
         
     | 
| 
      
 1855 
     | 
    
         
            +
            ・Utility.radian
         
     | 
| 
      
 1856 
     | 
    
         
            +
            ・Utility.radian2
         
     | 
| 
      
 1857 
     | 
    
         
            +
            ・Utility.degree
         
     | 
| 
      
 1858 
     | 
    
         
            +
            ・Utility.degree2
         
     | 
| 
      
 1859 
     | 
    
         
            +
            ・Utility.product_liner_xy
         
     | 
| 
      
 1860 
     | 
    
         
            +
            ・Utility.product_liner_xy_f
         
     | 
| 
      
 1861 
     | 
    
         
            +
            <クラス・モジュールメソッド廃止>
         
     | 
| 
      
 1862 
     | 
    
         
            +
            <モジュール関数追加>
         
     | 
| 
      
 1863 
     | 
    
         
            +
            <モジュール関数廃止>
         
     | 
| 
      
 1864 
     | 
    
         
            +
            <インスタンスメソッド追加>
         
     | 
| 
      
 1865 
     | 
    
         
            +
            ・ScenarioEngine#[]
         
     | 
| 
      
 1866 
     | 
    
         
            +
            ・ScenarioEngine#[]=
         
     | 
| 
      
 1867 
     | 
    
         
            +
            ・ScenarioEngine#common_use
         
     | 
| 
      
 1868 
     | 
    
         
            +
            ・ScenarioEngine#call_plot_params
         
     | 
| 
      
 1869 
     | 
    
         
            +
            ・ScenarioEngine#call_plot_block
         
     | 
| 
      
 1870 
     | 
    
         
            +
            ・InitiativeScenarioEngine#[]
         
     | 
| 
      
 1871 
     | 
    
         
            +
            ・InitiativeScenarioEngine#[]=
         
     | 
| 
      
 1872 
     | 
    
         
            +
            ・InitiativeScenarioEngine#common_use
         
     | 
| 
      
 1873 
     | 
    
         
            +
            ・InitiativeScenarioEngine#call_plot_params
         
     | 
| 
      
 1874 
     | 
    
         
            +
            ・InitiativeScenarioEngine#call_plot_block
         
     | 
| 
      
 1875 
     | 
    
         
            +
            <インスタンスメソッド廃止>
         
     | 
| 
      
 1876 
     | 
    
         
            +
            <ドキュメント>
         
     | 
| 
      
 1877 
     | 
    
         
            +
            ・リファレンスマニュアルの反映
         
     | 
| 
      
 1878 
     | 
    
         
            +
            <その他>
         
     | 
| 
      
 1879 
     | 
    
         
            +
            ・MiyakoPackはzipファイル→自己解凍型インストーラに変更
         
     | 
| 
      
 1880 
     | 
    
         
            +
             
     | 
| 
      
 1881 
     | 
    
         
            +
            v2.1.16(2010.08.30)
         
     | 
| 
      
 1882 
     | 
    
         
            +
            <バグ修正>
         
     | 
| 
      
 1883 
     | 
    
         
            +
            <機能改善>
         
     | 
| 
      
 1884 
     | 
    
         
            +
            <仕様変更>
         
     | 
| 
      
 1885 
     | 
    
         
            +
            ・プログラムの起動時と画面のフォーカス直後のマウスクリックはクリックと見なさないように変更
         
     | 
| 
      
 1886 
     | 
    
         
            +
             (Miyako側では、フォーカスのためのクリックと判断できないために追加した処置)
         
     | 
| 
      
 1887 
     | 
    
         
            +
            ・InitiativeScenarioEngine#selecting_innerの呼び出しタイミングを変更(システム内の選択処理を終えた直後)
         
     | 
| 
      
 1888 
     | 
    
         
            +
            ・TextBox#attach_cursorの内部処理変更
         
     | 
| 
      
 1889 
     | 
    
         
            +
            <ファイル追加>
         
     | 
| 
      
 1890 
     | 
    
         
            +
            <ファイル削除>
         
     | 
| 
      
 1891 
     | 
    
         
            +
            <グローバル変数追加>
         
     | 
| 
      
 1892 
     | 
    
         
            +
            <定数追加>
         
     | 
| 
      
 1893 
     | 
    
         
            +
            <定数削除>
         
     | 
| 
      
 1894 
     | 
    
         
            +
            <構造体追加>
         
     | 
| 
      
 1895 
     | 
    
         
            +
            <クラス追加>
         
     | 
| 
      
 1896 
     | 
    
         
            +
            <モジュール追加>
         
     | 
| 
      
 1897 
     | 
    
         
            +
            <mixin>
         
     | 
| 
      
 1898 
     | 
    
         
            +
            <クラス・モジュールメソッド追加>
         
     | 
| 
      
 1899 
     | 
    
         
            +
            ・Input.mouse_x
         
     | 
| 
      
 1900 
     | 
    
         
            +
            ・Input.mouse_y
         
     | 
| 
      
 1901 
     | 
    
         
            +
            ・Input.mouse_dx
         
     | 
| 
      
 1902 
     | 
    
         
            +
            ・Input.mouse_dy
         
     | 
| 
      
 1903 
     | 
    
         
            +
            ・Input.key_focus?
         
     | 
| 
      
 1904 
     | 
    
         
            +
            ・Input.window_minimize?
         
     | 
| 
      
 1905 
     | 
    
         
            +
            ・Input.mouse_cursor_inner_change?
         
     | 
| 
      
 1906 
     | 
    
         
            +
            ・Input.key_focus_change?
         
     | 
| 
      
 1907 
     | 
    
         
            +
            ・Input.window_minimize_change?
         
     | 
| 
      
 1908 
     | 
    
         
            +
            ・Input.btn_state
         
     | 
| 
      
 1909 
     | 
    
         
            +
            ・Input.mouse_state
         
     | 
| 
      
 1910 
     | 
    
         
            +
            <クラス・モジュールメソッド廃止>
         
     | 
| 
      
 1911 
     | 
    
         
            +
            <モジュール関数追加>
         
     | 
| 
      
 1912 
     | 
    
         
            +
            <モジュール関数廃止>
         
     | 
| 
      
 1913 
     | 
    
         
            +
            <インスタンスメソッド追加>
         
     | 
| 
      
 1914 
     | 
    
         
            +
            ・TextBox#attach_cursor?
         
     | 
| 
      
 1915 
     | 
    
         
            +
            ・InitiativeScenarioEngine#select_mouse_enable?
         
     | 
| 
      
 1916 
     | 
    
         
            +
            ・InitiativeScenarioEngine#select_key_enable?
         
     | 
| 
      
 1917 
     | 
    
         
            +
            <インスタンスメソッド廃止>
         
     | 
| 
      
 1918 
     | 
    
         
            +
            <ドキュメント>
         
     | 
| 
      
 1919 
     | 
    
         
            +
            ・リファレンスマニュアルの反映
         
     | 
| 
      
 1920 
     | 
    
         
            +
            <その他>
         
     | 
| 
      
 1921 
     | 
    
         
            +
             
     | 
| 
       1833 
1922 
     | 
    
         
             
            *******************************************************************************
         
     | 
| 
       1834 
1923 
     | 
    
         
             
            このReadMeファイルは「れ~どめ~えじた~」によって作成されました。
         
     | 
    
        data/install_miyako.rb
    CHANGED
    
    | 
         @@ -33,24 +33,6 @@ ARGV.options do |opt| 
     | 
|
| 
       33 
33 
     | 
    
         
             
              opt.parse!
         
     | 
| 
       34 
34 
     | 
    
         
             
            end
         
     | 
| 
       35 
35 
     | 
    
         | 
| 
       36 
     | 
    
         
            -
            ext_dir = "./"
         
     | 
| 
       37 
     | 
    
         
            -
            osn = Config::CONFIG["target_os"].downcase
         
     | 
| 
       38 
     | 
    
         
            -
            if osn =~ /mswin|mingw|cygwin|bccwin/
         
     | 
| 
       39 
     | 
    
         
            -
              ext_dir = "win/"
         
     | 
| 
       40 
     | 
    
         
            -
            elsif osn =~ /darwin/ # Mac OS X
         
     | 
| 
       41 
     | 
    
         
            -
              if ENV['SDL_CONFIG_PATH']
         
     | 
| 
       42 
     | 
    
         
            -
                system(Config::CONFIG["ruby_install_name"] + " extconf.rb --with-sdl-config='#{ENV['SDL_CONFIG_PATH']}'; make")
         
     | 
| 
       43 
     | 
    
         
            -
              else
         
     | 
| 
       44 
     | 
    
         
            -
                system(Config::CONFIG["ruby_install_name"] + " extconf.rb --with-sdl-config='sdl-config'; make")
         
     | 
| 
       45 
     | 
    
         
            -
              end
         
     | 
| 
       46 
     | 
    
         
            -
            else # linux, U*IX...
         
     | 
| 
       47 
     | 
    
         
            -
              if ENV['SDL_CONFIG_PATH']
         
     | 
| 
       48 
     | 
    
         
            -
                system(Config::CONFIG["ruby_install_name"] + " extconf.rb --with-sdl-config='#{ENV['SDL_CONFIG_PATH']}'; make")
         
     | 
| 
       49 
     | 
    
         
            -
              else
         
     | 
| 
       50 
     | 
    
         
            -
                system(Config::CONFIG["ruby_install_name"] + " extconf.rb --with-sdl-config='sdl-config'; make")
         
     | 
| 
       51 
     | 
    
         
            -
              end
         
     | 
| 
       52 
     | 
    
         
            -
            end
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
36 
     | 
    
         
             
            baselibdir = Config::CONFIG["sitelibdir"]
         
     | 
| 
       55 
37 
     | 
    
         
             
            sitelibdir = baselibdir + "/Miyako"
         
     | 
| 
       56 
38 
     | 
    
         
             
            apidir = sitelibdir + "/API"
         
     | 
| 
         @@ -67,23 +49,8 @@ FileUtils.mkpath(sitelibdir, option) 
     | 
|
| 
       67 
49 
     | 
    
         
             
            FileUtils.mkpath(apidir, option)
         
     | 
| 
       68 
50 
     | 
    
         
             
            FileUtils.mkpath(extdir, option)
         
     | 
| 
       69 
51 
     | 
    
         | 
| 
       70 
     | 
    
         
            -
            if osn =~ /darwin/ # Mac OS X
         
     | 
| 
       71 
     | 
    
         
            -
              Dir.glob(ext_dir + "*.bundle"){|fname| FileUtils.install(fname, sitelibdir, option)}
         
     | 
| 
       72 
     | 
    
         
            -
            else # Windows, linux, U*IX...
         
     | 
| 
       73 
     | 
    
         
            -
              Dir.glob(ext_dir + "*.so"){|fname| FileUtils.install(fname, sitelibdir, option)}
         
     | 
| 
       74 
     | 
    
         
            -
            end
         
     | 
| 
       75 
52 
     | 
    
         
             
            Dir.glob("lib/*.rb"){|fname| FileUtils.install(fname, baselibdir, option)}
         
     | 
| 
       76 
53 
     | 
    
         
             
            Dir.glob("lib/Miyako/*.rb"){|fname| FileUtils.install(fname, sitelibdir, option)}
         
     | 
| 
      
 54 
     | 
    
         
            +
            Dir.glob("lib/Miyako/*.so"){|fname| FileUtils.install(fname, sitelibdir, option)}
         
     | 
| 
       77 
55 
     | 
    
         
             
            Dir.glob("lib/Miyako/API/*.rb"){|fname| FileUtils.install(fname, apidir, option)}
         
     | 
| 
       78 
56 
     | 
    
         
             
            Dir.glob("lib/Miyako/EXT/*.rb"){|fname| FileUtils.install(fname, extdir, option)}
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
            unless osn =~ /mswin|mingw|cygwin|bccwin/
         
     | 
| 
       81 
     | 
    
         
            -
              FileUtils.chmod(0755, sitelibdir)
         
     | 
| 
       82 
     | 
    
         
            -
              FileUtils.chmod(0755, apidir)
         
     | 
| 
       83 
     | 
    
         
            -
              FileUtils.chmod(0755, extdir)
         
     | 
| 
       84 
     | 
    
         
            -
              FileUtils.chmod(0644, sitelibdir+'/miyako.rb')
         
     | 
| 
       85 
     | 
    
         
            -
              Dir.glob(sitelibdir+"/*.so"){|fname| FileUtils.chmod(0644, fname)} # for linux,bsd
         
     | 
| 
       86 
     | 
    
         
            -
              Dir.glob(sitelibdir+"/*.bundle"){|fname| FileUtils.chmod(0644, fname)} # for macosx
         
     | 
| 
       87 
     | 
    
         
            -
              Dir.glob(apidir+"/*.rb"){|fname| FileUtils.chmod(0644, fname)}
         
     | 
| 
       88 
     | 
    
         
            -
              Dir.glob(extdir+"/*.rb"){|fname| FileUtils.chmod(0644, fname)}
         
     | 
| 
       89 
     | 
    
         
            -
            end
         
     | 
    
        data/lib/Miyako/API/i_yuki.rb
    CHANGED
    
    | 
         @@ -171,6 +171,19 @@ module Miyako 
     | 
|
| 
       171 
171 
     | 
    
         
             
                  end
         
     | 
| 
       172 
172 
     | 
    
         
             
                end
         
     | 
| 
       173 
173 
     | 
    
         | 
| 
      
 174 
     | 
    
         
            +
                #外部との共用変数を収めるところ
         
     | 
| 
      
 175 
     | 
    
         
            +
                @@common_use = {}
         
     | 
| 
      
 176 
     | 
    
         
            +
             
     | 
| 
      
 177 
     | 
    
         
            +
                def InitiativeYuki.[](key)
         
     | 
| 
      
 178 
     | 
    
         
            +
                  @@common_use[key]
         
     | 
| 
      
 179 
     | 
    
         
            +
                end
         
     | 
| 
      
 180 
     | 
    
         
            +
             
     | 
| 
      
 181 
     | 
    
         
            +
                def InitiativeYuki.[]=(key, value)
         
     | 
| 
      
 182 
     | 
    
         
            +
                  @@common_use[key] = value
         
     | 
| 
      
 183 
     | 
    
         
            +
                  value
         
     | 
| 
      
 184 
     | 
    
         
            +
                end
         
     | 
| 
      
 185 
     | 
    
         
            +
             
     | 
| 
      
 186 
     | 
    
         
            +
                attr_reader :common_use
         
     | 
| 
       174 
187 
     | 
    
         
             
                attr_reader :visibles, :pre_visibles, :bgs, :base
         
     | 
| 
       175 
188 
     | 
    
         
             
                attr_reader :valign
         
     | 
| 
       176 
189 
     | 
    
         
             
                #release_checks:: ポーズ解除を問い合わせるブロックの配列。
         
     | 
| 
         @@ -187,6 +200,9 @@ module Miyako 
     | 
|
| 
       187 
200 
     | 
    
         
             
                #(2)キャンセルボタンを押した?(true/false)
         
     | 
| 
       188 
201 
     | 
    
         
             
                #(3)キーパッドの移動量を示す配列([dx,dy])
         
     | 
| 
       189 
202 
     | 
    
         
             
                #(4)マウスの位置を示す配列([x,y])
         
     | 
| 
      
 203 
     | 
    
         
            +
                #<<(2.1.15-追加、省略可能)>>
         
     | 
| 
      
 204 
     | 
    
         
            +
                #(5)現在指しているコマンドは選択可能?(true/false)
         
     | 
| 
      
 205 
     | 
    
         
            +
                #(6)現在指しているコマンドの結果
         
     | 
| 
       190 
206 
     | 
    
         
             
                #callメソッドを持つブロックが使用可能。
         
     | 
| 
       191 
207 
     | 
    
         
             
                attr_reader :selecting_procs
         
     | 
| 
       192 
208 
     | 
    
         | 
| 
         @@ -255,6 +271,9 @@ module Miyako 
     | 
|
| 
       255 
271 
     | 
    
         | 
| 
       256 
272 
     | 
    
         
             
                  @mouse_enable = true
         
     | 
| 
       257 
273 
     | 
    
         | 
| 
      
 274 
     | 
    
         
            +
                  @select_mouse_enable = true
         
     | 
| 
      
 275 
     | 
    
         
            +
                  @select_key_enable = false
         
     | 
| 
      
 276 
     | 
    
         
            +
             
     | 
| 
       258 
277 
     | 
    
         
             
                  @result = nil
         
     | 
| 
       259 
278 
     | 
    
         
             
                  @plot_result = nil
         
     | 
| 
       260 
279 
     | 
    
         | 
| 
         @@ -300,6 +319,8 @@ module Miyako 
     | 
|
| 
       300 
319 
     | 
    
         | 
| 
       301 
320 
     | 
    
         
             
                  @engine_stack = []
         
     | 
| 
       302 
321 
     | 
    
         | 
| 
      
 322 
     | 
    
         
            +
                  @common_use = {}
         
     | 
| 
      
 323 
     | 
    
         
            +
             
     | 
| 
       303 
324 
     | 
    
         
             
                  raise MiyakoProcError, "Argument count is not same block parameter count!" if proc && proc.arity.abs != params.length
         
     | 
| 
       304 
325 
     | 
    
         
             
                  instance_exec(*params, &proc) if block_given?
         
     | 
| 
       305 
326 
     | 
    
         
             
                end
         
     | 
| 
         @@ -436,6 +457,15 @@ module Miyako 
     | 
|
| 
       436 
457 
     | 
    
         
             
                  return false
         
     | 
| 
       437 
458 
     | 
    
         
             
                end
         
     | 
| 
       438 
459 
     | 
    
         | 
| 
      
 460 
     | 
    
         
            +
                def [](key)
         
     | 
| 
      
 461 
     | 
    
         
            +
                  @common_use[key] || @@common_use[key]
         
     | 
| 
      
 462 
     | 
    
         
            +
                end
         
     | 
| 
      
 463 
     | 
    
         
            +
             
     | 
| 
      
 464 
     | 
    
         
            +
                def []=(key, value)
         
     | 
| 
      
 465 
     | 
    
         
            +
                  @common_use[key] = value
         
     | 
| 
      
 466 
     | 
    
         
            +
                  value
         
     | 
| 
      
 467 
     | 
    
         
            +
                end
         
     | 
| 
      
 468 
     | 
    
         
            +
             
     | 
| 
       439 
469 
     | 
    
         
             
                #===変数を参照する
         
     | 
| 
       440 
470 
     | 
    
         
             
                #[[Yukiスクリプトとして利用可能]]
         
     | 
| 
       441 
471 
     | 
    
         
             
                #変数の管理オブジェクトを、ハッシュとして参照する。
         
     | 
| 
         @@ -1024,6 +1054,32 @@ module Miyako 
     | 
|
| 
       1024 
1054 
     | 
    
         
             
                                     self.instance_exec(&plot_block)
         
     | 
| 
       1025 
1055 
     | 
    
         
             
                end
         
     | 
| 
       1026 
1056 
     | 
    
         | 
| 
      
 1057 
     | 
    
         
            +
                #===プロット処理中に別のプロットを呼び出す
         
     | 
| 
      
 1058 
     | 
    
         
            +
                #呼び出し可能なプロットは以下の2種類。(上から優先度が高い順)
         
     | 
| 
      
 1059 
     | 
    
         
            +
                #
         
     | 
| 
      
 1060 
     | 
    
         
            +
                #1)引数prot_proc(Procクラスのインスタンス)
         
     | 
| 
      
 1061 
     | 
    
         
            +
                #
         
     | 
| 
      
 1062 
     | 
    
         
            +
                #2)引数として渡したブロック
         
     | 
| 
      
 1063 
     | 
    
         
            +
                #
         
     | 
| 
      
 1064 
     | 
    
         
            +
                #_plot_proc_:: プロットの実行部をインスタンス化したオブジェクト
         
     | 
| 
      
 1065 
     | 
    
         
            +
                #返却値:: プロットの実行結果を返す
         
     | 
| 
      
 1066 
     | 
    
         
            +
                def call_plot_params(plot_proc, *params)
         
     | 
| 
      
 1067 
     | 
    
         
            +
                  return self.instance_exec(*params, &plot_proc)
         
     | 
| 
      
 1068 
     | 
    
         
            +
                end
         
     | 
| 
      
 1069 
     | 
    
         
            +
             
     | 
| 
      
 1070 
     | 
    
         
            +
                #===プロット処理中に別のプロットを呼び出す
         
     | 
| 
      
 1071 
     | 
    
         
            +
                #呼び出し可能なプロットは以下の2種類。(上から優先度が高い順)
         
     | 
| 
      
 1072 
     | 
    
         
            +
                #
         
     | 
| 
      
 1073 
     | 
    
         
            +
                #1)引数prot_proc(Procクラスのインスタンス)
         
     | 
| 
      
 1074 
     | 
    
         
            +
                #
         
     | 
| 
      
 1075 
     | 
    
         
            +
                #2)引数として渡したブロック
         
     | 
| 
      
 1076 
     | 
    
         
            +
                #
         
     | 
| 
      
 1077 
     | 
    
         
            +
                #_plot_proc_:: プロットの実行部をインスタンス化したオブジェクト
         
     | 
| 
      
 1078 
     | 
    
         
            +
                #返却値:: プロットの実行結果を返す
         
     | 
| 
      
 1079 
     | 
    
         
            +
                def call_plot_block(*params, &plot_block)
         
     | 
| 
      
 1080 
     | 
    
         
            +
                  return self.instance_exec(*params, &plot_block)
         
     | 
| 
      
 1081 
     | 
    
         
            +
                end
         
     | 
| 
      
 1082 
     | 
    
         
            +
             
     | 
| 
       1027 
1083 
     | 
    
         
             
                #===ポーズ解除問い合わせメソッド配列を初期状態に戻す
         
     | 
| 
       1028 
1084 
     | 
    
         
             
                #返却値:: 自分自身を返す
         
     | 
| 
       1029 
1085 
     | 
    
         
             
                def reset_release_checks
         
     | 
| 
         @@ -1413,6 +1469,14 @@ module Miyako 
     | 
|
| 
       1413 
1469 
     | 
    
         
             
                  return pause.clear
         
     | 
| 
       1414 
1470 
     | 
    
         
             
                end
         
     | 
| 
       1415 
1471 
     | 
    
         | 
| 
      
 1472 
     | 
    
         
            +
                def select_mouse_enable?
         
     | 
| 
      
 1473 
     | 
    
         
            +
                  @select_mouse_enable
         
     | 
| 
      
 1474 
     | 
    
         
            +
                end
         
     | 
| 
      
 1475 
     | 
    
         
            +
             
     | 
| 
      
 1476 
     | 
    
         
            +
                def select_key_enable?
         
     | 
| 
      
 1477 
     | 
    
         
            +
                  @select_key_enable
         
     | 
| 
      
 1478 
     | 
    
         
            +
                end
         
     | 
| 
      
 1479 
     | 
    
         
            +
             
     | 
| 
       1416 
1480 
     | 
    
         
             
                #===コマンドを表示する
         
     | 
| 
       1417 
1481 
     | 
    
         
             
                #[[Yukiスクリプトとして利用可能]]
         
     | 
| 
       1418 
1482 
     | 
    
         
             
                #表示対象のコマンド群をCommand構造体の配列で示す。
         
     | 
| 
         @@ -1454,17 +1518,38 @@ module Miyako 
     | 
|
| 
       1454 
1518 
     | 
    
         
             
                  end
         
     | 
| 
       1455 
1519 
     | 
    
         | 
| 
       1456 
1520 
     | 
    
         
             
                  @result = nil
         
     | 
| 
      
 1521 
     | 
    
         
            +
                  @select_mouse_enable = true
         
     | 
| 
      
 1522 
     | 
    
         
            +
                  @select_key_enable = false
         
     | 
| 
       1457 
1523 
     | 
    
         
             
                  selecting = true
         
     | 
| 
       1458 
1524 
     | 
    
         
             
                  reset_selecting
         
     | 
| 
       1459 
1525 
     | 
    
         
             
                  while selecting
         
     | 
| 
       1460 
1526 
     | 
    
         
             
                    pre_process
         
     | 
| 
       1461 
     | 
    
         
            -
                    @base.selecting_inner(self) if @base
         
     | 
| 
       1462 
     | 
    
         
            -
                    @select_ok = true if @ok_checks.inject(false){|r, c| r |= c.call }
         
     | 
| 
       1463 
     | 
    
         
            -
                    @select_cancel = true if @cancel && @cancel_checks.inject(false){|r, c| r |= c.call }
         
     | 
| 
       1464 
1527 
     | 
    
         
             
                    @select_amount = @key_amount_proc.call
         
     | 
| 
       1465 
1528 
     | 
    
         
             
                    @mouse_amount = @mouse_amount_proc.call
         
     | 
| 
      
 1529 
     | 
    
         
            +
                    if @select_amount != [0,0]
         
     | 
| 
      
 1530 
     | 
    
         
            +
                      @select_mouse_enable = false
         
     | 
| 
      
 1531 
     | 
    
         
            +
                      @select_key_enable = true
         
     | 
| 
      
 1532 
     | 
    
         
            +
                    elsif Input.mouse_dx != 0 and Input.mouse_dy != 0
         
     | 
| 
      
 1533 
     | 
    
         
            +
                      @select_mouse_enable = true
         
     | 
| 
      
 1534 
     | 
    
         
            +
                      @select_key_enable = false
         
     | 
| 
      
 1535 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1536 
     | 
    
         
            +
                      @select_mouse_enable = false
         
     | 
| 
      
 1537 
     | 
    
         
            +
                      @select_key_enable = false
         
     | 
| 
      
 1538 
     | 
    
         
            +
                    end
         
     | 
| 
      
 1539 
     | 
    
         
            +
                    @select_ok = true if @ok_checks.inject(false){|r, c| r |= c.call }
         
     | 
| 
      
 1540 
     | 
    
         
            +
                    @select_cancel = true if @cancel && @cancel_checks.inject(false){|r, c| r |= c.call }
         
     | 
| 
       1466 
1541 
     | 
    
         
             
                    @selecting_procs.each{|sp|
         
     | 
| 
       1467 
     | 
    
         
            -
                      sp. 
     | 
| 
      
 1542 
     | 
    
         
            +
                      case sp.arity
         
     | 
| 
      
 1543 
     | 
    
         
            +
                      when 6
         
     | 
| 
      
 1544 
     | 
    
         
            +
                        sp.call(@select_ok, @select_cansel,
         
     | 
| 
      
 1545 
     | 
    
         
            +
                          @select_amount, @mouse_amount,
         
     | 
| 
      
 1546 
     | 
    
         
            +
                          @command_box.enable_choice?, @command_box.result
         
     | 
| 
      
 1547 
     | 
    
         
            +
                        )
         
     | 
| 
      
 1548 
     | 
    
         
            +
                      else
         
     | 
| 
      
 1549 
     | 
    
         
            +
                        sp.call(@select_ok, @select_cansel,
         
     | 
| 
      
 1550 
     | 
    
         
            +
                          @select_amount, @mouse_amount
         
     | 
| 
      
 1551 
     | 
    
         
            +
                        )
         
     | 
| 
      
 1552 
     | 
    
         
            +
                      end
         
     | 
| 
       1468 
1553 
     | 
    
         
             
                    }
         
     | 
| 
       1469 
1554 
     | 
    
         
             
                    if @select_ok
         
     | 
| 
       1470 
1555 
     | 
    
         
             
                      unless @command_box.enable_choice?
         
     | 
| 
         @@ -1485,13 +1570,16 @@ module Miyako 
     | 
|
| 
       1485 
1570 
     | 
    
         
             
                      @text_box.release
         
     | 
| 
       1486 
1571 
     | 
    
         
             
                      selecting = false
         
     | 
| 
       1487 
1572 
     | 
    
         
             
                      reset_selecting
         
     | 
| 
       1488 
     | 
    
         
            -
                    elsif @select_amount != [0,0]
         
     | 
| 
      
 1573 
     | 
    
         
            +
                    elsif @select_amount != [0,0] and @select_key_enable
         
     | 
| 
       1489 
1574 
     | 
    
         
             
                      @command_box.move_cursor(*@select_amount)
         
     | 
| 
       1490 
1575 
     | 
    
         
             
                      reset_selecting
         
     | 
| 
       1491 
     | 
    
         
            -
                    elsif @mouse_amount
         
     | 
| 
      
 1576 
     | 
    
         
            +
                    elsif @mouse_amount and @select_mouse_enable
         
     | 
| 
       1492 
1577 
     | 
    
         
             
                      @command_box.attach_cursor(*@mouse_amount.to_a) if @mouse_enable
         
     | 
| 
       1493 
1578 
     | 
    
         
             
                      reset_selecting
         
     | 
| 
      
 1579 
     | 
    
         
            +
                    elsif Input.mouse_cursor_inner?
         
     | 
| 
      
 1580 
     | 
    
         
            +
                      @command_box.attach_cursor(Input.mouse_x, Input.mouse_y) if @mouse_enable
         
     | 
| 
       1494 
1581 
     | 
    
         
             
                    end
         
     | 
| 
      
 1582 
     | 
    
         
            +
                    @base.selecting_inner(self) if @base
         
     | 
| 
       1495 
1583 
     | 
    
         
             
                    post_process
         
     | 
| 
       1496 
1584 
     | 
    
         
             
                  end
         
     | 
| 
       1497 
1585 
     | 
    
         
             
                  @post_cancel.each{|proc| proc.call}
         
     | 
    
        data/lib/Miyako/API/input.rb
    CHANGED
    
    | 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # -*- encoding: utf-8 -*-
         
     | 
| 
      
 1 
     | 
    
         
            +
            # -*- encoding: utf-8 -*-
         
     | 
| 
       2 
2 
     | 
    
         
             
            =begin
         
     | 
| 
       3 
3 
     | 
    
         
             
            --
         
     | 
| 
       4 
4 
     | 
    
         
             
            Miyako v2.1
         
     | 
| 
         @@ -108,7 +108,10 @@ module Miyako 
     | 
|
| 
       108 
108 
     | 
    
         
             
                           :click => {:left => false, :middle => false, :right => false, :interval => 200},
         
     | 
| 
       109 
109 
     | 
    
         
             
                           :drag  => {:left => false, :middle => false, :right => false, :x => 0, :y => 0},
         
     | 
| 
       110 
110 
     | 
    
         
             
                           :drop  => {:left => false, :middle => false, :right => false, :succeed => true},
         
     | 
| 
       111 
     | 
    
         
            -
                           :inner =>  
     | 
| 
      
 111 
     | 
    
         
            +
                           :inner => false, :focus => false, :mini => false}
         
     | 
| 
      
 112 
     | 
    
         
            +
                @@mouse_inner = false
         
     | 
| 
      
 113 
     | 
    
         
            +
                @@key_focus = false
         
     | 
| 
      
 114 
     | 
    
         
            +
                @@app_minimize = false
         
     | 
| 
       112 
115 
     | 
    
         | 
| 
       113 
116 
     | 
    
         
             
                @@initialized = false
         
     | 
| 
       114 
117 
     | 
    
         | 
| 
         @@ -225,7 +228,7 @@ module Miyako 
     | 
|
| 
       225 
228 
     | 
    
         
             
                def Input::process_mousebuttondown(e) #:nodoc:
         
     | 
| 
       226 
229 
     | 
    
         
             
                  return unless @@enable_mouse
         
     | 
| 
       227 
230 
     | 
    
         
             
                  set_mouse_button(:trigger, e.button)
         
     | 
| 
       228 
     | 
    
         
            -
                  return unless @@ 
     | 
| 
      
 231 
     | 
    
         
            +
                  return unless @@mouse_inner
         
     | 
| 
       229 
232 
     | 
    
         
             
                  click_mouse_button(:click, e.button)
         
     | 
| 
       230 
233 
     | 
    
         
             
                  set_mouse_button(:drag, e.button)
         
     | 
| 
       231 
234 
     | 
    
         
             
                  @@mouse[:drag][:x] = @@mouse[:pos][:x]
         
     | 
| 
         @@ -249,8 +252,20 @@ module Miyako 
     | 
|
| 
       249 
252 
     | 
    
         
             
                end
         
     | 
| 
       250 
253 
     | 
    
         | 
| 
       251 
254 
     | 
    
         
             
                def Input::process_active(e) #:nodoc:
         
     | 
| 
       252 
     | 
    
         
            -
                   
     | 
| 
       253 
     | 
    
         
            -
             
     | 
| 
      
 255 
     | 
    
         
            +
                  if e.state & 1 == 1
         
     | 
| 
      
 256 
     | 
    
         
            +
                    return unless @@enable_mouse
         
     | 
| 
      
 257 
     | 
    
         
            +
                    @@mouse[:inner] = true
         
     | 
| 
      
 258 
     | 
    
         
            +
                    @@mouse_inner = e.gain
         
     | 
| 
      
 259 
     | 
    
         
            +
                  end
         
     | 
| 
      
 260 
     | 
    
         
            +
                  if e.state & 2 == 2
         
     | 
| 
      
 261 
     | 
    
         
            +
                    @@mouse[:focus] = true
         
     | 
| 
      
 262 
     | 
    
         
            +
                    @@key_focus = e.gain
         
     | 
| 
      
 263 
     | 
    
         
            +
                    [:left, :middle, :right].each{|key| @@mouse[:click][key] = false }
         
     | 
| 
      
 264 
     | 
    
         
            +
                  end
         
     | 
| 
      
 265 
     | 
    
         
            +
                  if e.state & 4 == 4
         
     | 
| 
      
 266 
     | 
    
         
            +
                    @@mouse[:mini] = true
         
     | 
| 
      
 267 
     | 
    
         
            +
                    @@app_minimize = !e.gain
         
     | 
| 
      
 268 
     | 
    
         
            +
                  end
         
     | 
| 
       254 
269 
     | 
    
         
             
                end
         
     | 
| 
       255 
270 
     | 
    
         | 
| 
       256 
271 
     | 
    
         
             
                def Input::process_default(e) #:nodoc:
         
     | 
| 
         @@ -297,6 +312,9 @@ module Miyako 
     | 
|
| 
       297 
312 
     | 
    
         
             
                    @@mouse[:click][e] = false
         
     | 
| 
       298 
313 
     | 
    
         
             
                    @@mouse[:drop][e] = false
         
     | 
| 
       299 
314 
     | 
    
         
             
                  }
         
     | 
| 
      
 315 
     | 
    
         
            +
                  @@mouse[:inner] = false
         
     | 
| 
      
 316 
     | 
    
         
            +
                  @@mouse[:focus] = false
         
     | 
| 
      
 317 
     | 
    
         
            +
                  @@mouse[:mini] = false
         
     | 
| 
       300 
318 
     | 
    
         
             
                  e_list = []
         
     | 
| 
       301 
319 
     | 
    
         
             
                  while e = SDL::Event2.poll
         
     | 
| 
       302 
320 
     | 
    
         
             
                    e_list << e
         
     | 
| 
         @@ -311,6 +329,15 @@ module Miyako 
     | 
|
| 
       311 
329 
     | 
    
         
             
                  }
         
     | 
| 
       312 
330 
     | 
    
         
             
                end
         
     | 
| 
       313 
331 
     | 
    
         | 
| 
      
 332 
     | 
    
         
            +
                def Input::after_exec
         
     | 
| 
      
 333 
     | 
    
         
            +
                  x = @@mouse[:pos][:x]
         
     | 
| 
      
 334 
     | 
    
         
            +
                  y = @@mouse[:pos][:y]
         
     | 
| 
      
 335 
     | 
    
         
            +
                  if (@@mouse[:click][:left] or @@mouse[:click][:middle] or @@mouse[:click][:right]) and !@@key_focus and x>=0 and x<Screen.w and y>=0 and y<Screen.h
         
     | 
| 
      
 336 
     | 
    
         
            +
                    @@key_focus = true
         
     | 
| 
      
 337 
     | 
    
         
            +
                    [:left, :middle, :right].each{|key| @@mouse[:click][key] = false }
         
     | 
| 
      
 338 
     | 
    
         
            +
                  end
         
     | 
| 
      
 339 
     | 
    
         
            +
                end
         
     | 
| 
      
 340 
     | 
    
         
            +
             
     | 
| 
       314 
341 
     | 
    
         
             
                #===指定のボタンがすべて押下状態かを問い合わせるメソッド
         
     | 
| 
       315 
342 
     | 
    
         
             
                #_inputs_:: ボタンを示すシンボル。複数指定可能
         
     | 
| 
       316 
343 
     | 
    
         
             
                #((例)Input.trigger_all?(:btn1, :btn2) #ボタン1とボタン2が押されている)
         
     | 
| 
         @@ -414,6 +441,22 @@ module Miyako 
     | 
|
| 
       414 
441 
     | 
    
         
             
                  return Point.new(@@mouse[:pos][:x],@@mouse[:pos][:y])
         
     | 
| 
       415 
442 
     | 
    
         
             
                end
         
     | 
| 
       416 
443 
     | 
    
         | 
| 
      
 444 
     | 
    
         
            +
                def Input::mouse_x
         
     | 
| 
      
 445 
     | 
    
         
            +
                  return @@enable_mouse ? @@mouse[:pos][:x] : -1
         
     | 
| 
      
 446 
     | 
    
         
            +
                end
         
     | 
| 
      
 447 
     | 
    
         
            +
             
     | 
| 
      
 448 
     | 
    
         
            +
                def Input::mouse_y
         
     | 
| 
      
 449 
     | 
    
         
            +
                  return @@enable_mouse ? @@mouse[:pos][:y] : -1
         
     | 
| 
      
 450 
     | 
    
         
            +
                end
         
     | 
| 
      
 451 
     | 
    
         
            +
             
     | 
| 
      
 452 
     | 
    
         
            +
                def Input::mouse_dx
         
     | 
| 
      
 453 
     | 
    
         
            +
                  return @@enable_mouse ? @@mouse[:pos][:dx] : 0
         
     | 
| 
      
 454 
     | 
    
         
            +
                end
         
     | 
| 
      
 455 
     | 
    
         
            +
             
     | 
| 
      
 456 
     | 
    
         
            +
                def Input::mouse_dy
         
     | 
| 
      
 457 
     | 
    
         
            +
                  return @@enable_mouse ? @@mouse[:pos][:dy] : 0
         
     | 
| 
      
 458 
     | 
    
         
            +
                end
         
     | 
| 
      
 459 
     | 
    
         
            +
             
     | 
| 
       417 
460 
     | 
    
         
             
                #===マウスの移動量を取得する
         
     | 
| 
       418 
461 
     | 
    
         
             
                #求める値は、{:x=>n,:y=>n}で示すハッシュとする
         
     | 
| 
       419 
462 
     | 
    
         
             
                #移動量は、右下方向を正とする
         
     | 
| 
         @@ -498,10 +541,41 @@ module Miyako 
     | 
|
| 
       498 
541 
     | 
    
         
             
                #===マウスカーソルが画面の内側に有るかどうかを問い合わせる
         
     | 
| 
       499 
542 
     | 
    
         
             
                #返却値:: マウスカーソルが画面内ならtrueを返す
         
     | 
| 
       500 
543 
     | 
    
         
             
                def Input::mouse_cursor_inner?
         
     | 
| 
      
 544 
     | 
    
         
            +
                  return false unless @@enable_mouse
         
     | 
| 
      
 545 
     | 
    
         
            +
                  return @@mouse_inner
         
     | 
| 
      
 546 
     | 
    
         
            +
                end
         
     | 
| 
      
 547 
     | 
    
         
            +
             
     | 
| 
      
 548 
     | 
    
         
            +
                #===マウスカーソルが画面の内側に有るかどうかを問い合わせる
         
     | 
| 
      
 549 
     | 
    
         
            +
                #返却値:: マウスカーソルが画面内ならtrueを返す
         
     | 
| 
      
 550 
     | 
    
         
            +
                def Input::key_focus?
         
     | 
| 
      
 551 
     | 
    
         
            +
                  return @@key_focus
         
     | 
| 
      
 552 
     | 
    
         
            +
                end
         
     | 
| 
      
 553 
     | 
    
         
            +
             
     | 
| 
      
 554 
     | 
    
         
            +
                #===マウスカーソルが画面の内側に有るかどうかを問い合わせる
         
     | 
| 
      
 555 
     | 
    
         
            +
                #返却値:: マウスカーソルが画面内ならtrueを返す
         
     | 
| 
      
 556 
     | 
    
         
            +
                def Input::window_minimize?
         
     | 
| 
      
 557 
     | 
    
         
            +
                  return @@app_minimize
         
     | 
| 
      
 558 
     | 
    
         
            +
                end
         
     | 
| 
      
 559 
     | 
    
         
            +
             
     | 
| 
      
 560 
     | 
    
         
            +
                #===マウスカーソルが画面の内側に有るかどうかを問い合わせる
         
     | 
| 
      
 561 
     | 
    
         
            +
                #返却値:: マウスカーソルが画面内ならtrueを返す
         
     | 
| 
      
 562 
     | 
    
         
            +
                def Input::mouse_cursor_inner_change?
         
     | 
| 
       501 
563 
     | 
    
         
             
                  return false unless @@enable_mouse
         
     | 
| 
       502 
564 
     | 
    
         
             
                  return @@mouse[:inner]
         
     | 
| 
       503 
565 
     | 
    
         
             
                end
         
     | 
| 
       504 
566 
     | 
    
         | 
| 
      
 567 
     | 
    
         
            +
                #===マウスカーソルが画面の内側に有るかどうかを問い合わせる
         
     | 
| 
      
 568 
     | 
    
         
            +
                #返却値:: マウスカーソルが画面内ならtrueを返す
         
     | 
| 
      
 569 
     | 
    
         
            +
                def Input::key_focus_change?
         
     | 
| 
      
 570 
     | 
    
         
            +
                  return @@mouse[:focus]
         
     | 
| 
      
 571 
     | 
    
         
            +
                end
         
     | 
| 
      
 572 
     | 
    
         
            +
             
     | 
| 
      
 573 
     | 
    
         
            +
                #===マウスカーソルが画面の内側に有るかどうかを問い合わせる
         
     | 
| 
      
 574 
     | 
    
         
            +
                #返却値:: マウスカーソルが画面内ならtrueを返す
         
     | 
| 
      
 575 
     | 
    
         
            +
                def Input::window_minimize_change?
         
     | 
| 
      
 576 
     | 
    
         
            +
                  return @@mouse[:mini]
         
     | 
| 
      
 577 
     | 
    
         
            +
                end
         
     | 
| 
      
 578 
     | 
    
         
            +
             
     | 
| 
       505 
579 
     | 
    
         
             
                #===Alt+Enterキーを押したときにフル・ウィンドウモード切り替えの可否を切り替える
         
     | 
| 
       506 
580 
     | 
    
         
             
                def Input::enable_toggle_screen_mode
         
     | 
| 
       507 
581 
     | 
    
         
             
                  @@toggle_screen_mode = true
         
     | 
| 
         @@ -517,5 +591,13 @@ module Miyako 
     | 
|
| 
       517 
591 
     | 
    
         
             
                def Input::toggle_screen_mode?
         
     | 
| 
       518 
592 
     | 
    
         
             
                  return @@toggle_screen_mode
         
     | 
| 
       519 
593 
     | 
    
         
             
                end
         
     | 
| 
      
 594 
     | 
    
         
            +
             
     | 
| 
      
 595 
     | 
    
         
            +
                def Input::btn_state
         
     | 
| 
      
 596 
     | 
    
         
            +
                  @@btn
         
     | 
| 
      
 597 
     | 
    
         
            +
                end
         
     | 
| 
      
 598 
     | 
    
         
            +
             
     | 
| 
      
 599 
     | 
    
         
            +
                def Input::mouse_state
         
     | 
| 
      
 600 
     | 
    
         
            +
                  @@mouse
         
     | 
| 
      
 601 
     | 
    
         
            +
                end
         
     | 
| 
       520 
602 
     | 
    
         
             
              end
         
     | 
| 
       521 
603 
     | 
    
         
             
            end
         
     | 
    
        data/lib/Miyako/API/textbox.rb
    CHANGED
    
    | 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # -*- encoding: utf-8 -*-
         
     | 
| 
      
 1 
     | 
    
         
            +
            # -*- encoding: utf-8 -*-
         
     | 
| 
       2 
2 
     | 
    
         
             
            =begin
         
     | 
| 
       3 
3 
     | 
    
         
             
            --
         
     | 
| 
       4 
4 
     | 
    
         
             
            Miyako v2.1
         
     | 
| 
         @@ -592,11 +592,16 @@ module Miyako 
     | 
|
| 
       592 
592 
     | 
    
         
             
                    end
         
     | 
| 
       593 
593 
     | 
    
         
             
                  else
         
     | 
| 
       594 
594 
     | 
    
         
             
                    @choices.non_select if @pre_attach
         
     | 
| 
      
 595 
     | 
    
         
            +
                    @select_cursor.snap(@choices.body) if @select_cursor
         
     | 
| 
       595 
596 
     | 
    
         
             
                  end
         
     | 
| 
       596 
597 
     | 
    
         
             
                  @pre_attach = attach
         
     | 
| 
       597 
598 
     | 
    
         
             
                  return self
         
     | 
| 
       598 
599 
     | 
    
         
             
                end
         
     | 
| 
       599 
600 
     | 
    
         | 
| 
      
 601 
     | 
    
         
            +
                def attach_cursor?
         
     | 
| 
      
 602 
     | 
    
         
            +
                  @choices.attach?(Input.mouse_x, Input.mouse_y)
         
     | 
| 
      
 603 
     | 
    
         
            +
                end
         
     | 
| 
      
 604 
     | 
    
         
            +
             
     | 
| 
       600 
605 
     | 
    
         
             
                #===マウスカーソルの位置にコマンドがあるかどうかを問い合わせる
         
     | 
| 
       601 
606 
     | 
    
         
             
                #マウスカーソルがどれかのコマンドの上にあるときはtrue、どれにも当たっていないときはfalseを返す
         
     | 
| 
       602 
607 
     | 
    
         
             
                #_x_:: マウスカーソルの位置(x軸方向)
         
     | 
    
        data/lib/Miyako/API/utility.rb
    CHANGED
    
    | 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # -*- encoding: utf-8 -*-
         
     | 
| 
      
 1 
     | 
    
         
            +
            # -*- encoding: utf-8 -*-
         
     | 
| 
       2 
2 
     | 
    
         
             
            =begin
         
     | 
| 
       3 
3 
     | 
    
         
             
            --
         
     | 
| 
       4 
4 
     | 
    
         
             
            Miyako v2.1
         
     | 
| 
         @@ -45,17 +45,11 @@ module Miyako 
     | 
|
| 
       45 
45 
     | 
    
         
             
                  return steps
         
     | 
| 
       46 
46 
     | 
    
         
             
                end
         
     | 
| 
       47 
47 
     | 
    
         | 
| 
       48 
     | 
    
         
            -
                def Utility. 
     | 
| 
       49 
     | 
    
         
            -
                   
     | 
| 
       50 
     | 
    
         
            -
                   
     | 
| 
       51 
     | 
    
         
            -
                   
     | 
| 
       52 
     | 
    
         
            -
                   
     | 
| 
       53 
     | 
    
         
            -
                  dy = y2 - y1
         
     | 
| 
       54 
     | 
    
         
            -
                  a = dx < Float::EPSILON ? dy.to_f : dy.to_f / dx.to_f
         
     | 
| 
       55 
     | 
    
         
            -
                  b = y1.to_f - a * x1.to_f
         
     | 
| 
       56 
     | 
    
         
            -
                  array = [[x1,y1] , [x2,y2]] + step_x.map{|x| [x, (a * x.to_f + b).to_i]}
         
     | 
| 
       57 
     | 
    
         
            -
                  array += step_y.map{|y| [((y.to_f - b) / a).to_i, y]} if (a.abs >= Float::EPSILON)
         
     | 
| 
       58 
     | 
    
         
            -
                  return array.uniq
         
     | 
| 
      
 48 
     | 
    
         
            +
                def Utility.product_liner_xy_f(x1, y1, x2, y2, amount)
         
     | 
| 
      
 49 
     | 
    
         
            +
                  distance = Utility.interval2(x1,y1,x2,y2)
         
     | 
| 
      
 50 
     | 
    
         
            +
                  degree = Utility.radian2(x1,y1,x2,y2,distance)
         
     | 
| 
      
 51 
     | 
    
         
            +
                  cos, sin = Math.cos(degree), Math.sin(degree)
         
     | 
| 
      
 52 
     | 
    
         
            +
                  (0..distance).step(amount).with_object([]){|n, arr| arr << [x1 + n * cos, y1 + n * sin]} << [x2,y2]
         
     | 
| 
       59 
53 
     | 
    
         
             
                end
         
     | 
| 
       60 
54 
     | 
    
         | 
| 
       61 
55 
     | 
    
         
             
                #===矩形内の対角線の座標リストを実数で取得する
         
     | 
| 
         @@ -77,7 +71,7 @@ module Miyako 
     | 
|
| 
       77 
71 
     | 
    
         
             
                  y1 = rect[1]
         
     | 
| 
       78 
72 
     | 
    
         
             
                  x2 = x1 + rect[2] - 1
         
     | 
| 
       79 
73 
     | 
    
         
             
                  y2 = y1 + rect[3] - 1
         
     | 
| 
       80 
     | 
    
         
            -
                  return  
     | 
| 
      
 74 
     | 
    
         
            +
                  return product_liner_xy_f(x1, y1, x2, y2, amount)
         
     | 
| 
       81 
75 
     | 
    
         
             
                end
         
     | 
| 
       82 
76 
     | 
    
         | 
| 
       83 
77 
     | 
    
         
             
                #===矩形内の対角線の座標リストを実数で取得する
         
     | 
| 
         @@ -95,29 +89,16 @@ module Miyako 
     | 
|
| 
       95 
89 
     | 
    
         
             
                def Utility.product_liner_by_square_f(square, amount = 1.0)
         
     | 
| 
       96 
90 
     | 
    
         
             
                  raise MiyakoValueError, "Illegal amount! #{amount}" if amount < Float::EPSILON
         
     | 
| 
       97 
91 
     | 
    
         
             
                  return [] if (square[2] - square[0]) < Float::EPSILON || (square[3] - square[1]) < Float::EPSILON
         
     | 
| 
       98 
     | 
    
         
            -
                  return  
     | 
| 
      
 92 
     | 
    
         
            +
                  return product_liner_xy_f(*square, amount)
         
     | 
| 
       99 
93 
     | 
    
         
             
                end
         
     | 
| 
       100 
94 
     | 
    
         | 
| 
       101 
     | 
    
         
            -
                 
     | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
       103 
     | 
    
         
            -
             
     | 
| 
       104 
     | 
    
         
            -
                   
     | 
| 
       105 
     | 
    
         
            -
                   
     | 
| 
       106 
     | 
    
         
            -
                   
     | 
| 
       107 
     | 
    
         
            -
                   
     | 
| 
       108 
     | 
    
         
            -
                  if [x1, y1, x2, y2, amount].all?{|v| v.methods.include?(:step)}
         
     | 
| 
       109 
     | 
    
         
            -
                    step_x = x1 < x2 ? x1.step(x2, amount).to_a : x1.step(x2, -amount).to_a
         
     | 
| 
       110 
     | 
    
         
            -
                    step_y = y1 < y2 ? y1.step(y2, amount).to_a : y1.step(y2, -amount).to_a
         
     | 
| 
       111 
     | 
    
         
            -
                    a = dx == 0 ? dy.to_f : dy.to_f / dx.to_f
         
     | 
| 
       112 
     | 
    
         
            -
                  else
         
     | 
| 
       113 
     | 
    
         
            -
                    step_x = get_step_array_f(x1, x2, amount)
         
     | 
| 
       114 
     | 
    
         
            -
                    step_y = get_step_array_f(y1, y2, amount)
         
     | 
| 
       115 
     | 
    
         
            -
                    a = dx < Float::EPSILON ? dy.to_f : dy.to_f / dx.to_f
         
     | 
| 
       116 
     | 
    
         
            -
                  end
         
     | 
| 
       117 
     | 
    
         
            -
                  b = y1.to_f - a * x1.to_f
         
     | 
| 
       118 
     | 
    
         
            -
                  array = [[x1,y1] , [x2,y2]] + step_x.map{|x| [x, (a * x.to_f + b).to_i]}
         
     | 
| 
       119 
     | 
    
         
            -
                  array += step_y.map{|y| [((y.to_f - b) / a).to_i, y]} if (a.abs >= Float::EPSILON)
         
     | 
| 
       120 
     | 
    
         
            -
                  return array.uniq
         
     | 
| 
      
 95 
     | 
    
         
            +
                # ToDo: 線形補完を使う
         
     | 
| 
      
 96 
     | 
    
         
            +
                # -> 使った(2010.06.20)
         
     | 
| 
      
 97 
     | 
    
         
            +
                def Utility.product_liner_xy(x1, y1, x2, y2, amount) #:nodoc:
         
     | 
| 
      
 98 
     | 
    
         
            +
                  distance = Utility.interval2(x1,y1,x2,y2)
         
     | 
| 
      
 99 
     | 
    
         
            +
                  degree = Utility.radian2(x1,y1,x2,y2,distance)
         
     | 
| 
      
 100 
     | 
    
         
            +
                  cos, sin = Math.cos(degree), Math.sin(degree)
         
     | 
| 
      
 101 
     | 
    
         
            +
                  (0..distance).step(amount).with_object([]){|n, arr| arr << [x1+(n*cos).to_i, y1+(n*sin).to_i]} << [x2,y2]
         
     | 
| 
       121 
102 
     | 
    
         
             
                end
         
     | 
| 
       122 
103 
     | 
    
         | 
| 
       123 
104 
     | 
    
         
             
                #===矩形内の対角線の座標リストを取得する
         
     | 
| 
         @@ -138,7 +119,7 @@ module Miyako 
     | 
|
| 
       138 
119 
     | 
    
         
             
                  y1 = rect[1]
         
     | 
| 
       139 
120 
     | 
    
         
             
                  x2 = x1 + rect[2] - 1
         
     | 
| 
       140 
121 
     | 
    
         
             
                  y2 = y1 + rect[3] - 1
         
     | 
| 
       141 
     | 
    
         
            -
                  return  
     | 
| 
      
 122 
     | 
    
         
            +
                  return product_liner_xy(x1, y1, x2, y2, amount)
         
     | 
| 
       142 
123 
     | 
    
         
             
                end
         
     | 
| 
       143 
124 
     | 
    
         | 
| 
       144 
125 
     | 
    
         
             
                #===矩形内の対角線の座標リストを取得する
         
     | 
| 
         @@ -155,7 +136,7 @@ module Miyako 
     | 
|
| 
       155 
136 
     | 
    
         
             
                def Utility.product_liner_by_square(square, amount = 1)
         
     | 
| 
       156 
137 
     | 
    
         
             
                  raise MiyakoValueError, "Illegal amount! #{amount}" if amount <= 0
         
     | 
| 
       157 
138 
     | 
    
         
             
                  return [] if (square[2] - square[0]) == 0 || (square[3] - square[1]) == 0
         
     | 
| 
       158 
     | 
    
         
            -
                  return  
     | 
| 
      
 139 
     | 
    
         
            +
                  return product_liner_xy(*square, amount)
         
     | 
| 
       159 
140 
     | 
    
         
             
                end
         
     | 
| 
       160 
141 
     | 
    
         | 
| 
       161 
142 
     | 
    
         
             
                def Utility.product_inner(x1, y1, x2, y2, size) #:nodoc:
         
     | 
| 
         @@ -244,22 +225,111 @@ module Miyako 
     | 
|
| 
       244 
225 
     | 
    
         
             
                  return d < Float::EPSILON ? 0.0 : d
         
     | 
| 
       245 
226 
     | 
    
         
             
                end
         
     | 
| 
       246 
227 
     | 
    
         | 
| 
      
 228 
     | 
    
         
            +
                #===2点間の距離を算出する
         
     | 
| 
      
 229 
     | 
    
         
            +
                # 2点(点1、点2)がどの程度離れているかを算出する。
         
     | 
| 
      
 230 
     | 
    
         
            +
                # 返ってくる値は、正の実数で返ってくる
         
     | 
| 
      
 231 
     | 
    
         
            +
                #_x1_:: 点1の位置(x)
         
     | 
| 
      
 232 
     | 
    
         
            +
                #_y1_:: 点1の位置(y)
         
     | 
| 
      
 233 
     | 
    
         
            +
                #_x2_:: 点2の位置(x)
         
     | 
| 
      
 234 
     | 
    
         
            +
                #_y2_:: 点2の位置(y)
         
     | 
| 
      
 235 
     | 
    
         
            +
                #返却値:: 2点間の距離
         
     | 
| 
      
 236 
     | 
    
         
            +
                def Utility.interval2(x1, y1, x2, y2)
         
     | 
| 
      
 237 
     | 
    
         
            +
                  #2点間の距離を求める
         
     | 
| 
      
 238 
     | 
    
         
            +
                  d = Math.sqrt(((x1.to_f - x2.to_f) ** 2) +
         
     | 
| 
      
 239 
     | 
    
         
            +
                                ((y1.to_f - y2.to_f) ** 2))
         
     | 
| 
      
 240 
     | 
    
         
            +
                  return d < Float::EPSILON ? 0.0 : d
         
     | 
| 
      
 241 
     | 
    
         
            +
                end
         
     | 
| 
      
 242 
     | 
    
         
            +
             
     | 
| 
      
 243 
     | 
    
         
            +
                #===2点間の傾きを角度で算出する
         
     | 
| 
      
 244 
     | 
    
         
            +
                # 2点(点1、点2)がどの程度傾いているか算出する。傾きの中心は点1とする。
         
     | 
| 
      
 245 
     | 
    
         
            +
                # 角度の単位は度(0.0<=θ<360.0)
         
     | 
| 
      
 246 
     | 
    
         
            +
                # 返ってくる値は、正の実数で返ってくる
         
     | 
| 
      
 247 
     | 
    
         
            +
                #_point1_:: 点1の位置(Point/Rect/Square構造体、2要素以上の配列、もしくはx,yメソッドを持つインスタンス)
         
     | 
| 
      
 248 
     | 
    
         
            +
                #_point2_:: 点2の位置(Point/Rect/Square構造体、2要素以上の配列、もしくはx,yメソッドを持つインスタンス)
         
     | 
| 
      
 249 
     | 
    
         
            +
                #返却値:: 2点間の傾き
         
     | 
| 
      
 250 
     | 
    
         
            +
                def Utility.theta(point1, point2, distance = nil)
         
     | 
| 
      
 251 
     | 
    
         
            +
                  theta = (Utility.radian(point1,point2,distance) / (2 * Math::PI)) * 360.0
         
     | 
| 
      
 252 
     | 
    
         
            +
                  return theta < Float::EPSILON ? 0.0 : theta
         
     | 
| 
      
 253 
     | 
    
         
            +
                end
         
     | 
| 
      
 254 
     | 
    
         
            +
             
     | 
| 
       247 
255 
     | 
    
         
             
                #===2点間の傾きを角度で算出する
         
     | 
| 
       248 
256 
     | 
    
         
             
                # 2点(点1、点2)がどの程度傾いているか算出する。傾きの中心は点1とする。
         
     | 
| 
       249 
257 
     | 
    
         
             
                # 角度の単位は度(0.0<=θ<360.0)
         
     | 
| 
       250 
258 
     | 
    
         
             
                # 返ってくる値は、正の実数で返ってくる
         
     | 
| 
      
 259 
     | 
    
         
            +
                #_x1_:: 点1の位置(x)
         
     | 
| 
      
 260 
     | 
    
         
            +
                #_y1_:: 点1の位置(y)
         
     | 
| 
      
 261 
     | 
    
         
            +
                #_x2_:: 点2の位置(x)
         
     | 
| 
      
 262 
     | 
    
         
            +
                #_y2_:: 点2の位置(y)
         
     | 
| 
      
 263 
     | 
    
         
            +
                #返却値:: 2点間の傾き
         
     | 
| 
      
 264 
     | 
    
         
            +
                def Utility.theta2(x1, y1, x2, y2, distance = nil)
         
     | 
| 
      
 265 
     | 
    
         
            +
                  theta = (Utility.radian2(x1,y1,x2,y2,distance) / (2 * Math::PI)) * 360.0
         
     | 
| 
      
 266 
     | 
    
         
            +
                  return theta < Float::EPSILON ? 0.0 : theta
         
     | 
| 
      
 267 
     | 
    
         
            +
                end
         
     | 
| 
      
 268 
     | 
    
         
            +
             
     | 
| 
      
 269 
     | 
    
         
            +
                #===2点間の傾きをラジアンで算出する
         
     | 
| 
      
 270 
     | 
    
         
            +
                # 2点(点1、点2)がどの程度傾いているか算出する。傾きの中心は点1とする。
         
     | 
| 
      
 271 
     | 
    
         
            +
                # 角度の単位は度(0.0<=θ<360.0)
         
     | 
| 
      
 272 
     | 
    
         
            +
                # 返ってくる値は、正の実数で返ってくる
         
     | 
| 
       251 
273 
     | 
    
         
             
                #_point1_:: 点1の位置(Point/Rect/Square構造体、2要素以上の配列、もしくはx,yメソッドを持つインスタンス)
         
     | 
| 
       252 
274 
     | 
    
         
             
                #_point2_:: 点2の位置(Point/Rect/Square構造体、2要素以上の配列、もしくはx,yメソッドを持つインスタンス)
         
     | 
| 
       253 
275 
     | 
    
         
             
                #返却値:: 2点間の傾き
         
     | 
| 
       254 
     | 
    
         
            -
                def Utility. 
     | 
| 
      
 276 
     | 
    
         
            +
                def Utility.radian(point1, point2, distance = nil)
         
     | 
| 
       255 
277 
     | 
    
         
             
                  #2点間の距離を求める
         
     | 
| 
       256 
     | 
    
         
            -
                  d = Math.sqrt(((point1[0].to_f - point2[0].to_f) ** 2) +
         
     | 
| 
       257 
     | 
    
         
            -
             
     | 
| 
       258 
     | 
    
         
            -
                  x = point2[0].to_f -  
     | 
| 
      
 278 
     | 
    
         
            +
                  d = distance || Math.sqrt(((point1[0].to_f - point2[0].to_f) ** 2) +
         
     | 
| 
      
 279 
     | 
    
         
            +
                                            ((point1[1].to_f - point2[1].to_f) ** 2))
         
     | 
| 
      
 280 
     | 
    
         
            +
                  x = point2[0].to_f - point1[0].to_f
         
     | 
| 
       259 
281 
     | 
    
         
             
                  # 傾き・幅が0のときは傾きは0度
         
     | 
| 
       260 
282 
     | 
    
         
             
                  return 0.0 if (x.abs < Float::EPSILON or d < Float::EPSILON)
         
     | 
| 
       261 
     | 
    
         
            -
                  theta =  
     | 
| 
       262 
     | 
    
         
            -
                  return theta < Float::EPSILON ? 0.0 : theta
         
     | 
| 
      
 283 
     | 
    
         
            +
                  theta = Math.acos(x / d)
         
     | 
| 
      
 284 
     | 
    
         
            +
                  return theta < Float::EPSILON ? 0.0 : (point2[1]-point1[1]<0 ? 2*Math::PI-theta : theta)
         
     | 
| 
      
 285 
     | 
    
         
            +
                end
         
     | 
| 
      
 286 
     | 
    
         
            +
             
     | 
| 
      
 287 
     | 
    
         
            +
                #===2点間の傾きをラジアンで算出する
         
     | 
| 
      
 288 
     | 
    
         
            +
                # 2点(点1、点2)がどの程度傾いているか算出する。傾きの中心は点1とする。
         
     | 
| 
      
 289 
     | 
    
         
            +
                # 角度の単位は度(0.0<=θ<360.0)
         
     | 
| 
      
 290 
     | 
    
         
            +
                # 返ってくる値は、正の実数で返ってくる
         
     | 
| 
      
 291 
     | 
    
         
            +
                #_x1_:: 点1の位置(x)
         
     | 
| 
      
 292 
     | 
    
         
            +
                #_y1_:: 点1の位置(y)
         
     | 
| 
      
 293 
     | 
    
         
            +
                #_x2_:: 点2の位置(x)
         
     | 
| 
      
 294 
     | 
    
         
            +
                #_y2_:: 点2の位置(y)
         
     | 
| 
      
 295 
     | 
    
         
            +
                #返却値:: 2点間の傾き
         
     | 
| 
      
 296 
     | 
    
         
            +
                def Utility.radian2(x1, y1, x2, y2, distance = nil)
         
     | 
| 
      
 297 
     | 
    
         
            +
                  #2点間の距離を求める
         
     | 
| 
      
 298 
     | 
    
         
            +
                  d = distance || Math.sqrt(((x1.to_f - x2.to_f) ** 2) +
         
     | 
| 
      
 299 
     | 
    
         
            +
                                            ((y1.to_f - y2.to_f) ** 2))
         
     | 
| 
      
 300 
     | 
    
         
            +
                  x = x2.to_f - x1.to_f
         
     | 
| 
      
 301 
     | 
    
         
            +
                  # 傾き・幅が0のときは傾きは0度
         
     | 
| 
      
 302 
     | 
    
         
            +
                  return 0.0 if (x.abs < Float::EPSILON or d < Float::EPSILON)
         
     | 
| 
      
 303 
     | 
    
         
            +
                  theta = Math.acos(x / d)
         
     | 
| 
      
 304 
     | 
    
         
            +
                  return theta < Float::EPSILON ? 0.0 : (y2-y1<0 ? 2*Math::PI-theta : theta)
         
     | 
| 
      
 305 
     | 
    
         
            +
                end
         
     | 
| 
      
 306 
     | 
    
         
            +
             
     | 
| 
      
 307 
     | 
    
         
            +
                #===2点間の傾きを角度で算出する
         
     | 
| 
      
 308 
     | 
    
         
            +
                # 2点(点1、点2)がどの程度傾いているか算出する。傾きの中心は点1とする。
         
     | 
| 
      
 309 
     | 
    
         
            +
                # 角度の単位は度(0.0<=θ<360.0)
         
     | 
| 
      
 310 
     | 
    
         
            +
                # 返ってくる値は、正の実数で返ってくる
         
     | 
| 
      
 311 
     | 
    
         
            +
                #_point1_:: 点1の位置(Point/Rect/Square構造体、2要素以上の配列、もしくはx,yメソッドを持つインスタンス)
         
     | 
| 
      
 312 
     | 
    
         
            +
                #_point2_:: 点2の位置(Point/Rect/Square構造体、2要素以上の配列、もしくはx,yメソッドを持つインスタンス)
         
     | 
| 
      
 313 
     | 
    
         
            +
                #返却値:: 2点間の傾き
         
     | 
| 
      
 314 
     | 
    
         
            +
                def Utility.degree(point1, point2)
         
     | 
| 
      
 315 
     | 
    
         
            +
                  return 0.0 if (point2[0].to_f-point1[0].to_f < Float::EPSILON)
         
     | 
| 
      
 316 
     | 
    
         
            +
                  degree = (point2[1]-point1[1]).to_f/(point2[0]-point1[0]).to_f
         
     | 
| 
      
 317 
     | 
    
         
            +
                  return degree < Float::EPSILON ? 0.0 : degree
         
     | 
| 
      
 318 
     | 
    
         
            +
                end
         
     | 
| 
      
 319 
     | 
    
         
            +
             
     | 
| 
      
 320 
     | 
    
         
            +
                #===2点間の傾きを角度で算出する
         
     | 
| 
      
 321 
     | 
    
         
            +
                # 2点(点1、点2)がどの程度傾いているか算出する。傾きの中心は点1とする。
         
     | 
| 
      
 322 
     | 
    
         
            +
                # 角度の単位は度(0.0<=θ<360.0)
         
     | 
| 
      
 323 
     | 
    
         
            +
                # 返ってくる値は、正の実数で返ってくる
         
     | 
| 
      
 324 
     | 
    
         
            +
                #_x1_:: 点1の位置(x)
         
     | 
| 
      
 325 
     | 
    
         
            +
                #_y1_:: 点1の位置(y)
         
     | 
| 
      
 326 
     | 
    
         
            +
                #_x2_:: 点2の位置(x)
         
     | 
| 
      
 327 
     | 
    
         
            +
                #_y2_:: 点2の位置(y)
         
     | 
| 
      
 328 
     | 
    
         
            +
                #返却値:: 2点間の傾き
         
     | 
| 
      
 329 
     | 
    
         
            +
                def Utility.degree2(x1, y1, x2, y2)
         
     | 
| 
      
 330 
     | 
    
         
            +
                  return 0.0 if (x2.to_f-x1[0].to_f < Float::EPSILON)
         
     | 
| 
      
 331 
     | 
    
         
            +
                  degree = (y2-y1).to_f/(x2-x1).to_f
         
     | 
| 
      
 332 
     | 
    
         
            +
                  return degree < Float::EPSILON ? 0.0 : degree
         
     | 
| 
       263 
333 
     | 
    
         
             
                end
         
     | 
| 
       264 
334 
     | 
    
         | 
| 
       265 
335 
     | 
    
         
             
                #===小線分を移動させたとき、大線分が範囲内かどうかを判別する
         
     | 
    
        data/lib/Miyako/API/yuki.rb
    CHANGED
    
    | 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # -*- encoding: utf-8 -*-
         
     | 
| 
      
 1 
     | 
    
         
            +
            # -*- encoding: utf-8 -*-
         
     | 
| 
       2 
2 
     | 
    
         
             
            =begin
         
     | 
| 
       3 
3 
     | 
    
         
             
            --
         
     | 
| 
       4 
4 
     | 
    
         
             
            Miyako v2.1
         
     | 
| 
         @@ -136,6 +136,18 @@ module Miyako 
     | 
|
| 
       136 
136 
     | 
    
         
             
                  end
         
     | 
| 
       137 
137 
     | 
    
         
             
                end
         
     | 
| 
       138 
138 
     | 
    
         | 
| 
      
 139 
     | 
    
         
            +
                #外部との共用変数を収めるところ
         
     | 
| 
      
 140 
     | 
    
         
            +
                @@common_use = {}
         
     | 
| 
      
 141 
     | 
    
         
            +
             
     | 
| 
      
 142 
     | 
    
         
            +
                def Yuki.[](key)
         
     | 
| 
      
 143 
     | 
    
         
            +
                  @@common_use[key]
         
     | 
| 
      
 144 
     | 
    
         
            +
                end
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
      
 146 
     | 
    
         
            +
                def Yuki.[]=(key, value)
         
     | 
| 
      
 147 
     | 
    
         
            +
                  @@common_use[key] = value
         
     | 
| 
      
 148 
     | 
    
         
            +
                  value
         
     | 
| 
      
 149 
     | 
    
         
            +
                end
         
     | 
| 
      
 150 
     | 
    
         
            +
                
         
     | 
| 
       139 
151 
     | 
    
         
             
                #===Yuki#update実行中に行わせる処理を実装するテンプレートメソッド
         
     | 
| 
       140 
152 
     | 
    
         
             
                #但し、メソッド本体は、update_inner=メソッドで設定する必要がある
         
     | 
| 
       141 
153 
     | 
    
         
             
                #_yuki_:: 実行中のYukiクラスインスタンス
         
     | 
| 
         @@ -164,6 +176,7 @@ module Miyako 
     | 
|
| 
       164 
176 
     | 
    
         
             
                def update_clear(yuki)
         
     | 
| 
       165 
177 
     | 
    
         
             
                end
         
     | 
| 
       166 
178 
     | 
    
         | 
| 
      
 179 
     | 
    
         
            +
                attr_reader :common_use
         
     | 
| 
       167 
180 
     | 
    
         
             
                attr_accessor :visible
         
     | 
| 
       168 
181 
     | 
    
         
             
                attr_accessor :update_inner, :update_text, :update_cr, :update_clear
         
     | 
| 
       169 
182 
     | 
    
         
             
                attr_reader :valign, :visibles, :pre_visibles, :bgs
         
     | 
| 
         @@ -181,6 +194,9 @@ module Miyako 
     | 
|
| 
       181 
194 
     | 
    
         
             
                #(2)キャンセルボタンを押した?(true/false)
         
     | 
| 
       182 
195 
     | 
    
         
             
                #(3)キーパッドの移動量を示す配列([dx,dy])
         
     | 
| 
       183 
196 
     | 
    
         
             
                #(4)マウスの位置を示す配列([x,y])
         
     | 
| 
      
 197 
     | 
    
         
            +
                #<<(2.1.15-追加、省略可能)>>
         
     | 
| 
      
 198 
     | 
    
         
            +
                #(5)現在指しているコマンドは選択可能?(true/false)
         
     | 
| 
      
 199 
     | 
    
         
            +
                #(6)現在指しているコマンドの結果
         
     | 
| 
       184 
200 
     | 
    
         
             
                #callメソッドを持つブロックが使用可能。
         
     | 
| 
       185 
201 
     | 
    
         
             
                attr_reader :selecting_procs
         
     | 
| 
       186 
202 
     | 
    
         | 
| 
         @@ -304,6 +320,8 @@ module Miyako 
     | 
|
| 
       304 
320 
     | 
    
         
             
                  @now_page = nil
         
     | 
| 
       305 
321 
     | 
    
         
             
                  @first_page = nil
         
     | 
| 
       306 
322 
     | 
    
         | 
| 
      
 323 
     | 
    
         
            +
                  @common_use = {}
         
     | 
| 
      
 324 
     | 
    
         
            +
             
     | 
| 
       307 
325 
     | 
    
         
             
                  raise MiyakoProcError, "Argument count is not same block parameter count!" if proc && proc.arity.abs != params.length
         
     | 
| 
       308 
326 
     | 
    
         
             
                  instance_exec(*params, &proc) if block_given?
         
     | 
| 
       309 
327 
     | 
    
         
             
                end
         
     | 
| 
         @@ -429,6 +447,15 @@ module Miyako 
     | 
|
| 
       429 
447 
     | 
    
         
             
                  @over_yuki.update_animation if @over_yuki && @over_yuki.executing?
         
     | 
| 
       430 
448 
     | 
    
         
             
                end
         
     | 
| 
       431 
449 
     | 
    
         | 
| 
      
 450 
     | 
    
         
            +
                def [](key)
         
     | 
| 
      
 451 
     | 
    
         
            +
                  @common_use[key] || @@common_use[key]
         
     | 
| 
      
 452 
     | 
    
         
            +
                end
         
     | 
| 
      
 453 
     | 
    
         
            +
             
     | 
| 
      
 454 
     | 
    
         
            +
                def []=(key, value)
         
     | 
| 
      
 455 
     | 
    
         
            +
                  @common_use[key] = value
         
     | 
| 
      
 456 
     | 
    
         
            +
                  value
         
     | 
| 
      
 457 
     | 
    
         
            +
                end
         
     | 
| 
      
 458 
     | 
    
         
            +
                
         
     | 
| 
       432 
459 
     | 
    
         
             
                #===変数を参照する
         
     | 
| 
       433 
460 
     | 
    
         
             
                #[[Yukiスクリプトとして利用可能]]
         
     | 
| 
       434 
461 
     | 
    
         
             
                #変数の管理オブジェクトを、ハッシュとして参照する。
         
     | 
| 
         @@ -1019,6 +1046,32 @@ module Miyako 
     | 
|
| 
       1019 
1046 
     | 
    
         
             
                                     self.instance_exec(&plot_block)
         
     | 
| 
       1020 
1047 
     | 
    
         
             
                end
         
     | 
| 
       1021 
1048 
     | 
    
         | 
| 
      
 1049 
     | 
    
         
            +
                #===プロット処理中に別のプロットを呼び出す
         
     | 
| 
      
 1050 
     | 
    
         
            +
                #呼び出し可能なプロットは以下の2種類。(上から優先度が高い順)
         
     | 
| 
      
 1051 
     | 
    
         
            +
                #
         
     | 
| 
      
 1052 
     | 
    
         
            +
                #1)引数prot_proc(Procクラスのインスタンス)
         
     | 
| 
      
 1053 
     | 
    
         
            +
                #
         
     | 
| 
      
 1054 
     | 
    
         
            +
                #2)引数として渡したブロック
         
     | 
| 
      
 1055 
     | 
    
         
            +
                #
         
     | 
| 
      
 1056 
     | 
    
         
            +
                #_plot_proc_:: プロットの実行部をインスタンス化したオブジェクト
         
     | 
| 
      
 1057 
     | 
    
         
            +
                #返却値:: プロットの実行結果を返す
         
     | 
| 
      
 1058 
     | 
    
         
            +
                def call_plot_params(plot_proc, *params)
         
     | 
| 
      
 1059 
     | 
    
         
            +
                  return self.instance_exec(*params, &plot_proc)
         
     | 
| 
      
 1060 
     | 
    
         
            +
                end
         
     | 
| 
      
 1061 
     | 
    
         
            +
             
     | 
| 
      
 1062 
     | 
    
         
            +
                #===プロット処理中に別のプロットを呼び出す
         
     | 
| 
      
 1063 
     | 
    
         
            +
                #呼び出し可能なプロットは以下の2種類。(上から優先度が高い順)
         
     | 
| 
      
 1064 
     | 
    
         
            +
                #
         
     | 
| 
      
 1065 
     | 
    
         
            +
                #1)引数prot_proc(Procクラスのインスタンス)
         
     | 
| 
      
 1066 
     | 
    
         
            +
                #
         
     | 
| 
      
 1067 
     | 
    
         
            +
                #2)引数として渡したブロック
         
     | 
| 
      
 1068 
     | 
    
         
            +
                #
         
     | 
| 
      
 1069 
     | 
    
         
            +
                #_plot_proc_:: プロットの実行部をインスタンス化したオブジェクト
         
     | 
| 
      
 1070 
     | 
    
         
            +
                #返却値:: プロットの実行結果を返す
         
     | 
| 
      
 1071 
     | 
    
         
            +
                def call_plot_block(*params, &plot_block)
         
     | 
| 
      
 1072 
     | 
    
         
            +
                  return self.instance_exec(*params, &plot_block)
         
     | 
| 
      
 1073 
     | 
    
         
            +
                end
         
     | 
| 
      
 1074 
     | 
    
         
            +
             
     | 
| 
       1022 
1075 
     | 
    
         
             
                #===プロット処理が実行中かどうかを確認する
         
     | 
| 
       1023 
1076 
     | 
    
         
             
                #返却値:: プロット処理実行中の時はtrueを返す
         
     | 
| 
       1024 
1077 
     | 
    
         
             
                def executing?
         
     | 
| 
         @@ -1490,7 +1543,19 @@ module Miyako 
     | 
|
| 
       1490 
1543 
     | 
    
         
             
                  return unless @selecting
         
     | 
| 
       1491 
1544 
     | 
    
         
             
                  return unless @command_box.selecting?
         
     | 
| 
       1492 
1545 
     | 
    
         
             
                  @selecting_procs.each{|sp|
         
     | 
| 
       1493 
     | 
    
         
            -
                    sp. 
     | 
| 
      
 1546 
     | 
    
         
            +
                    case sp.arity
         
     | 
| 
      
 1547 
     | 
    
         
            +
                    when 6
         
     | 
| 
      
 1548 
     | 
    
         
            +
                      sp.call(
         
     | 
| 
      
 1549 
     | 
    
         
            +
                        @select_ok, @select_cansel,
         
     | 
| 
      
 1550 
     | 
    
         
            +
                        @select_amount, @mouse_amount,
         
     | 
| 
      
 1551 
     | 
    
         
            +
                        @command_box.enable_choice?, @command_box.result
         
     | 
| 
      
 1552 
     | 
    
         
            +
                      )
         
     | 
| 
      
 1553 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1554 
     | 
    
         
            +
                      sp.call(
         
     | 
| 
      
 1555 
     | 
    
         
            +
                        @select_ok, @select_cansel,
         
     | 
| 
      
 1556 
     | 
    
         
            +
                        @select_amount, @mouse_amount
         
     | 
| 
      
 1557 
     | 
    
         
            +
                      )
         
     | 
| 
      
 1558 
     | 
    
         
            +
                    end
         
     | 
| 
       1494 
1559 
     | 
    
         
             
                  }
         
     | 
| 
       1495 
1560 
     | 
    
         
             
                  if @select_ok
         
     | 
| 
       1496 
1561 
     | 
    
         
             
                    return @on_disable.each{|proc| proc.call} unless @command_box.enable_choice?
         
     | 
    
        data/lib/Miyako/miyako.rb
    CHANGED
    
    | 
         @@ -3,7 +3,7 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
            #=コンテンツ作成ライブラリMiyako2.1
         
     | 
| 
       4 
4 
     | 
    
         
             
            #
         
     | 
| 
       5 
5 
     | 
    
         
             
            #Authors:: サイロス誠
         
     | 
| 
       6 
     | 
    
         
            -
            #Version:: 2.1. 
     | 
| 
      
 6 
     | 
    
         
            +
            #Version:: 2.1.16
         
     | 
| 
       7 
7 
     | 
    
         
             
            #Copyright:: 2007-2010 Cyross Makoto
         
     | 
| 
       8 
8 
     | 
    
         
             
            #License:: LGPL2.1
         
     | 
| 
       9 
9 
     | 
    
         
             
            #
         
     | 
| 
         @@ -63,7 +63,7 @@ Thread.abort_on_exception = true 
     | 
|
| 
       63 
63 
     | 
    
         | 
| 
       64 
64 
     | 
    
         
             
            #==Miyako基幹モジュール
         
     | 
| 
       65 
65 
     | 
    
         
             
            module Miyako
         
     | 
| 
       66 
     | 
    
         
            -
              VERSION = "2.1. 
     | 
| 
      
 66 
     | 
    
         
            +
              VERSION = "2.1.16"
         
     | 
| 
       67 
67 
     | 
    
         | 
| 
       68 
68 
     | 
    
         
             
              #===アプリケーション実行中に演奏する音楽のサンプリングレートを指定する
         
     | 
| 
       69 
69 
     | 
    
         
             
              #単位はHz(周波数)
         
     | 
| 
         Binary file 
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,13 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: ruby-miyako-mswin32
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              hash:  
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 43
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       6 
6 
     | 
    
         
             
              segments: 
         
     | 
| 
       7 
7 
     | 
    
         
             
              - 2
         
     | 
| 
       8 
8 
     | 
    
         
             
              - 1
         
     | 
| 
       9 
     | 
    
         
            -
              -  
     | 
| 
       10 
     | 
    
         
            -
              version: 2.1. 
     | 
| 
      
 9 
     | 
    
         
            +
              - 16
         
     | 
| 
      
 10 
     | 
    
         
            +
              version: 2.1.16
         
     | 
| 
       11 
11 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
12 
     | 
    
         
             
            authors: 
         
     | 
| 
       13 
13 
     | 
    
         
             
            - Cyross Makoto
         
     | 
| 
         @@ -15,7 +15,7 @@ autorequire: 
     | 
|
| 
       15 
15 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       16 
16 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
            date: 2010- 
     | 
| 
      
 18 
     | 
    
         
            +
            date: 2010-08-29 00:00:00 +09:00
         
     | 
| 
       19 
19 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       20 
20 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       21 
21 
     | 
    
         |