Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
187 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107184
次のページ(過去)
返信[21]
親投稿
そういえば:(コロン)の話題が出たのでついでに。 :(コロン)を使うとマルチステートメントで1行にたくさんのプログラムを書けますが、これも使いすぎて1行に詰め込みすぎない方がいいと思っています。 僕の詰め込み方針(?)としては、その行を日本語で説明したときにひとことで言い表せるかが基準(なので変数の初期化系はまとめることが多い)になってますが、それでも詰め込みすぎには注意してます。 あとFORやIFなどを使う場合でブロックが複数行になる場合は、マルチステートメントで後ろに書くのではなく出来るだけ行頭(インデントはあり)から始めた方がいいとも思っています。(ブロックが複数にならないでその行で終わる場合は例外としてるけど) まあコーディングルールは好みもあって絶対はないのですが、今までまったく意識してなかった人などは参考にしてもらえたらという感じです。
1そうだね
プレイ済み
返信[20]
親投稿
>Godotさん 確かに:(コロン)の省略は気になるというか、普通はやらない方がいいと思いますね〜。例外としては1行プログラムや1画面プログラムなどの特殊用途でどうしても短くしたいときぐらいでしょうかね。 :は可読性の面でもあった方が見やすいと思うし、おっしゃるとおり固まりや区切りを明確に意識するためにもちゃんと書いた方が良いと思います。 ちなみに僕もPCのインデントは4ですね〜。アセンブラの時は8でしたが今では8はほとんど使いません。 >おかっぺさん コメントも大事ですよね。僕はプチコンではどうしてもコメントが少なくなります…。(単に打ち込みが面倒なのでですが) まあ人に改良してもらう事が前提ならコメントを増やすかもしれませんが現時点では最低限になっちゃってますねぇ…。というかどんどん減ってるかもしれません(^^;
2そうだね
プレイ済み
返信[5]
親投稿
確かに方法がありすぎますね〜。 柔軟に色々やりたければASAさん方式がいいですね。その場合、会話関係の処理でよく出てくるものを汎用関数化しておくといいと思います。 簡易スクリプトを作るという方法もありますがBASICがそもそもスクリプトみたいなものなので関数処理にするのとあまり変わらないような気がしますね。
0そうだね
プレイ済み
返信[3]
親投稿
プログラムサンプルです。 結構手抜きですが…
0そうだね
プレイ済み
返信[2]
親投稿
基本的にはどういう風にデータ化するかでしょうねぇ。答えがあるわけではないのでケースバイケースで実装する事になると思います。 例えばフラグのための変数配列を用意して、その内容によって会話を切り替える、みたいな処理の場合は以下のようにも出来ます。 コメントアウトしている部分を有効にするとフラグが変わってメッセージが変わるのが分かると思います。この関数でメッセージを切り替える場合は、DATAの1つが1つのセリフになっていて、その先頭が、"F:"で始まっている場合はフラグをチェックして、そのフラグが立っているときのみそのセリフを返す。ような処理になっています。
0そうだね
プレイ済み
返信[1]
親投稿
僕はスプライトに付随できる変数みたいな感じで自由に使えるものだと思っています。(たぶんあってるかと) あとSPVARでも7番目の値はSPANIM命令でも制御出来る特殊な変数だと思いますが、ただ今はバグもあってその機能はあまり正常には動いてないっぽいです。
0そうだね
プレイ済み
返信[17]
親投稿
>りゅうまごさん スペースを1つにするか2つにするかは好みですよね〜。 僕も始め迷いましたが、プチコンは桁数が少ないのと基本大文字を使うのでスペース1つでも可読性は悪くないと判断して1つにしてます。 …が、これは本当に好みなので、どちらでもいいと思ってます〜。 >けいさん 僕も基本は可読性ですね。って、それは今までの発言や経緯からもわかりそうですが(^^; ただ一部の定石や例外的に可読性を犠牲にすることはあるとも思ってますけどね。ただ初心者はその辺は気にせずに可読性を重視しておいた方が無難だとも思いますね。
3そうだね
プレイ済み
返信[5]
親投稿
bluetoothがあったとしても自由には解放されないと思うので、外部キーボードを接続できるぐらいかなーって思いますね〜。 ただ外部キーボードのタイプ情報を自動で送るプログラムを組む人は現れそうなので、そうなると結構データ流し込み出来ちゃうのかなぁ…。 NFCでキーボードチックなことが出来れば面白いけど無理っぽいですよね(^^; てかあまり詳しい仕組みは知らないので方法があったらわかりませんが…。 ポケモンタイピングのソフトを買って、それを差しておけばプチコンでもキーボードが使えるなんて技があったとしたら、いきなり爆売れしそうですね(^^;
1そうだね
プレイ済み
返信[14]
親投稿
>Tossy_トッシーさん そうですね〜。このプログラムを見るととても見やすいと思います。 見やすいというのは人に対してもそうですが、未来の自分に対しても優しいことになるので、ちょっとしたことでわかりやすくなるのであれば面倒くさがらずにやっておいた方が後々のためになると思いますよ〜。
1そうだね
プレイ済み
返信[12]
親投稿
そしてサンプルソースは以前作ったやつを変更するだけという手抜きなのでした…(^^;
0そうだね
プレイ済み
返信[11]
親投稿
>ゆうたんさん あー、インデント継続は一応ありますね。まあこれがあれば自分でインデント入れるのも慣れれば気にならなくなりますが。ただちゃんとインデント機能があれば初心者でも入れる場所がわかりやすくなるかなと思った感じでした。(当然ON/OFFオプションや賢いのが前提で) ただそれとは関係ないですが、プチコンはスペース削除はYボタンでやりやすいけど入れるのはスペース(タッチ)なのでまとめて変更するときにちょっとやりづらく感じますね。 >おかっぺさん いえいえ。僕も手抜きをしようとしていたわけなのでお互い様です(^^;
1そうだね
プレイ済み
返信[9]
親投稿
インデントや適度な改行やスペースを入れるとこうなります。 こっちの方が見やすいでしょ?
2そうだね
プレイ済み
返信[7]
親投稿
例として前に出した簡易BG読み込みプログラムをわざと見にくくしました。 これがインデントや改行を入れない場合です。
0そうだね
プレイ済み
返信[6]
親投稿
>ゆうたんさん 自動整形があるとわかりやすくはあるんですけどね〜。 自動整形まではともかく、オートインデントはあればいいなって思ったことはありますね。IFで改行したら頭に1つスペース入れておいてくれるやつです。
0そうだね
プレイ済み
返信[5]
親投稿
>おかっぺさん やっぱりそうですよね〜。僕もそう思ったのですが書いているときに良い例が思いつかなかったので手を抜いて、誰かが公開キーを出してくれたらそれに対しての修正例を一部出せばいいかなと思ったんですが、やっぱり手抜きは微妙なので一応用意します(^^;
1そうだね
プレイ済み
返信[2]
親投稿
もし自分のプログラムをどうしたらいいかわからない人がいたら、ここに公開キーを上げてくれれば、どのように変えたらいいのかをテスト的に試してみたりもしますよ。 (ただし長いプログラムは全て直すのが大変なので一部だけやって例とします)
0そうだね
プレイ済み
返信[1]
親投稿
これをやるとやらないとではプログラムの見やすさが格段に変わってくると思うので、出来るだけやった方がいいんじゃないかと思っています。 またこのようなFORやWHILEなどの大きなブロックの前後には適度に空行を入れが方が見やすくなることも多いので、これもオススメです。
0そうだね
プレイ済み
投稿
最近脱初心者の方が増えてきて、その人が新しい人に教えているような姿も見えて良いことだなぁ、と思っています。 その時にリストを見たりもしますが、その時に気になることが少しだけあるのでコメントしてみます。(強制ではないですが) 細かく言うと色々ありますが、とりあえず説明書などでは語られないことで普段プログラムをしているならほぼ使っているものにインデント(字下げ)というのがあります。 これはIF〜ENDIFやWHLE〜WEND、FOR〜NEXTなどブロック範囲に適用される命令の時にその範囲がわかるようにインデント(字下げ)する手法です。 字下げは通常の言語はタブ1つ想定(4文字)が多いのですが、決まりがあるわけではなく、とくにプチコンでは横の表示桁数の関係で1文字〜2文字が多いようです。(ちなみに僕は1文字です)
20そうだね
プレイ済み
返信[4]
親投稿
みんなが言っているように、IF〜THENとGOTO、変数辺りは憶えておきたいですね。GOTOに関しては他のループ命令を憶えれば必要なくなってきますが、とりあえず始めは取っつきやすいんじゃないかと思います。 あと英語が読めることとプログラムが作れることはほとんど関係ないですよ。プログラムは英文法と言うよりはプログラム(言語)というまた別の文法ですからね。(それもシンプル)
0そうだね
プレイ済み
返信[9]
親投稿
基本メインループの際はVSYNC 1(1は省略も可)をいれるようにした方が良いですよ。キー入力などほぼVSYNCを前提に処理されている命令などもありますし…。 もしVSYNCが1でも遅いと感じるなら、その時は移動量(座標に足す値)を増やすなどで対応した方がいいです。どちらにしてもVSYNC1(1/60フレーム)よりも早い速度では画面が更新されないので表示的には飛んでいるはずです。
3そうだね
プレイ済み