ここから本文です

HSPについての質問です。

disdisastarさん

2010/10/500:18:48

HSPについての質問です。

HSPで自機をx=180 y=300の位置に出したいです。そこで、
buffer 1,40,40
picload "自機.bmp"
screen 0,400,400

*main
stick key,15
if key & 1:x--
if key & 2:y--
if key & 4:x++
if key & 8:y++

boxf 0,0,400,400
x = 180
y = 300
pos x,y
gcopy 1,0,0,40,40

redraw 1
wait 1
redraw 0
goto *main
こういうプログラムを組みました。しかし、これだと自機が移動しません。何故これでは自機が移動しないのでしょうか?
次のように組むとx=180 y=300の位置から動かすができるのは別の質問で分かっています。
buffer 1,40,40;仮想画面作成
picload"自機.bmp";仮想画面に画像表示
screen 0,400,400;見える画面作成
x=180;初期位置(x値)
y=300;初期位置(y値)
*main
boxf 0,0,400,400;画面塗りつぶし
stick key,15;キー入力情報を変数keyに代入
if key=1:x-2
if key=2:y-2
if key=4:x+2
if key=8:y+2
pos x,y;コピーの位置
gcopy 1,0,0,40,40;見える画面に画像コピー
redraw 1
wait 1
redraw 0
goto *main

閲覧数:
267
回答数:
1

違反報告

ベストアンサーに選ばれた回答

arc********さん

2010/10/500:30:06

ループの内部で毎回、x=180,y=300を代入しているんだから、x=180 y=300から動くはずがない。

下のように、ループに入る前に初期位置を代入するなり、
ループ内で初めの1回しか実行されないようにするなりする必要があります。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる