HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0805
kkkkk自機を動かす方法を教えてください4未解決


kkkkk

リンク

2017/8/5(Sat) 14:01:24|NO.80834

HSPでの自機の動かし方について質問です
自機を動かすのをコントロールキーでやりたいのですが調べてみてもよくわかりません
出来ればサンプルコード付きで書いてもらえると嬉しいです
まだまだ初心者なのでお願いします



この記事に返信する


科学太郎

リンク

2017/8/5(Sat) 15:40:21|NO.80836

> 自機を動かすのをコントロールキーでやりたいのですが調べてみてもよくわかりません
これが良く分かりません。

つまり、
[CTRL]+[E]で上移動
[CTRL]+[S]で左移動
[CTRL]+[D]で右移動
[CTRL]+[X]で下移動
という意味でしょうか?



沢渡

リンク

2017/8/5(Sat) 16:49:02|NO.80839

初心者であることと、文脈から考えて、カーソルキーのことを言ってるのではないかと。
(ダイヤモンドカーソルなんか知ってる初心者がいたら怖いです)

キー状態の検出にはstick文を使うとよいでしょう。

stick key,15
これでキーの状態が変数keyの中に入るのですが、第2引数の15というのは、
「上下左右のカーソルキーについては、押しっぱなしでも検出する」という意味です。
(ヘルプのstick文の説明にある、カーソルキーをあらわす4つの数値を足したものです)

そのあとのキー入力の判定の仕方ですが、これには&を使った判定式を使います。

if key&1 { //(左キーが押された時に実行するコード) }
こうすると、左キーが押されているかどうかを判定し、押されている場合は
括弧内のコードを実行します。
&1の部分を2や4や8に変えれば他のキーも判定できます。

これらを踏まえた上で。

screen 0,400,300,0 font msgothic,16 x=100 y=100 flag=1 repeat stick key,15 if key&1 { //左 flag=1 x=limit(x-1,0,400) } if key&2 { //上 flag=1 y=limit(y-1,0,300) } if key&4 { //右 flag=1 x=limit(x+1,0,400) } if key&8 { //下 flag=1 y=limit(y+1,0,300) } if flag { redraw 0 color 255,255,255 : boxf color 0,0,0 pos x,y : mes "●" redraw 1 } flag=0 await 30 loop



kkkkk

リンク

2017/8/9(Wed) 21:50:48|NO.80877

返信遅れましたサンプルコードまでありがとうございます!



kkkkk

リンク

2017/8/9(Wed) 21:51:22|NO.80878

急いでいたので文章がおかしくなっていました



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.80834への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2017(c) All rights reserved.