2 single: Ring 1.11 の変更履歴; はじめに
8 Ring 1.11 公開版の新機能と変更点を学びます。
11 pair: Ring 1.11 の変更履歴; 新機能と変更リスト
24 * デスクトップスクリーンショットアプリケーション
35 pair: Ring 1.11 の変更履歴; 3Dサンプルの追加
40 Ring 1.11 より Qt3D 用の3Dサンプルがあります。
42 * Folder : ring/samples/other/UsingQt3D (18 サンプル収録)
44 .. image:: qt3dex18.png
48 pair: Ring 1.11 の変更履歴; Checkers ゲーム
53 遊びかたは国際ルールですが、強制ジャンプを採用した Checkers の方言です。
55 無効な移動、無効なジャンプ、強制ジャンプを扱います。
59 正方形は移動元と移動先、またはジャンプ先を示すために色分けしています。
61 .. image:: checkersgame.png
65 pair: Ring 1.11 の変更履歴; Sokoban ゲーム
70 Sokoban ゲームを短時間で実装したものです。
72 2Dゲーム用 Ring ゲームエンジンを用いて二時間で開発しました (300行以下のコード)
74 .. image:: sokoban.jpg
79 pair: Ring 1.11 の変更履歴; Maze ゲーム
84 Maze ゲームを短時間で実装したものです。
86 2Dゲーム用 Ring ゲームエンジンを用いて開発しました (約100行のコード)
88 このゲームにはレベルデザイナーも搭載してあります (10分で開発、37行のコード)
94 pair: Ring 1.11 の変更履歴; Snake ゲーム
99 Snake ゲームを短時間で実装したものです。
101 2Dゲーム用 Ring ゲームエンジンを用いて開発しました (約200行のコード)
107 pair: Ring 1.11 の変更履歴; Sudoku ゲーム
112 9×9 のマスから構成される各列・各段と 9 つの 3×3 の補助マスを埋めて、全部のマスを 1~9 までの数字を全て埋めて完成させます。
114 .. image:: sudoku.jpg
118 pair: Ring 1.11 の変更履歴; デスクトップスクリーンショットアプリケーション
120 デスクトップスクリーンショットアプリケーション
121 ==============================================
123 .. image:: dssapp.png
124 :alt: デスクトップスクリーンショットアプリケーション
127 pair: Ring 1.11 の変更履歴; 文書読み上げアプリケーション
130 ============================
132 .. image:: ttsapp.png
137 pair: Ring 1.11 の変更履歴; RingRayLib 拡張機能
142 Ring 1.11 より RayLib ゲームプログラミングライブラリに対応した拡張機能があります。
153 InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window")
157 while !WindowShouldClose()
160 DrawText("Congrats! You created your first window!", 190, 200, 20, WHITE)
168 .. image:: raylib_ex1.png
180 InitWindow(screenWidth, screenHeight, "raylib [shapes] example - basic shapes drawing")
184 while !WindowShouldClose()
188 ClearBackground(RAYWHITE)
190 DrawText("some basic shapes available on raylib", 20, 20, 20, DARKGRAY)
191 DrawCircle(screenWidth/4, 120, 35, DARKBLUE)
192 DrawRectangle(screenWidth/4*2 - 60, 100, 120, 60, RED)
193 DrawRectangleLines(screenWidth/4*2 - 40, 320, 80, 60, ORANGE)
194 DrawRectangleGradientH(screenWidth/4*2 - 90, 170, 180, 130, MAROON, GOLD)
196 DrawTriangle(Vector2(screenWidth/4*3, 80),
197 Vector2(screenWidth/4*3 - 60, 150),
198 Vector2(screenWidth/4*3 + 60, 150), VIOLET)
200 DrawPoly(Vector2(screenWidth/4*3, 320), 6, 80, 0, BROWN)
202 DrawCircleGradient(screenWidth/4, 220, 60, GREEN, SKYBLUE)
204 DrawLine(18, 42, screenWidth - 18, 42, BLACK)
205 DrawCircleLines(screenWidth/4, 340, 80, DARKBLUE)
206 DrawTriangleLines(Vector2(screenWidth/4*3, 160),
207 Vector2(screenWidth/4*3 - 20, 230),
208 Vector2(screenWidth/4*3 + 20, 230), DARKBLUE)
217 .. image:: ex1_basicshapes.png
221 pair: Ring 1.11 の変更履歴; ZeroLib ライブラリ
226 Ring 1.11 より添字 0 始点のリストと文字列用クラスである ZeroLib ライブラリがあります。
234 ? "Using List - Index start from 0"
243 nIndex = List.find(2)
244 ? "Find(2) = " + nIndex
246 ? "After deleting the first item : List[0]"
247 ? "Now List[0] = " + List[0]
249 ? "Using String - Index start from 0"
250 String = Z( "Welcome" )
263 Using List - Index start from 0
270 After deleting the first item : List[0]
272 Using String - Index start from 0
283 pair: Ring 1.11 の変更履歴; StdLib - 関数の追加
290 * IsListContainsItems(aParent,aChild)
291 * IsBetween(nNumber,nMin,nMax)
292 * TimeInfo(cInformation)
298 load "stdlibcore.ring"
299 ? "Using the IsListContainsItems() function"
301 aList2 = [:h,:l,:p,:u]
302 ? IsListContainsItems(aList1,aList2)
303 ? "Using the IsBetween() function"
306 ? "Using the TimeInfo() function"
316 Using the IsListContainsItems() function
318 Using the IsBetween() function
321 Using the TimeInfo() function
327 前述の関数に関する詳細情報は StdLib 関数の章を参照してください。
330 pair: Ring 1.11 の変更履歴; RingQt の改良
335 * Qt 5.12.3 を用いての RingQt のビルド
337 * Android 用 RingQt - WebView モジュールの存在時に WebView をインクルードするためにプロジェクトファイルを更新
339 * QString クラス - 新規メソッド
357 * QAxBase & QVariant - API の改善
359 * RingQt へ下記のクラスを追加しました。
366 * QAbstractAspect クラス
378 * QForwardRenderer クラス
380 * QAbstractCameraController クラス
381 * QFirstPersonCameraController クラス
382 * QTextureMaterial クラス
383 * QExtrudedTextMesh クラス
387 * QOrbitCameraController クラス
388 * QDiffuseSpecularMaterial クラス
390 * QMetalroughMaterial クラス
391 * MorphPhongMaterial クラス
392 * QPervertexColorMaterial クラス
408 * QCameraSelector クラス
414 pair: Ring 1.11 の変更履歴; 実行性能の向上
419 Ring 1.11 は Ring 1.10 よりも高速です。
421 アプリケーションにもよりますが 10% ~ 30% ほどの性能向上が見込めます。
424 pair: Ring 1.11 の変更履歴; 取扱説明書の増補
431 * チュートリアル: C/C++ による拡張機能の開発方法
437 pair: Ring 1.11 の変更履歴; そのほかの改善
443 * samples/other/ModuloTimesTableCircle フォルダ
444 * samples/other/saveimage folder
445 * samples/other/UsingQML folder
446 * samples/other/myguicontrol.ring
447 * samples/other/qcalendarwidget.ring
448 * samples/other/qcalendarwidget2.ring
449 * samples/other/sudoku-KL02.ring
450 * samples/other/sudoku-KL02-longproblem.ring
451 * samples/other/zerobasedlist.ring
452 * ringlibs/gameengine/lesson17.ring (ボタンの用法)
453 * samples/other/SQLTutorial/SQL-Tutorial.ring
454 * samples/other/DrawFourier/AA-Draw-Fourier.ring
455 * samples/other/SmartPhoneEmulator/ejemploKey.ring
456 * samples/other/DiscreteFourierTransform/DiscreteFourierTransform.ring
457 * samples/other/phonedatabase/PhoneDatabase.ring
458 * Gold Magic 800 - レベルの追加 (44 レベル)
459 * Fifteen Puzzle ゲーム 3D - コードの改善 (アニメーション速度)
460 * Flappy Bird 3000 - ゲームオーバー時、時機 (鳥) を落下させる演出へ変更
461 * Ring Notepad - 着脱可能ウィンドウ方式時のキーボード・ショートカット
462 * Ring Notepad - 関数リストの表示時に "_" 文字がある関数を除外しなくなりました
463 * Ring Notepad - 実行結果ウィンドウ - データの送信 - コードの改良
464 * Ring Notepad - 検索と置換ウィンドウ - コードの改良
465 * Ring Notepad - 編集メニュー - テキストの挿入ウィンドウ
466 * Ring Notepad - 編集メニュー - 大文字と小文字オプション
467 * Ring Notepad - 編集メニュー - 接頭字オプション
468 * Ring Notepad - 編集メニュー - コメント行とコメントブロック行
469 * Ring Notepad - ファイルタブ - コンテキストメニュー (ほかのファイルを閉じる、使用中のファイルを閉じる、すべてのファイルを閉じる)
470 * RingPM - パッケージの更新 - 依存性の再インストールをしなくなりました
471 * 2Dゲーム用 Ring ゲームエンジン - 追加 : GE_FULLSCREEN, GE_SCREEN_W および GE_SCREEN_H
472 * 2Dゲーム用 Ring ゲームエンジン - 追加 : ゲームオブジェクトの name プロパティ
473 * 2Dゲーム用 Ring ゲームエンジン - 追加 : find() ゲームクラスのメソッド (名前によるオブジェクトの検索)
474 * 2Dゲーム用 Ring ゲームエンジン - oGame[:ObjectName] によるオブジェクトへのアクセスに対応
475 * Natural ライブラリ - 実行性能の改良
476 * FoxRing - 追加: frCTOD() 関数
477 * 拡張機能用のコード生成器 - 新規構造体によるマネージドポインタを用いた関数の生成
478 * Ring VM - Ring オブジェクトファイルエラーに関するエラーコード
479 * Ring VM - Eval() 関数 - コードの改良 (実行性能の改善)
480 * Ring VM - ステート管理 - コードの改良
481 * Ring VM - ">" 演算子と演算子オーバーロード - コードの改良
482 * Ring VM - 代入とオブジェクトメソッドの呼び出し - コードの改良
483 * Ring VM - オブジェクト指向プログラミング (OOP) - Getter、 メソッド - 実行性能の改善
484 * Ring API - C 拡張機能での RING_API_ISLIST() の対応
485 * Ring コンパイラ - 条件分岐の記述時に開業後の数値とリテラルに対応
486 * Ring コンパイラ - 行の開始におけるセミコロン (;) へ対応
487 * Ring コンパイラ - ループ外からの Loop と Exit 命令は使えなくなりました