OSDN Git Service

タグを打ち忘れていたついでに、html版ドキュメントを追加しました。
[ring-lang-081/ring.git] / docs / build / html / _sources / whatisnew11.txt
1 .. index:: 
2         single: Ring 1.11 の変更履歴; はじめに
3
4 ====================
5 Ring 1.11 の変更履歴
6 ====================
7
8 Ring 1.11 公開版の新機能と変更点を学びます。
9
10 .. index:: 
11         pair: Ring 1.11 の変更履歴; 新機能と変更リスト
12
13 新機能と変更リスト
14 ==================
15
16 Ring 1.11 の新機能!
17
18 * 3Dサンプルの追加
19 * Checkers ゲーム
20 * Sokoban ゲーム
21 * Maze ゲーム
22 * Snake ゲーム
23 * Sudoku ゲーム
24 * デスクトップスクリーンショットアプリケーション
25 * 文書読み上げアプリケーション
26 * RingRayLib 拡張機能
27 * ZeroLib ライブラリ
28 * StdLib - 関数の追加
29 * RingQt の改良
30 * 実行性能の向上
31 * 取扱説明書の増補
32 * そのほかの改善
33
34 .. index:: 
35         pair: Ring 1.11 の変更履歴; 3Dサンプルの追加
36
37 3Dサンプルの追加
38 ================
39
40 Ring 1.11 より Qt3D 用の3Dサンプルがあります。
41
42 * Folder : ring/samples/other/UsingQt3D (18 サンプル収録)
43
44 .. image:: qt3dex18.png
45         :alt: Qt3D 用例 18
46
47 .. index:: 
48         pair: Ring 1.11 の変更履歴; Checkers ゲーム
49
50 Checkers ゲーム
51 ===============
52
53 遊びかたは国際ルールですが、強制ジャンプを採用した Checkers の方言です。
54
55 無効な移動、無効なジャンプ、強制ジャンプを扱います。
56
57 正方形は錯誤を示すために色分けしています。
58
59 正方形は移動元と移動先、またはジャンプ先を示すために色分けしています。
60
61 .. image:: checkersgame.png
62         :alt: Checkers ゲーム
63
64 .. index:: 
65         pair: Ring 1.11 の変更履歴; Sokoban ゲーム
66
67 Sokoban ゲーム
68 ==============
69
70 Sokoban ゲームを短時間で実装したものです。
71
72 2Dゲーム用 Ring ゲームエンジンを用いて二時間で開発しました (300行以下のコード)
73
74 .. image:: sokoban.jpg
75         :alt: Sokoban ゲーム
76
77
78 .. index:: 
79         pair: Ring 1.11 の変更履歴; Maze ゲーム
80
81 Maze ゲーム
82 ===========
83
84 Maze ゲームを短時間で実装したものです。
85
86 2Dゲーム用 Ring ゲームエンジンを用いて開発しました (約100行のコード)
87
88 このゲームにはレベルデザイナーも搭載してあります (10分で開発、37行のコード)
89
90 .. image:: maze.png
91         :alt: Maze ゲーム
92
93 .. index:: 
94         pair: Ring 1.11 の変更履歴; Snake ゲーム
95
96 Snake ゲーム
97 ============
98
99 Snake ゲームを短時間で実装したものです。
100
101 2Dゲーム用 Ring ゲームエンジンを用いて開発しました (約200行のコード)
102
103 .. image:: snake.png
104         :alt: Snake ゲーム
105
106 .. index:: 
107         pair: Ring 1.11 の変更履歴; Sudoku ゲーム
108
109 Sudoku ゲーム
110 =============
111
112 9×9 のマスから構成される各列・各段と 9 つの 3×3 の補助マスを埋めて、全部のマスを 1~9 までの数字を全て埋めて完成させます。
113
114 .. image:: sudoku.jpg
115         :alt: Sudoku ゲーム
116
117 .. index:: 
118         pair: Ring 1.11 の変更履歴; デスクトップスクリーンショットアプリケーション
119
120 デスクトップスクリーンショットアプリケーション
121 ==============================================
122
123 .. image:: dssapp.png
124         :alt: デスクトップスクリーンショットアプリケーション
125
126 .. index:: 
127         pair: Ring 1.11 の変更履歴; 文書読み上げアプリケーション
128
129 文書読み上げアプリケーション
130 ============================
131
132 .. image:: ttsapp.png
133         :alt: 文書読み上げアプリケーション
134
135
136 .. index:: 
137         pair: Ring 1.11 の変更履歴; RingRayLib 拡張機能
138
139 RingRayLib 拡張機能
140 ===================
141
142 Ring 1.11 より RayLib ゲームプログラミングライブラリに対応した拡張機能があります。
143
144 用例:
145
146 .. code-block:: ring
147
148         load "raylib.ring"
149
150         screenWidth     = 800
151         screenHeight    = 450
152
153         InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window")
154
155         SetTargetFPS(60)
156
157         while !WindowShouldClose() 
158                 BeginDrawing()
159                 ClearBackground(RED)
160                 DrawText("Congrats! You created your first window!", 190, 200, 20, WHITE)
161                 EndDrawing()
162         end
163
164         CloseWindow()
165
166 実行結果:
167
168 .. image:: raylib_ex1.png
169         :alt: RayLib の用例
170
171 用例:
172
173 .. code-block:: ring
174
175         load "raylib.ring"
176
177         screenWidth = 800
178         screenHeight = 450
179
180         InitWindow(screenWidth, screenHeight, "raylib [shapes] example - basic shapes drawing")
181
182         SetTargetFPS(60)
183
184         while !WindowShouldClose()
185
186                 BeginDrawing()
187
188                 ClearBackground(RAYWHITE)
189
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)
195
196                 DrawTriangle(Vector2(screenWidth/4*3, 80),
197                                  Vector2(screenWidth/4*3 - 60, 150),
198                                  Vector2(screenWidth/4*3 + 60, 150), VIOLET)
199
200                 DrawPoly(Vector2(screenWidth/4*3, 320), 6, 80, 0, BROWN)
201
202                 DrawCircleGradient(screenWidth/4, 220, 60, GREEN, SKYBLUE)
203
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)
209                 EndDrawing()
210
211         end
212
213         CloseWindow()
214
215 実行結果:
216
217 .. image:: ex1_basicshapes.png
218         :alt: RayLib の用例
219
220 .. index:: 
221         pair: Ring 1.11 の変更履歴; ZeroLib ライブラリ
222
223 ZeroLib ライブラリ
224 ==================
225
226 Ring 1.11 より添字 0 始点のリストと文字列用クラスである ZeroLib ライブラリがあります。
227
228 用例:
229
230 .. code-block:: ring
231
232         load "zerolib.ring"
233
234         ? "Using List - Index start from 0"
235         List = Z( [1,2,3] )
236         List.Add(4)
237         List.Add(5)
238         ? List[0]
239         ? List[1]
240         ? List[2]
241         ? List[3]
242         ? List[4]
243         nIndex = List.find(2)
244         ? "Find(2) = " + nIndex
245         List.delete(0)
246         ? "After deleting the first item : List[0]" 
247         ? "Now List[0] = " + List[0] 
248
249         ? "Using String - Index start from 0"
250         String = Z( "Welcome" )
251         ? String[0]
252         ? String[1]
253         ? String[2]
254         ? String[3]
255         ? String[4]
256         ? String[5]
257         ? String[6]
258
259 実行結果:
260
261 .. code-block:: ring 
262
263         Using List - Index start from 0
264         1
265         2
266         3
267         4
268         5
269         Find(2) = 1
270         After deleting the first item : List[0]
271         Now List[0] = 2
272         Using String - Index start from 0
273         W
274         e
275         l
276         c
277         o
278         m
279         e
280
281         
282 .. index:: 
283         pair: Ring 1.11 の変更履歴; StdLib - 関数の追加
284
285 StdLib - 関数の追加
286 ===================
287
288 次の関数を StdLib へ追加しました
289
290 * IsListContainsItems(aParent,aChild)
291 * IsBetween(nNumber,nMin,nMax)
292 * TimeInfo(cInformation)
293
294 用例:
295
296 .. code-block:: ring
297
298         load "stdlibcore.ring"
299         ? "Using the IsListContainsItems() function" 
300         aList1 = "a":"z"
301         aList2 = [:h,:l,:p,:u]
302         ? IsListContainsItems(aList1,aList2)
303         ? "Using the IsBetween() function"
304         ? isBetween(1,3,4)
305         ? isBetween(4,1,6)
306         ? "Using the TimeInfo() function"
307         ? timeInfo(:date)
308         ? timeInfo(:year)
309         ? timeInfo(:time)
310         ? timeInfo(:hour_12)
311
312 実行結果:
313
314 .. code-block:: ring
315
316         Using the IsListContainsItems() function
317         1
318         Using the IsBetween() function
319         0
320         1
321         Using the TimeInfo() function
322         05/24/19
323         2019
324         15:30:33
325         03
326
327 前述の関数に関する詳細情報は StdLib 関数の章を参照してください。
328
329 .. index:: 
330         pair: Ring 1.11 の変更履歴; RingQt の改良
331
332 RingQt の改良
333 =============
334
335 * Qt 5.12.3 を用いての RingQt のビルド
336
337 * Android 用 RingQt - WebView モジュールの存在時に WebView をインクルードするためにプロジェクトファイルを更新
338
339 * QString クラス - 新規メソッド
340
341         * compare()
342         * contains()
343         * indexOf()
344         * insert()
345         * isRightToLeft()
346         * remove()
347         * repeated()
348         * replace()
349         * startsWith()
350         * endsWith()
351         * toHtmlEscaped()
352         * clear()
353         * isnull()
354         * resize()
355         * fill()
356
357 * QAxBase & QVariant - API の改善
358
359 * RingQt へ下記のクラスを追加しました。
360
361         * QQuickView クラス
362         * QPrintDialog クラス
363         * QAxWidget2 クラス
364         * QTextToSpeech クラス 
365         * QGraphicsView クラス
366         * QAbstractAspect クラス
367         * QNode クラス
368         * QEntity クラス
369         * QTransform クラス
370         * QAspectEngine クラス
371         * QTorusMesh クラス
372         * QConeMesh クラス
373         * QCylinderMesh クラス
374         * QCuboidMesh クラス
375         * QPlaneMesh クラス
376         * QSphereMesh クラス
377         * QPhongMaterial クラス
378         * QForwardRenderer クラス
379         * Qt3DWindow クラス
380         * QAbstractCameraController クラス
381         * QFirstPersonCameraController クラス
382         * QTextureMaterial クラス
383         * QExtrudedTextMesh クラス
384         * QText2DEntity クラス
385         * QSkyBoxEntity クラス
386         * QConeGeometry クラス
387         * QOrbitCameraController クラス
388         * QDiffuseSpecularMaterial クラス
389         * QGoochMaterial クラス
390         * QMetalroughMaterial クラス
391         * MorphPhongMaterial クラス
392         * QPervertexColorMaterial クラス
393         * QInputAspect クラス
394         * QFrameAction クラス
395         * QLogicAspect クラス
396         * QCamera クラス
397         * QCameraLens クラス
398         * QMesh クラス
399         * QTechnique クラス
400         * QMaterial クラス
401         * QEffect クラス
402         * QRenderPass クラス
403         * QSceneLoader クラス
404         * QPointLight クラス
405         * QRenderAspect クラス
406         * QTextureLoader クラス
407         * QObjectPicker クラス
408         * QCameraSelector クラス
409         * QCullFace クラス
410         * QDepthTest クラス
411         * QViewPort クラス
412
413 .. index:: 
414         pair: Ring 1.11 の変更履歴; 実行性能の向上
415
416 実行性能の向上
417 ==============
418
419 Ring 1.11 は Ring 1.10 よりも高速です。
420
421 アプリケーションにもよりますが 10% ~ 30% ほどの性能向上が見込めます。
422
423 .. index:: 
424         pair: Ring 1.11 の変更履歴; 取扱説明書の増補
425
426 取扱説明書の増補
427 ================
428
429 次の章を取扱説明書へ追加しました。
430
431 * チュートリアル: C/C++ による拡張機能の開発方法
432 * Qt3D の用法
433 * ZeroLib の用法
434 * RingRayLib の用法
435
436 .. index:: 
437         pair: Ring 1.11 の変更履歴; そのほかの改善
438
439 そのほかの改善
440 ==============
441
442 * 新規サンプル
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 命令は使えなくなりました