Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
1 … 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 … 78
次のページ(過去)
トピック
ネタバレ

小悪魔の辞典

「xxゲー」  一時期、ゲームを批判する言葉として使っていたらしい。しかし、生物としての「ヒト」に「xx」を利用する能力が無く、取り扱いに注意が必要ではあるが、動物の「xx」は、生態系で重要な働きをしていることがわかっている。また、エネルギー、肥料、鉱物資源の原材料として使われるものである。つまり、「xx」の使い方として適切な使い方で無いことは明らかである。そして、無知による偏見が道を誤る教訓の一つである。    参考  ・「聞くは一時の恥、聞かぬは末代の恥」  ・「知らざるを知らずとせよ」
4そうだね
プレイ済み
返信[9]
親投稿
Dの未設定パターンには、以下の2つがあるように見えます。 1)タッチしていない時が含まれるとき 2)XX-X==0またはYY-Y==0のとき  (タッチしたまま動かさない時を含む) その他気になる点としてATANの引数の順序が逆のような気がします。 (意図的にそうしているのであれば、すみません。) ついでに、「仮引数(形式的パラメータ)」とは、ユーザ定義命令を作るDEF命令に書く引数のことです。ユーザ定義命令呼び出し(実行)時に指定する引数は、「実引数(実パラメータ)」と言ったりします。 あまり使うことはないと思いますが、IN/OUTで同じ変数を使うときは、仮引数に別の名前をつけて、実引数で同じ変数を使えばIN/OUTとして使えます。
0そうだね
プレイ済み
返信[3]
親投稿
DEF命令の仮引数で、in/outに同じ名前を指定したときや、OUT引数に値を設定する前に呼び元に戻るときにも出ます。
1そうだね
プレイ済み
返信[2]
親投稿
初期化された変数以外を使ったと翻訳(誤訳?)すればそれらしくなるのでは? ユーザ定義命令呼び出しの場合にも出るので、代入時に、右辺が不適切とプチコンが判断した場合に出るエラーと思われます。 どんなエラーを出すかは、インタプリタの自由なので、エラーの出た所かその前に修正する所があるくらいに考え、分かりやすいエラーメッセージが出たときはラッキーくらいに考えています。
0そうだね
プレイ済み
返信[30]
親投稿
「リアルタイム性」が、少しわかった気がします。 どうやら、 1)れいさんの言う「リアルタイム性」は、リアルタイムシステムの性能を評価する指標の1つで、 2)私が言う「リアルタイム」は、リアルタイムシステムの実装方法の1つ という違いがあるようです。 一言でリアルタイムシステムと言っても、自動車のエンジン制御のように高い「リアルタイム性」が要求されるものもあれば、(コンピューターによるシステムではありませんが)チケット販売の行列のように、お客さんからクレームが出なければ、十分リアルタイムシステムとして成り立つものもあります。
0そうだね
プレイ済み
返信[8]
親投稿
変数が文字列S$であれば DIALOG S$ 変数が数値Aであれば、 DIALOG STR$(A) または、 DIALOG FORMAT$("%D秒スリープモードでした",A) のように文字列に変換すればすれば出来ます。 変換用関数はヘルプを参照してください。
0そうだね
プレイ済み
返信[6]
親投稿
ENDIF命令はIF命令の終わりをプチコンに指示する命令です。これ以降の命令は、IFの条件式がが真でも偽でも実行します。
0そうだね
プレイ済み
返信[5]
親投稿
やり方は、いくつかあります。 ハッピーゲーマーさんの好みに合うかわかりませんが、私の好みだと、 C=B-A: 次は IF C<60 THEN DIALOG "スリープモードでした":ENDIF:GOTO @A だけでも出来ると思います。
0そうだね
プレイ済み
返信[4]
親投稿
すみません。敬称を書き忘れました。
0そうだね
プレイ済み
返信[3]
親投稿
同じプログラムなので同じく終了します。ハッピーゲーマーがやりたいことと実際のプログラムとの違いがわかりやすくなるかと思ったのですが、逆に誤解させてすみません。 「:」でつなぐとプチコンは1つのまとまりと認識します。 THENの後ろに使うと、「:」でつないだ全ての文をIFの条件が「真」の時に処理するように指示されたと理解します。
0そうだね
プレイ済み
返信[1]
親投稿
IF以降が以下と同じ振る舞いなので、C!=60の時に終了していると思います。 IF C==60 THEN GOTO @A IF C<60 THEN GOTO @B @B DIALOG"スリープモードでした。" GOTO @A ENDIF ENDIF
0そうだね
プレイ済み
返信[28]
親投稿
>あちこちでイベント起きて割り込み入ると実行時間の予測がつかなくなるのでリアルタイム性が失われる、 わかっているとは思いますが、イベントの発生確率分布がわかっていれば、実行時間の予測は可能ですよね。システムに要求される時間内に処理が終わるかは別問題ですが。
0そうだね
プレイ済み
返信[26]
親投稿
最近の動向を知らないので、「OSのリアルタイム性」が何かはわかりません。 古い情報ですが、リアルタイムシステムとかリアルタイム処理と言うときの、リアルタイムとは、「イベントが発生してから、システムに要求される時間内に処理を終える。」ことです。 (時間は実行する処理によって異なります。n/μ/m秒だったり、秒/分/時間だったりします。ものによっては、イベントの発生確率分布がおまけに付いたり、仕事が立て込んできた時(「ふくそう」した時)には、処理しなくて良いと言う条件が付くこともあります。) リアルタイム処理の要求条件を無視したアプリケーションがあれば、リアルタイムOS(よくわかりません)を使ってもリアルタイム処理にならないと思います。 Oskarさんの「割り切った考え方」のおかげで、プチコンのプログラミング(特に試験)が楽になっている場合が多いと思います(個人的な感想)。
0そうだね
プレイ済み
返信[12]
親投稿
推測なので間違っているかもしれませんが、 画面の表示には、 1)ユーザプログラムからの指示で、更新されるエリア 2)ハードが読み取って画面に反映するエリア があって、 VSYNCを契機とした周期プログラムが、1のエリア情報を元に2のエリアを更新する構成を想定し、1のエリアを共通リソースと考えました。
0そうだね
プレイ済み
返信[10]
親投稿
知っているとは思いますが、VSYNCを契機とする周期処理とインタプリタの処理とが、共通リソースで競合すると問題が発生します。その対処として、インタプリタの処理の一部で割り込みをマスクするか、VSYNCの周期処理と同じスレッドへ乗り換える処理で排他制御をしている(推測)為にそのような振る舞いになっていると思われます。ユーザが、処理を小分けにすれば、回避できると思います。
0そうだね
プレイ済み
返信[1]
親投稿
2つ同時に設定できます。 推測なので見当違いかもしれませんが、問題はBGMPLAYの方ではないでしょうか。 1)BGMPLAYを続けて実行すると、同じトラック番号の場合、先に実行したものは停止します。 2)順番に実行したいのでしたら、BGMCHK()などで前のBGMPLAYが終わるのを待ち合わせる必要があります。 3)2つのトラックを同時に演奏させたいのでしたら、2つのBGMSETDを先に実行して、2つのBGMPLAYを後で実行しないと演奏開始時間にずれが生じます。
0そうだね
プレイ済み
返信[5]
親投稿
ガイドブックによれば、省略時(デフォルト)は、256と2になっています。上下で同じ数を割り当てる仕様のようです。
0そうだね
プレイ済み
返信[3]
親投稿
XSCREEN命令の引数にSPRITE割当数とBG割当数があります。 この引数は、プチコンで使える512個のスプライトと4個のBGレイヤーを上画面にいくつ割り当てるかを指定するものです。残りの数が、下画面で使える数になります。この引数を指定していないのでデフォルトの数が割り振られます。デフォルト値は調べたことがないのでわかりません。 その数を超えたということです。自分が使いたい分を割り当ててください。
0そうだね
プレイ済み
返信[1]
親投稿
SPSETしていないときに出るエラーなのと上画面と下画面で同じ管理番号でも違うスプライトなので、 SPSETしたときのDISPLAY番号とSPCHKしたときのDISPLAY番号を確認してみてはどうでしょうか。
0そうだね
プレイ済み
返信[10]
親投稿
1の場合は、移動後、以下のようにすればスプライト1が左上に来たときだけ見えなくなります。 SPOFS 1 OUT X,Y IF X==0 && Y==0 THEN SPHIDE 1 ELSE SPSHOW 1 3の場合以下のようにならなかったのでしょうか。 (ダイレクトモードで確認した範囲ではうまくいったのですが、) BGPUT 1,0,0,99 <BGが表示される> SPSET 1.1 <SPがBGの上に表示される> BGOFS 1,0,0,-1 <SPがBGの後ろに隠れる>
0そうだね
プレイ済み