IchigoJam Maker's BBS @NPO NEXTDAY

IchigoJam講座参加者・SHOP nextdayご利用者のサポート掲示板です。
作り方、使い方についてのお問い合わせ、プログラミングでご不明な事などをこの掲示板にお書き下さい。



カテゴリ:[ 子供/学校/教育 ]


6件の内、新着の記事から20件ずつ表示します。


[6] Re: ゲームをつくる2

投稿者: 講師@とも 投稿日:2017年 7月24日(月)21時53分13秒 i118-20-118-110.s05.a001.ap.plala.or.jp  通報   返信・引用

前回のおさらいを兼ねて、プログラムを再表示します。

10 'キャラクタヲウゴカス1
20 @LOOP
30 LC X,Y:? CHR$(#20)
40 K=INKEY() :CLK
50 X=X-(K=28)+(K=29)
60 Y=Y-(K=30)+(K=31)
70 '
80 LC X,Y :? CHR$(#F9):WAIT(5)
90 GOTO @LOOP


このプログラムだと、カーソルキーでキャラクタを左右上下に動くのですが、画面の表示範囲から外れると、おかしな動きになってしまいます。

これは、LOCATE文(LC文)に指定するX座標とY座標の値が、画面範囲から外れているためです。
したがって、値が外れないよう、プログラムで書かなければなりません。
IchigoJamの画面範囲がどのくらいなのかは、イチゴジャムレシピの画面構成を参照してください。
https://15jamrecipe.jimdo.com/basic/はじめの一歩/

さて、範囲を決める前に、XとYがどんな値の時におかしな表示になるか調べてみましょう。
下記のプログラムを追加して、実行してみてください。


70 LC 0,1: ?"X=",x,"Y=",Y,


キャラクタのXY座標が、画面左上に表示されると思います。
このように、プログラムの状態を見えるようにすることを、デバックプリントやデバックコードと呼びます。
Xの値は0から31まで、Yの値は0から21までにしましょう。
そうすると、IF文を使って、プログラムは次のようになります。



10 'キャラクタヲウゴカス1
20 @LOOP
30 LC X,Y:? CHR$(#20)
40 K=INKEY() :CLK
50 X=X-(K=28)+(K=29)
52 IF X<0 X=0
54 IF X>31 X=31

60 Y=Y-(K=30)+(K=31)
62 IF Y<0 Y=0
64 IF Y>21 Y=21

70 LC 0,1: ?"X=",x,"Y=",Y,
80 LC X,Y :? CHR$(#F9):WAIT(5)
90 GOTO @LOOP


これで、画面をはみ出ることはなくなったと思います。

さて、ここで宿題。
以下のように書いても同じことができます。なぜでしょう。
IF文もなくシンプルです。


10 'キャラクタヲウゴカス1
20 @LOOP
30 LC X,Y:? CHR$(#20)
40 K=INKEY() :CLK
50 X=X-(K=28&&X>0)+(K=29&&X<31)
60 Y=Y-(K=30&&Y>0)+(K=31&&Y<21)
70 LC 0,1: ?"X=",x,"Y=",Y,
80 LC X,Y :? CHR$(#F9):WAIT(5)
90 GOTO @LOOP


理由がわからなくても、目的が達成できれば、どんどん利用してかまいません。
90行目以降にプログラムを追加していけば、迷路や鬼ごっこなどのゲームができそうですよね。
今回はこれでおしまい。




[5] Re: ゲームをつくる2

投稿者: 講師@とも 投稿日:2017年 6月25日(日)16時58分7秒 i114-183-53-248.s05.a001.ap.plala.or.jp  通報   返信・引用 > No.4[元記事へ]

50-60行目の計算はわかりましたでしょうか?
次のプログラムと同じ意味を表しています。

50 IF K=28 THEN X=X-1   '左矢印キー(28)が押されていたなら、X座標を-1する
55 IF K=29 THEN X=X+1   '右矢印キー(29)が押されていたなら、X座標を+1する
60 IF K=30 THEN Y=Y-1   '上矢印キー(30)が押されていたなら、Y座標を-1する
65 IF K=31 THEN Y=Y+1   '下矢印キー(31)が押されていたなら、Y座標を+1する

こちらの方がわかりやすい書き方なのですが、プログラム容量が少ないIchigoJamでは、最初の計算式で短く書くほうが、なにかと重宝するのです。

さて、次の問題は、キャラクタは自由に動くのですが、上下左右の端に来たら、何かおかしな動きになりますよね?。
特に、画面下の端はひどいです。
なぜか考えてみましょう。



[4] ゲームをつくる2

投稿者: 講師@とも 投稿日:2017年 6月22日(木)22時09分16秒 i114-181-21-82.s05.a001.ap.plala.or.jp  通報   返信・引用

第2回目は、すこし難しくなりますが、キャラクタを自在に動かしてみましょう。
まずはプログラムを入力して実行してみてください。
矢印キーを押した方向に人のキャラクタが動くと思います。

動きの考え方は、位置を変えながらキャラクタの表示と消去を繰り返すことです。
これだけで、もう、ゲームが作れた気分になりますよね。
でも、このプログラムには問題がいくつか残っています。
次回は、その解決方法を探していきます。

-プログラムの説明-
30行目 現在の位置を消去
40行目 押されているキーを読む
50-60行目 矢印のキーコードから、移動先を計算。
      例えば、左矢印キーなら、Xを-1、右矢印キーならXを+1する。
      どうしてこんな計算ができるのか、考えてみましょう。
80行目 新しい位置にキャラクタを表示して、ちょっと待つ(WAIT5)。

-変数の意味-
K キーボードコード
X,Y 現在の座標



[3] ゲームをつくる1

投稿者: 講師@とも 投稿日:2017年 6月13日(火)07時22分1秒 i58-93-162-180.s05.a001.ap.plala.or.jp  通報   返信・引用

IchigoJamでゲーム作りにチャレンジしたい人もいるでしょう。
動きの表現は、ぱらぱらマンガの要領で表示するのがきほんです。
下のプログラムを試してみてください。
どのように見えるでしょうか?。
いろいろ改造して、どんな動きになるか試すとおもしろいですよ。



[2] 掲示板を開設しました

投稿者: 講師@NEXTDAY 投稿日:2017年 5月 2日(火)17時45分12秒 j110130.ppp.asahi-net.or.jp  通報   返信・引用

「ココが分からない」や「こんなプログラム作ったよ」など質問や報告を投稿してください。
質問についてはできるだけ早くお答えしたいと思いますが、少し時間がかかる場合があります。

この掲示板に書き込むときには、皆さんの保護者の方や大人に相談して、じょうずに使ってください。



[1] 掲示板が完成しましたキラキラ

投稿者: teacup.運営 投稿日:2017年 5月 2日(火)17時13分16秒 j110130.ppp.asahi-net.or.jp  通報   返信・引用

ご利用ありがとうございます。

teacup.掲示板は
ダイヤスレッド作り放題右上
ダイヤ画像・動画・音楽の投稿OK
ダイヤケータイ絵文字が使えるv▽v
ダイヤRSS対応ヒラメイタ!
ダイヤかわいいケータイテンプレハートx2

足跡足あと帳はコチラ
スレッド内容は管理画面内「スレッドの管理」から編集できます。


レンタル掲示板
6件の内、新着の記事から20件ずつ表示します。

お知らせ · よくある質問(FAQ) · お問合せ窓口 · teacup.レンタル掲示板

© GMO Media, Inc.