質問
この質問にはすでに答えがあります:
- ヘルプ:ZX81基本的な「ピーク」関数 3つの答え
キャラクター( '<')が壁に当たったかどうかを見つける方法が必要です(黒いピクセルグラフィック)
-ZX81ゲーム。
私は別のゲームを見てきました...コードを使用しています
Peek(Peek 16398 +256*Peek 16399)= code "ブラックピクセルグラフィック" それから ...
彼らのために働いているようです...
これは正しいコードですか?
私はアドレスと記憶やものを手に入れることについて本当に知識がありません。
私を助けてください...
- あなたがより良い方法を知っているなら。答えてください:) - 誰かが「カーソルの位置」に言及しましたZX81でそれは何ですか?ありがとう、
解決
PEEK(PEEK 16398+256*PEEK 16399)
「現在の印刷位置で文字番号を取得する」という意味です。これは、16398の2バイトワードがZX81 BASIC/ROMによって使用され、印刷位置に対応する画面データブロックのメモリ位置へのポインターを保存するためです。
したがって、衝突検出を行うには、最初に設定する必要があります。
PRINT AT X,Y;
どこに座りますか >
動きそうです、 それから 読む
LET C= PEEK(PEEK 16398+256*PEEK 16399)
その後、印刷できます >
画面上(コードが現在ある以前の文字を上書きする C
)チェックを行う前にしたい場合:
IF C=128 THEN ...
(私はあなたが望むキャラクターがオールブラックキャラクター128、█だと推測しています。)
ああ、私は年をとっていますか。
他のヒント
うわー、これは戻ってきます。 ZX81を使用していませんが、TRS-80でゲームを1日に戻しました。
内側の部分:
(Peek 16398 +256*Peek 16399)
2つのメモリロケーション(8ビット)の値をほとんど取得し、16ビットを作成しています
それらからの番号。それは外側のピークのアドレスとして使用されます。これを書き換えることができます。
addrtocheck =(Peek 16398 +256*Peek 16399)
pixelvalue = peek(addrtocheck)
pixelvalue = code "blackpixelグラフィック"の場合...
「addrtocheck」値は、実際にはゲーム内のキャラクターの位置であり、画面上のアドレスとして表現されていると推測しています。したがって、値が壁ではない場合、アドレス16398と16399の値を新しいキャラクターの位置(「ポーク」を使用して、疑いの余地はありません)を更新します。
お役に立てれば