お絵かき
3そうだね
プレイ済み
返信[1]
親投稿
これでいいですか?確かに指の跡が残る…
0そうだね
プレイ済み
返信[2]
親投稿
ポコきち pokokichi
移動する前の指マークを消すには PRINT命令を使います。 文字を消す命令としてCLS命令がありますが、画面全部が消されてしまうので今回のように一部分だけ消したい場合にはいい方法ではないのです。 一部分の文字を消したいときは PRINT命令で前の文字の上に空白文字を表示させましょう。 CYに値をセットした前の行に 空白文字を表示する処理を追加しましょう。
1そうだね
プレイ済み
返信[3]
親投稿
ポコきち pokokichi
写真のようになったかな? プログラムを実行してボタンを押すと指マークがきれいに消えて移動したように見えますね!
1そうだね
プレイ済み
返信[4]
親投稿
出来た!うお!すげぇ!きれいに移り変わる!
0そうだね
プレイ済み
返信[5]
親投稿
ポコきち pokokichi
イメージしていた動きになっていましたか? 問題点があります。 プログラムを実行する時に RUNと打ち込み、Aボタンを押すと はじめからを選択して終了してしまいます。
1そうだね
プレイ済み
返信[6]
親投稿
ポコきち pokokichi
プログラム実行時のボタン入力(Aボタン)を取得しないようにするには WAIT命令でプログラムの処理を一定時間ストップさせましょう。 書き方は WAIT フレーム数(時間) 繰り返し処理の前の行に追加しよう!
1そうだね
プレイ済み
返信[7]
親投稿
ポコきち pokokichi
これで実行時のAボタンは取得されず 上下ボタンで選択できるようになりました。 まだちょっとした問題はありますが これでタイトル部分のプログラムは完成です!
1そうだね
プレイ済み
返信[8]
親投稿
これでいいのかな?
0そうだね
プレイ済み
返信[9]
親投稿
ポコきち pokokichi
うん、いいよ! 次はどこの処理を作りましょうか?
1そうだね
プレイ済み
返信[10]
親投稿
うーんと、まず名前入力のところを作ろうかな。でも結構難しそう…
0そうだね
プレイ済み
返信[11]
親投稿
ポコきち pokokichi
名前入力ですね。 キーボードからの文字入力を受けとる命令としてINPUT命令があります。 書き方 INPUT ”ガイド文字列”;文字列変数 ガイド文字列とは 入力時に表示するガイドメッセージです。 入力された文字は指定した文字列変数に代入されます。
1そうだね
プレイ済み
返信[12]
親投稿
ポコきち pokokichi
はじめからを選択した場合は名前の入力処理をし、 つづきからを選択した場合は名前の入力処理はしないので 処理を分ける命令がいりますね。 IF~THEN命令を使って はじめからを選択した時だけ名前入力するようにしましょう。 その前にタイトル画面を消すのも必要だね。 画面全体の文字を消すのでCLS命令を使いましょう。
1そうだね
プレイ済み
返信[13]
親投稿
ポコきち pokokichi
写真のようにできたかな? どこを選択しているのかはCYに記憶しているのでその値で判断させます。
1そうだね
プレイ済み
返信[14]
親投稿
出来た!
0そうだね
プレイ済み
返信[15]
親投稿
あ、CLSを入れ忘れた。
0そうだね
プレイ済み
返信[16]
親投稿
今度こそ出来た!
0そうだね
プレイ済み
返信[17]
親投稿
ポコきち pokokichi
名前を入力する処理を追加しましょう。 まず、入力された文字を記憶する変数を宣言しましょう。 変数宣言はVAR命令でしたね。 入力されるのは名前なので NAME$という変数名にしましょう。 (文字をいれる変数なので変数名の後ろに$をつけます) そしてINPUT命令で入力処理をし NAME$に入力された文字を記憶させます。 INPUT ”なまえは”;NAME$ をはじめからを選んだ時に実行されるようにします。
1そうだね
プレイ済み
返信[18]
親投稿
ポコきち pokokichi
写真(1/2)
1そうだね
プレイ済み
返信[19]
親投稿
ポコきち pokokichi
写真(2/2)
1そうだね
プレイ済み
返信[20]
親投稿
ポコきち pokokichi
名前入力処理はこれで完成です。 簡単にできるやり方を教えましたが イメージしてた入力の方法でしたか?
1そうだね
プレイ済み
返信[21]
親投稿
できたけど…文法が間違ってるって、RUNを一回して、はじめからを一回やって、名前をいれてAを押したらなった。
0そうだね
プレイ済み
返信[22]
親投稿
はい!イメージしたのとぴったりでした!
0そうだね
プレイ済み
返信[23]
親投稿
ポコきち pokokichi
エラー画面見せてもらえますか?
1そうだね
プレイ済み
返信[24]
親投稿
これです!
0そうだね
プレイ済み
返信[25]
親投稿
ポコきち pokokichi
なるほど 入力する場所が違っているんです。 正しい入力は なまえは? の横に入力します。 そして、エンターを押しましょう。
1そうだね
プレイ済み
返信[26]
親投稿
じゃあどうやれば横に書けるんですか?
0そうだね
プレイ済み
返信[27]
親投稿
ポコきち pokokichi
はじめからを選らんでAを押すと 写真のようになりませんか?
1そうだね
プレイ済み
返信[28]
親投稿
一瞬横に入力のやつがでるけど、そのあとすぐに下に入力のやつがいっちゃいます。一瞬だけAを押そうとしてもダメで…
0そうだね
プレイ済み
返信[29]
親投稿
ポコきち pokokichi
うーん、原因がよくわからないです。 プログラムを保存してプチコンを一度再起動してもらえますか? そしてもう一度試してください。
1そうだね
プレイ済み
返信[30]
親投稿
やはりこうなってしまった…
0そうだね
プレイ済み
返信[31]
親投稿
ポコきち pokokichi
そうですか… はじめから と つづきからの 選択の決定はAボタンじゃないと嫌ですか?
1そうだね
プレイ済み
返信[32]
親投稿
選択のところはAボタンがいいです!
0そうだね
プレイ済み
返信[33]
親投稿
あ、でも変えないとダメなら変えてもいいですよ!
0そうだね
プレイ済み
返信[34]
親投稿
ポコきち pokokichi
やっぱりそうですよね~
1そうだね
プレイ済み
返信[35]
親投稿
ポコきち pokokichi
解決方法として 一文字も入力がなかったら もう一度入力処理をさせましょう!
1そうだね
プレイ済み
返信[36]
親投稿
ポコきち pokokichi
名前入力があるまで繰り返しさせるのでREPEAT~UNTIL命令を使います。 プチコンとのタイミングをあわすVSYNC命令も使いましょう。 繰り返し終了条件として NAME$!=”” とします。 (NAME$がカラじゃないとき) LOCATE命令で左上に出るように LOCATE 0,0と指定するのも忘れずに!
1そうだね
プレイ済み
返信[37]
親投稿
ポコきち pokokichi
これでどうでしょうか?
1そうだね
プレイ済み
返信[38]
親投稿
3DSの電池がないので違うDSでコメントします!
0そうだね
プレイ済み
返信[39]
親投稿
かりな(ё)? HIBIKING0411
はい、ひびちゃんです。プログラムは出来ましたが、今はその3DSの電池がなくて見せられないので、明日見せます。
0そうだね
未プレイ
返信[40]
親投稿
ポコきち pokokichi
時間かけてしまい電池残量無くしちゃったね…すみません わかりました。明日確認しますね。
1そうだね
プレイ済み
返信[41]
親投稿
いえいえ、大丈夫です。
0そうだね
プレイ済み
返信[42]
親投稿
出来ました!遅れてすいません。
0そうだね
プレイ済み
返信[43]
親投稿
ポコきち pokokichi
きちんと動いてましたか? 動くようでしたら名前入力処理は完成ですね。 次はどこの処理を作りましょうか?
1そうだね
プレイ済み
返信[44]
親投稿
はじめからだったらまずはストーリーを考えなくては…うーん…
0そうだね
プレイ済み
返信[45]
親投稿
ポコきち pokokichi
思い付いた案は忘れないようにメモしておくたほうがいいよ! 武器、防具、アイテム、モンスターの名前とか考えることたくさんあるね。 RPGと作ると言ってもいろんなのがあるよね。 (ダンジョンRPGやアクションRPGなど) どういうRPGを作ろうとしていますか?
1そうだね
プレイ済み
返信[46]
親投稿
ドラゴンクエストみたいな、ダンジョンを冒険していくRPGです。
0そうだね
プレイ済み
返信[47]
親投稿
ポコきち pokokichi
ふむふむ、ドラクエ風RPGですね。 なんとなくですが、ひびちゃんさんの作りたい物が分かってきました。 他にも情報があれば教えて欲しいな~
1そうだね
プレイ済み
返信[48]
親投稿
それで色々(?)な装備を集めながらダンジョンを冒険して魔王を倒す。みたいな…
0そうだね
プレイ済み
返信[49]
親投稿
ポコきち pokokichi
なるほど! 村、町で情報を集めながら装備を探していき 最終目的は魔王を倒すことなんだね。
1そうだね
プレイ済み
返信[50]
親投稿
今、伝説の装備とか作ろうかな…とか思ってましたw
0そうだね
プレイ済み
返信[51]
親投稿
ポコきち pokokichi
伝説の装備いいですね。 主人公になるキャラクターの絵は決めましたか? 絵はプチコンに入っているやつを使うのかな? それとも、新しく作るのかな?
1そうだね
プレイ済み
返信[52]
親投稿
プチコンに最初から入ってるあの赤い髪のなんだっけ、あのよくいろんなゲームの主人公に使われてる髪も体も赤いあいつ、わかるかな?
0そうだね
プレイ済み
返信[53]
親投稿
謎解き要素入れるのもいいし、必殺技入れるのもいいし、うーんどうしよう!
0そうだね
プレイ済み
返信[54]
親投稿
ポコきち pokokichi
写真のキャラクターでいいのかな? (6倍して表示してます)
1そうだね
プレイ済み
返信[55]
親投稿
それです!
0そうだね
プレイ済み
返信[56]
親投稿
ポコきち pokokichi
主人公のキャラクターが決まったので 画面に表示してみましょう! スプライト用のキャラクターを表示するには、SPSET命令を使います。 書き方 SPSET 管理番号,定義番号
1そうだね
プレイ済み
返信[57]
親投稿
ポコきち pokokichi
赤い髪のキャラクターを表示するには SPSET 0,496 と命令します。 管理番号はスプライトの番号で今回は0番として指定します。 赤い髪のキャラクターのは496番として定義されています。 SPSET 0,496は 定義番号496(赤い髪のキャラクター)を管理番号0番として使いますという意味ですね。 すると画面の左上に表示されます。 では、名前入力をした処理のあとに キャラクターを表示するようにプログラムしてみましょう! キャラクター表示の前に画面の文字も消しておきましょう!
1そうだね
プレイ済み
返信[58]
親投稿
ポコきち pokokichi
写真のようにできたかな?
1そうだね
プレイ済み
返信[59]
親投稿
出来たんですけど、もう一度RUNする時にずっとキャラクターが出てきます。
0そうだね
プレイ済み
返信[60]
親投稿
ポコきち pokokichi
スプライトの使用をやめるには SPCLR命令が必要です。 書き方 SPCLR 管理番号
1そうだね
プレイ済み
返信[61]
親投稿
ポコきち pokokichi
では、プログラムにSPCLR命令を追加してみましょう! ENDの前の行にSPCLRを追加します。 するとプログラムが終了したあとキャラクターが画面に残らなくなります。
1そうだね
プレイ済み
返信[62]
親投稿
ポコきち pokokichi
写真のように出来たかな? プログラムが終了したあとキャラクターはいませんね。 しかし、キャラクターが表示されたのか分からないままプログラムが終わってしまいます。
1そうだね
プレイ済み
返信[63]
親投稿
ポコきち pokokichi
キャラクターを表示してもすぐに終了してしまうのでBボタンが押されるまで待つようにしてみましょう! REPEAT~UNTIL命令 BUTTON()命令 VSYNC命令 を使ってBボタンが押されるまで繰り返す処理をSPCLRの前の行に追加しましょう! (Bボタンが押されると32を取得します)
1そうだね
プレイ済み
返信[64]
親投稿
ポコきち pokokichi
写真のように出来たかな? キャラクターが表示されたか確認出来ますね。 Bボタンを押すとプログラムが終了します。
1そうだね
プレイ済み
返信[65]
親投稿
出来ました!
0そうだね
プレイ済み
返信[66]
親投稿
********** itd12d
どうでもいい話 ・SPを非表示にするだけならSPHIDEも使える
2そうだね
プレイ済み
返信[67]
親投稿
********** itd12d
あと ・名前の入力に文字数制限を設けたいならDIALOG、またはINKEY$が必須(INPUTで入力した後x文字目以降を削除、ということも出来ますが)
1そうだね
プレイ済み
返信[68]
親投稿
ポコきち pokokichi
キャラクターの表示が出来たので、次はそのキャラクターの表示位置を変えてみましょう! スプライトの表示位置を変えるには SPOFS命令を使います。 書き方 SPOFS 管理番号,座標(横),座標(縦)
1そうだね
プレイ済み
返信[69]
親投稿
ポコきち pokokichi
プログラムにSPOFS命令を追加してキャラクターを画面の中央に表示されるようにしてみましょう! SPSET 0,496 の次の行に SPOFS 0,192,112 を追加します。 SPOFS 0,192,112 赤い髪のキャラクターの管理番号は0としているので0を指定します。 画面の中央に表示するため座標を指定します。(横座標192,縦座標112)
1そうだね
プレイ済み
返信[70]
親投稿
ポコきち pokokichi
写真のようになったかな?
1そうだね
プレイ済み
返信[71]
親投稿
出来ました!
0そうだね
プレイ済み
返信[72]
親投稿
ポコきち pokokichi
スプライトの表示位置の変更を覚えたので 今度は十字ボタンでキャラクターを移動させてみましょう! まず、キャラクターの位置座標を記憶させる変数を作りましょう。 PXとPYという名前で変数を作ります。 (PLAYER_XとPLAYER_Y) VAR PX,PY を追加します。 次にPXとPYに初期位置となる値をいれます。 PX=192:PY=112 を追加して SPOFS 0,192,112 を SPOFS 0,PX,PY に変更します。
1そうだね
プレイ済み
返信[73]
親投稿
ポコきち pokokichi
写真(1/2)
1そうだね
プレイ済み
返信[74]
親投稿
ポコきち pokokichi
写真(2/2)
1そうだね
プレイ済み
返信[75]
親投稿
ポコきち pokokichi
タイトル部分で作ったカーソル移動処理を応用して キャラクターの移動処理を作っていきます。 判断させて処理を分けるには IF~THEN命令でしたね。 上ボタンを押すと キャラクターを上に16移動させ 下ボタンを押すと キャラクターを下に16移動させます Bボタンが押されるまで繰り返す処理の中に下のプログラムを追加しましょう。 IF BNUM==1 THEN  PY=PY-16  SPOFS 0,PX,PY ELSEIF BNUM==2 THEN  PY=PY+16  SPOFS 0,PX,PY ENDIF
1そうだね
プレイ済み
返信[76]
親投稿
ポコきち pokokichi
プログラムに誤りがありました。 Bボタンが押されるまで繰り返す処理の BTNNUM=BUTTON(2) を BNUM=BUTTON(2) に そして、 UNTIL BTNNUM==32 を UNTIL BNUM==32 に 変更しておいてください。
1そうだね
プレイ済み
返信[77]
親投稿
ポコきち pokokichi
写真のようになりましたか? 実行するとキャラクターを上下に移動できますね。 左右の動きもできるようにプログラムしてみてください。
1そうだね
プレイ済み
返信[78]
親投稿
一応できたんですけど、(上、下、だけ)下を押したときに画面左下に移動して(移動というかワープみたいな)そして二回目から押すと右に行くようになりました。
0そうだね
プレイ済み
返信[79]
親投稿
ポコきち pokokichi
56行目をよーく見てみよう! 座標指定するときに対応している変数を指定してね。 PXは横座標の値を記憶していて PYは縦座標の値を記憶しているよ SPOFS命令の書き方は SPOFS 管理番号,横座標,縦座標
1そうだね
プレイ済み
返信[80]
親投稿
あ、本当だw
0そうだね
プレイ済み
返信[81]
親投稿
ポコきち pokokichi
キャラクターの上下移動が出来たら 左右にも移動出来るようにしてみてね。 左右の移動だから 横座標の値を記憶しているPXを使いましょう!
1そうだね
プレイ済み
返信[82]
親投稿
ポコきち pokokichi
横にもキャラクターを動かせるプログラムが作れましたか?
1そうだね
プレイ済み
返信[83]
親投稿
凄い遅くなってすいません…こっちにも少し事情があり…質問左と右のBNUMは何でしたっけ?
0そうだね
プレイ済み
返信[84]
親投稿
ポコきち pokokichi
写真の表を参考にしてね。
1そうだね
プレイ済み
返信[85]
親投稿
わお
0そうだね
プレイ済み
返信[86]
親投稿
********** itd12d
表を暗記する必要は無いです。 リテラル定数も使えば便利ですよ。
1そうだね
プレイ済み
返信[87]
親投稿
えーと IF BNUM=4 THEN PX=PX-○○
0そうだね
プレイ済み
返信[88]
親投稿
ポコきち pokokichi
いい感じ! IF命令の条件の部分が間違っていますね。(=は代入です) 判断記号は  == 等しい  ! = 等しくない キャラクターのサイズは16×16で キャラクター分移動したいので 表示している場所から16移動させます。
1そうだね
プレイ済み
返信[89]
親投稿
********** itd12d
横からTipsという形で口を出していきます。 ・PX=PX-x は DEC PX,xと同じ。文字数の短縮になる場合もある。
1そうだね
プレイ済み
返信[90]
親投稿
だいぶ遅れましたが…これでいいですか?
0そうだね
プレイ済み
返信[91]
親投稿
ポコきち pokokichi
プログラムを変更したらプログラムを実行してみて、思うように動くかどうかを確認しましょう!
0そうだね
プレイ済み
返信[92]
親投稿
65行目がダメか…
0そうだね
プレイ済み
返信[93]
親投稿
何か出た!
0そうだね
プレイ済み
返信[94]
親投稿
ポコきち pokokichi
そのエラーは REPEAT~UNTIL命令の REPEATに対するUNTILがない時にでます。 プログラムを見るとREPEATもUNTILもあるようなので 繰り返しをする処理の命令の使い方に間違いがある可能性があります。 間違いを見つけて修正しましょう!
0そうだね
プレイ済み
返信[95]
親投稿
********** itd12d
X without Yは良く見るエラー。 「XがあるのにYが無いよ」って意味らしい (例) WHILE without WEND (WHILEがあるのにWENDがないよーこれじゃループできないよ困ったねー) IF without ENDIF (IFがあるのにENDIFがないよ困ったねこれじゃIFが意味をなさないよ)
0そうだね
プレイ済み
返信[96]
親投稿
くろ Andorea2000
いろいろと参考になりそうなので、お米付けておきます♪
0そうだね
プレイ済み
返信[97]
親投稿
出来ました!くろs»これもうすぐ100コメント行ってすぐ移動になりますが、それでもOKなら、どうぞ。
0そうだね
プレイ済み
返信[98]
親投稿
プログラムを付け忘れていました。
0そうだね
プレイ済み
返信[99]
親投稿
********** itd12d
どうでもいいTips:ボタン変数==xだと同時押しできません。 同時押ししたい場合は if (ボタン変数 and x)>0 then とすると良いでしょう。
0そうだね
プレイ済み