a21_edu09
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* 初心者向けプログラミング体験ワークショップ#9
-(by [[K]], 2021.12.13)
** (0)
-[[a21_edu03]]の「ハンバーガーキャッチ・ゲーム」を「なで...
-これは、[[「初心者向けプログラミング体験ワークショップ」...
-しかし、ブラウザ上で同じゲームができるのはかなり感激しま...
-ここに取り上げるのが適切かどうかはかなり迷いましたが、ま...
** (1)
-ストーリーやルールなどはすべてオリジナルの[[a21_edu03]]...
-まず [[''「なでしこ3簡易エディタ」''>https://nadesi.com...
-そして画面上部のテキストボックスに、以下のプログラムをコ...
-あとは「実行」ボタンを押せば始まります!
-「クリア」ボタンを押せばいつでもやめられます。
** (2) プログラム
// 以下はaclライブラリの代わり
画面内容=[]。KEY=0。
●(xyにchをcで)キャラクタ描画とは
変数 x=xy[0]。
変数 y=xy[1]。
変数 cc=c[0]。
変数 bc=c[1]。
変数 ixy=(x+y*100)*3。
画面内容[ixy]=ch。
画面内容[ixy+1]=cc。
画面内容[ixy+2]=bc。
1に線太設定。
bcに線色設定。
bcに塗り色設定。
x=x*16。 y=y*16。
[x, y, 16, 16]へ四角描画。
ccに線色設定。
ccに塗り色設定。
もし、ch=1ならば
[x, y, 16, 16]へ四角描画。
ここまで。
もし、ch=2ならば
[x+8, y+8]へ7の円描画。
ここまで。
もし、ch=3ならば
3に線太設定。
[x,y]から[x+15,y+15]まで線描画。
[x,y+15]から[x+15,y]まで線描画。
ここまで。
もし、ch=4ならば
[x, y+6, 16, 4]へ四角描画。
ここまで。
もし、ch=5ならば
[x+6, y, 4, 16]へ四角描画。
ここまで。
もし、ch=6ならば
[x+8, y+8]へ8の円描画。
bcに線色設定。
bcに塗り色設定。
[x+3, y+5, 2,2]へ四角描画。
[x+11,y+5, 2,2]へ四角描画。
[x+6, y+12,4,2]へ四角描画。
ここまで。
ここまで。
●(xyにchをcでabの)キャラクタ四角描画とは
変数 a=ab[0]。
変数 b=ab[1]。
変数 x=xy[0]。
変数 y=xy[1]。
変数 i=0。
変数 j=0。
もし、(a>0)かつ(b>0)ならば
jを0からb-1まで繰り返す
iを0からa-1まで繰り返す
[x+i,y+j]にchをcでキャラクタ描画。
ここまで。
ここまで。
ここまで。
ここまで。
●(abxyをdに)スクロール描画とは
変数 a=abxy[0]。
変数 b=abxy[1]。
変数 x=abxy[2]。
変数 y=abxy[3]。
変数 aa=[]。
変数 i=0。
変数 j=0。
jを0からb-1まで繰り返す
iを0からa-1まで繰り返す
変数 ixy=((x+i)+(y+j)*100)*3。
変数 iij=(i+j*100)*3。
aa[iij]=画面内容[ixy]。
aa[iij+1]=画面内容[ixy+1]。
aa[iij+2]=画面内容[ixy+2]。
ここまで。
ここまで。
x=x+d[0]。
y=y+d[1]。
jを0からb-1まで繰り返す
iを0からa-1まで繰り返す
iij=(i+j*100)*3。
変数 cc=aa[iij+1]。
変数 bc=aa[iij+2]。
[x+i,y+j]にaa[iij]を[cc,bc]でキャラクタ描画。
ここまで。
ここまで。
ここまで。
XMOVE=0。YMOVE=0。
DOCUMENTをキー押した時には
KEY=押されたキー。
XMOVE=0。YMOVE=0。
もし、KEY=「ArrowLeft」ならば、XMOVE= -1。
もし、KEY=「A」ならば、XMOVE= -1。
もし、KEY=「a」ならば、XMOVE= -1。
もし、KEY=「ArrowRight」ならば、XMOVE=1。
もし、KEY=「S」ならば、XMOVE=1。
もし、KEY=「s」ならば、XMOVE=1。
もし、KEY=「ArrowUp」ならば、YMOVE= -1。
もし、KEY=「W」ならば、YMOVE= -1。
もし、KEY=「w」ならば、YMOVE= -1。
もし、KEY=「ArrowDown」ならば、YMOVE=1。
もし、KEY=「Z」ならば、YMOVE=1。
もし、KEY=「z」ならば、YMOVE=1。
ここまで。
// ここから本体
PH=0。HI=0。SC=0。PX=9。LV=1。BG=0。BX=0。BY=0。T=0。
0.05秒毎には(タイマーID)
PHで条件分岐
0ならば
PH=1。SC=0。PX=9。LV=1。BG=0。BX=20の乱数。BY=0。T...
ここまで。
1ならば
もし、KEY<>0ならば
変数 TX=PX+XMOVE。
もし、TX<0ならば、TX=0。
もし、TX>19ならば、TX=19。
もし、(TX<>BX)または(BY<(23-BG))ならば、PX=TX。
ここまで。
KEY=0。
もし、(PX=BX)かつ(BY=(22-BG))ならば
SC=SC+1。
もし、HI<SCならば、HI=SC。
BG=BG+1。
BX=20の乱数。BY=0。
ここまで。
[0,0]に0を[黒色,黒色]で[20,24]のキャラクタ四角描画。
白色に塗り色設定。
「16px sans-serif」に描画フォント設定。
[0,13]へ「LEVEL:{LV} SCORE:{SC} HIGH:{HI}」を文...
もし(T%4=0)かつ((TX<>BX)または(BY<(22-BG)))ならば...
もしBY>0ならば、[BX,BY]に2を[黄色,黒色]でキャラク...
[PX,23]に4を[水色,黒色]でキャラクタ描画。
[PX,23-BG]に2を[黄色,黒色]で[1,BG]のキャラクタ四角...
もし、BG=LVならば、PH=2。
もし、BY=23ならば、PH=4。
T=T+1。
ここまで。
2ならば、
緑色に塗り色設定。
「16px sans-serif」に描画フォント設定。
[96,333]へ「LEVEL:{LV} CLEAR!」を文字描画。
LV=LV+1。BG=0。PX=9。BX=20の乱数。BY=0。T=3/0.05。
PH=3。
ここまで。
3ならば、
T=T-1。
もし、T=0ならば、PH=1。
ここまで。
4ならば、
もし、KEY=「Enter」ならば、PH=0。
ここまで。
ここまで。
ここまで。
** (3)
-「なでしこ3」はこんな無茶な使い方でもちゃんと書いた通り...
-私は「なでしこ3」の理解が甘いので、もっとうまい書き方が...
-途中でキー入力を読み替えている部分がありますが、それはカ...
* こめんと欄
#comment
終了行:
* 初心者向けプログラミング体験ワークショップ#9
-(by [[K]], 2021.12.13)
** (0)
-[[a21_edu03]]の「ハンバーガーキャッチ・ゲーム」を「なで...
-これは、[[「初心者向けプログラミング体験ワークショップ」...
-しかし、ブラウザ上で同じゲームができるのはかなり感激しま...
-ここに取り上げるのが適切かどうかはかなり迷いましたが、ま...
** (1)
-ストーリーやルールなどはすべてオリジナルの[[a21_edu03]]...
-まず [[''「なでしこ3簡易エディタ」''>https://nadesi.com...
-そして画面上部のテキストボックスに、以下のプログラムをコ...
-あとは「実行」ボタンを押せば始まります!
-「クリア」ボタンを押せばいつでもやめられます。
** (2) プログラム
// 以下はaclライブラリの代わり
画面内容=[]。KEY=0。
●(xyにchをcで)キャラクタ描画とは
変数 x=xy[0]。
変数 y=xy[1]。
変数 cc=c[0]。
変数 bc=c[1]。
変数 ixy=(x+y*100)*3。
画面内容[ixy]=ch。
画面内容[ixy+1]=cc。
画面内容[ixy+2]=bc。
1に線太設定。
bcに線色設定。
bcに塗り色設定。
x=x*16。 y=y*16。
[x, y, 16, 16]へ四角描画。
ccに線色設定。
ccに塗り色設定。
もし、ch=1ならば
[x, y, 16, 16]へ四角描画。
ここまで。
もし、ch=2ならば
[x+8, y+8]へ7の円描画。
ここまで。
もし、ch=3ならば
3に線太設定。
[x,y]から[x+15,y+15]まで線描画。
[x,y+15]から[x+15,y]まで線描画。
ここまで。
もし、ch=4ならば
[x, y+6, 16, 4]へ四角描画。
ここまで。
もし、ch=5ならば
[x+6, y, 4, 16]へ四角描画。
ここまで。
もし、ch=6ならば
[x+8, y+8]へ8の円描画。
bcに線色設定。
bcに塗り色設定。
[x+3, y+5, 2,2]へ四角描画。
[x+11,y+5, 2,2]へ四角描画。
[x+6, y+12,4,2]へ四角描画。
ここまで。
ここまで。
●(xyにchをcでabの)キャラクタ四角描画とは
変数 a=ab[0]。
変数 b=ab[1]。
変数 x=xy[0]。
変数 y=xy[1]。
変数 i=0。
変数 j=0。
もし、(a>0)かつ(b>0)ならば
jを0からb-1まで繰り返す
iを0からa-1まで繰り返す
[x+i,y+j]にchをcでキャラクタ描画。
ここまで。
ここまで。
ここまで。
ここまで。
●(abxyをdに)スクロール描画とは
変数 a=abxy[0]。
変数 b=abxy[1]。
変数 x=abxy[2]。
変数 y=abxy[3]。
変数 aa=[]。
変数 i=0。
変数 j=0。
jを0からb-1まで繰り返す
iを0からa-1まで繰り返す
変数 ixy=((x+i)+(y+j)*100)*3。
変数 iij=(i+j*100)*3。
aa[iij]=画面内容[ixy]。
aa[iij+1]=画面内容[ixy+1]。
aa[iij+2]=画面内容[ixy+2]。
ここまで。
ここまで。
x=x+d[0]。
y=y+d[1]。
jを0からb-1まで繰り返す
iを0からa-1まで繰り返す
iij=(i+j*100)*3。
変数 cc=aa[iij+1]。
変数 bc=aa[iij+2]。
[x+i,y+j]にaa[iij]を[cc,bc]でキャラクタ描画。
ここまで。
ここまで。
ここまで。
XMOVE=0。YMOVE=0。
DOCUMENTをキー押した時には
KEY=押されたキー。
XMOVE=0。YMOVE=0。
もし、KEY=「ArrowLeft」ならば、XMOVE= -1。
もし、KEY=「A」ならば、XMOVE= -1。
もし、KEY=「a」ならば、XMOVE= -1。
もし、KEY=「ArrowRight」ならば、XMOVE=1。
もし、KEY=「S」ならば、XMOVE=1。
もし、KEY=「s」ならば、XMOVE=1。
もし、KEY=「ArrowUp」ならば、YMOVE= -1。
もし、KEY=「W」ならば、YMOVE= -1。
もし、KEY=「w」ならば、YMOVE= -1。
もし、KEY=「ArrowDown」ならば、YMOVE=1。
もし、KEY=「Z」ならば、YMOVE=1。
もし、KEY=「z」ならば、YMOVE=1。
ここまで。
// ここから本体
PH=0。HI=0。SC=0。PX=9。LV=1。BG=0。BX=0。BY=0。T=0。
0.05秒毎には(タイマーID)
PHで条件分岐
0ならば
PH=1。SC=0。PX=9。LV=1。BG=0。BX=20の乱数。BY=0。T...
ここまで。
1ならば
もし、KEY<>0ならば
変数 TX=PX+XMOVE。
もし、TX<0ならば、TX=0。
もし、TX>19ならば、TX=19。
もし、(TX<>BX)または(BY<(23-BG))ならば、PX=TX。
ここまで。
KEY=0。
もし、(PX=BX)かつ(BY=(22-BG))ならば
SC=SC+1。
もし、HI<SCならば、HI=SC。
BG=BG+1。
BX=20の乱数。BY=0。
ここまで。
[0,0]に0を[黒色,黒色]で[20,24]のキャラクタ四角描画。
白色に塗り色設定。
「16px sans-serif」に描画フォント設定。
[0,13]へ「LEVEL:{LV} SCORE:{SC} HIGH:{HI}」を文...
もし(T%4=0)かつ((TX<>BX)または(BY<(22-BG)))ならば...
もしBY>0ならば、[BX,BY]に2を[黄色,黒色]でキャラク...
[PX,23]に4を[水色,黒色]でキャラクタ描画。
[PX,23-BG]に2を[黄色,黒色]で[1,BG]のキャラクタ四角...
もし、BG=LVならば、PH=2。
もし、BY=23ならば、PH=4。
T=T+1。
ここまで。
2ならば、
緑色に塗り色設定。
「16px sans-serif」に描画フォント設定。
[96,333]へ「LEVEL:{LV} CLEAR!」を文字描画。
LV=LV+1。BG=0。PX=9。BX=20の乱数。BY=0。T=3/0.05。
PH=3。
ここまで。
3ならば、
T=T-1。
もし、T=0ならば、PH=1。
ここまで。
4ならば、
もし、KEY=「Enter」ならば、PH=0。
ここまで。
ここまで。
ここまで。
** (3)
-「なでしこ3」はこんな無茶な使い方でもちゃんと書いた通り...
-私は「なでしこ3」の理解が甘いので、もっとうまい書き方が...
-途中でキー入力を読み替えている部分がありますが、それはカ...
* こめんと欄
#comment
ページ名: