page0093
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* OSECPU-ASKA入門 #0013
-(by [[K]], 2013.06.23)
** (0) はじめに
-以下の記事はosecpu112dのWindows版を前提にしています。他...
--ちなみに[[page0074]]を読めばrev2の最新版が見つかります。
~
-もくじ
--[[page0087]]: #0010
--[[page0088]]: #0011
--[[page0089]]: #0012
--[[page0093]]: #0013
** (1) sleep
-api_sleep(mode, msec); :
--指定された時間だけ、プログラムを停止させます。msecはミ...
--なおmsecに-1を指定することもできて、これは無限大時間のs...
--modeはとりあえず0を指定すると覚えておいてください。他の...
#include "osecpu_ask.h"
Int32s xsiz:R00, ysiz:R01, x0:R02, y0:R03, col:R04, ...
// ゆっくりじわじわと描画されます.
for (i = 0; i != 128; i++) {
xsiz = ysiz = (144 - i) * 2;
x0 = (320 - 144) + i;
y0 = (240 - 144) + i;
col = i * 0x020201;
api_fillOval(0, xsiz, ysiz, x0, y0, col);
api_sleep(0, 100);
}
** (2) アニメーション
-描画命令とsleepがあればアニメーションができます。
-ただし今(osecpu112d)のOSECPU-VMのお手軽描画処理ルーチ...
#include "osecpu_ask.h"
Int32s x:R00, y:R01, vx:R02, vy:R03, tx:R04, ty:R05;
api_openWin(320, 240);
x = 32; y = 0; vx = 8; vy = 8;
for (;;) {
tx = x + vx; ty = y + vy;
if (tx < 0 ) { vx = 8; }
if (tx > 320 - 16) { vx = -8; }
if (ty < 0 ) { vy = 8; }
if (ty > 240 - 16) { vy = -8; }
x += vx; y += vy;
api_fillOval(MODE_COL3, 7, 16, 16, x, y); // ボ...
api_sleep(0, 100);
api_fillRect(MODE_COL3, 0, 16, 16, x, y); // ボ...
}
** (3) if文
-ちょっと説明が前後してしまいましたが、OSECPU-ASKAではif...
if (条件式) { 成立したときに実行される }
または
if (条件式) { 成立したときに実行される } else { 不成立の...
-if文では、 break; と continue; と goto文だけに限って、 {...
--制約が多くなってしまったのは、もちろんASKAが手抜き実装...
if (条件式) break; // これはよい.
if (条件式)
break; // これはよくない.
-しかし、たとえば if (条件式) { break; } と書いてはいけな...
-条件式に関してですが、ASKAでは&&や||がまだ使えません。代...
** (4) exit
-api_exit(i); :
--アプリケーションをただちに終了させます。iには終了コード...
--開かれているウィンドウがあればそれは直ちに閉じられます。
** (5) inkey
-api_inkey(_i, mode); :
--キー入力をするためのAPIです。このAPIは今まで紹介してき...
--現在(osecpu112d)では、OSECPU-ASKAには「関数値」という...
k = api_inkey(mode);
--代わりどう書くのかと言うと、こうします。
api_inkey(k, mode);
--つまり引数の中に書いてしまうわけですね。かなりダサいで...
--このように値を渡すのではなく受け取るために指定する場合...
--キーコードは基本的には文字コードですが、いくつかのキー...
-1 キーは入力されていない
27 Escキー
4128 PageUp
4129 PageDown
4130 End
4131 Home
4132 ←
4133 ↑
4134 →
4135 ↓
4136 Insert
4137 Delete
--modeは、とりあえず常に0にしておきます。他の値の説明はま...
** (6) アニメーション+キー入力=ゲーム
-キー入力に応じて、アニメーション内容が変化するようにでき...
-と思ったら点数表示ができないとだめですね。そのための説明...
-それにキャラクタも描きたいですよね・・・そのための説明も...
-じゃあ今後はそこを中心に・・・。
** つづく
-[[page0095]]につづく
* こめんと欄
#comment
終了行:
* OSECPU-ASKA入門 #0013
-(by [[K]], 2013.06.23)
** (0) はじめに
-以下の記事はosecpu112dのWindows版を前提にしています。他...
--ちなみに[[page0074]]を読めばrev2の最新版が見つかります。
~
-もくじ
--[[page0087]]: #0010
--[[page0088]]: #0011
--[[page0089]]: #0012
--[[page0093]]: #0013
** (1) sleep
-api_sleep(mode, msec); :
--指定された時間だけ、プログラムを停止させます。msecはミ...
--なおmsecに-1を指定することもできて、これは無限大時間のs...
--modeはとりあえず0を指定すると覚えておいてください。他の...
#include "osecpu_ask.h"
Int32s xsiz:R00, ysiz:R01, x0:R02, y0:R03, col:R04, ...
// ゆっくりじわじわと描画されます.
for (i = 0; i != 128; i++) {
xsiz = ysiz = (144 - i) * 2;
x0 = (320 - 144) + i;
y0 = (240 - 144) + i;
col = i * 0x020201;
api_fillOval(0, xsiz, ysiz, x0, y0, col);
api_sleep(0, 100);
}
** (2) アニメーション
-描画命令とsleepがあればアニメーションができます。
-ただし今(osecpu112d)のOSECPU-VMのお手軽描画処理ルーチ...
#include "osecpu_ask.h"
Int32s x:R00, y:R01, vx:R02, vy:R03, tx:R04, ty:R05;
api_openWin(320, 240);
x = 32; y = 0; vx = 8; vy = 8;
for (;;) {
tx = x + vx; ty = y + vy;
if (tx < 0 ) { vx = 8; }
if (tx > 320 - 16) { vx = -8; }
if (ty < 0 ) { vy = 8; }
if (ty > 240 - 16) { vy = -8; }
x += vx; y += vy;
api_fillOval(MODE_COL3, 7, 16, 16, x, y); // ボ...
api_sleep(0, 100);
api_fillRect(MODE_COL3, 0, 16, 16, x, y); // ボ...
}
** (3) if文
-ちょっと説明が前後してしまいましたが、OSECPU-ASKAではif...
if (条件式) { 成立したときに実行される }
または
if (条件式) { 成立したときに実行される } else { 不成立の...
-if文では、 break; と continue; と goto文だけに限って、 {...
--制約が多くなってしまったのは、もちろんASKAが手抜き実装...
if (条件式) break; // これはよい.
if (条件式)
break; // これはよくない.
-しかし、たとえば if (条件式) { break; } と書いてはいけな...
-条件式に関してですが、ASKAでは&&や||がまだ使えません。代...
** (4) exit
-api_exit(i); :
--アプリケーションをただちに終了させます。iには終了コード...
--開かれているウィンドウがあればそれは直ちに閉じられます。
** (5) inkey
-api_inkey(_i, mode); :
--キー入力をするためのAPIです。このAPIは今まで紹介してき...
--現在(osecpu112d)では、OSECPU-ASKAには「関数値」という...
k = api_inkey(mode);
--代わりどう書くのかと言うと、こうします。
api_inkey(k, mode);
--つまり引数の中に書いてしまうわけですね。かなりダサいで...
--このように値を渡すのではなく受け取るために指定する場合...
--キーコードは基本的には文字コードですが、いくつかのキー...
-1 キーは入力されていない
27 Escキー
4128 PageUp
4129 PageDown
4130 End
4131 Home
4132 ←
4133 ↑
4134 →
4135 ↓
4136 Insert
4137 Delete
--modeは、とりあえず常に0にしておきます。他の値の説明はま...
** (6) アニメーション+キー入力=ゲーム
-キー入力に応じて、アニメーション内容が変化するようにでき...
-と思ったら点数表示ができないとだめですね。そのための説明...
-それにキャラクタも描きたいですよね・・・そのための説明も...
-じゃあ今後はそこを中心に・・・。
** つづく
-[[page0095]]につづく
* こめんと欄
#comment
ページ名: