Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2018/11/06 (火)

キー同時押しで斜めに動かしたい! &もし~違えばのナゾ?

| 00:27 | キー同時押しで斜めに動かしたい! &もし~違えばのナゾ? - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - キー同時押しで斜めに動かしたい! &もし~違えばのナゾ? - 雪乃☆雫のなでしこ日和 キー同時押しで斜めに動かしたい! &もし~違えばのナゾ? - 雪乃☆雫のなでしこ日和 のブックマークコメント

 キーボードで動かすのは、やっぱり斜めも動きたいよねぇ~。

 「↑」と「→」同時押しで右上みたいなのは、なでしこ1には「キー状態」とゆう命令があって簡単だったけど、なでしこ3には無いっぽいんだけれど、「キー押した時」と「キー離した時」のイベントでフラグを立てれば、同じように出来そうだね。


 ・・・と思って色々やっていたんだけども、どうも「もし違えば」が、うまく働かなかったりする。

 前から、んなよーな気がしたりしなかったりしてたんだけども、単になでしこ1では不要だった「ここまで」を忘れてる事件;なども多かったので、なんか自分が違ってるんだろうと思ったり思わなかったりで、だましだましやっていたんですけれどね。

 それにしても・・・

右キー=オフ。右位置=OK。
もし、(右キー=オン)ならば、
  もし、(右位置=OK)ならば、
   「右」と表示。
  ここまで。
違えば、
  「左」と表示
ここまで。

 コレが、動作しないって、どーいうことなんです?

 前からこんな感じだっただろうか・・・

 ちなみに、なでしこ1では、意図したとうり「左」になります。

 なんかね、「もし違えば」の「もし」の中に、さらに「もし」の文が入ってると、「もし」の部分はいいけど「違えば」の部分が働かなくなっちゃうっぽい?

右キー=オフ。右位置=OK。
もし、(右キー=オン)ならば、
//  もし、(右位置=OK)ならば、
   「右」と表示。
//  ここまで。
違えば、
  「左」と表示
ここまで。

 単純にこれだけだったら、ちゃんと「左」になるワケですよ。むむむ(@_@)

 してどうやら、「もし」の中の「もし文」に「違えば」が付いていれば、行けるっぽい?

右キー=オフ。右位置=OK。
もし、(右キー=オン)ならば、
  もし、(右位置=OK)ならば、
   「右」と表示。
  違えば、
   「NG」と表示。
  ここまで。
違えば、
  「左」と表示
ここまで。

 ええっΣ(゜д゜;


 いやいや、とりあえず斜めに動かす自体は、「違えば」使う必要なんて無くできたけどもさw

<script type="なでしこ">
#-----------------------------------------------------------------------
# キー同時押しで斜めに動かす
#-----------------------------------------------------------------------
画面w=640。画面h=480。
玉w=20。玉h=20。
玉x=画面w/2-玉w/2。玉y=画面h/2-玉h/2。

「#ball」へ描画開始。
[10,10]へ9の描画。

「#ball」の「左」に「{玉x}px」をDOMスタイル設定。
「#ball」の「top」に「{玉y}px」をDOMスタイル設定。

右キーはオフ。左キーはオフ。上キーはオフ。下キーはオフ。
DOCUMENTをキー押した時には、
 もし、押されたキー=「ArrowRight」ならば、右キー=オン。
 もし、押されたキー=「ArrowLeft」ならば、左キー=オン。
 もし、押されたキー=「ArrowDown」ならば、下キー=オン。
 もし、押されたキー=「ArrowUp」ならば、上キー=オンここまで。
DOCUMENTをキー離した時には、
 もし、押されたキー=「ArrowRight」ならば、右キー=オフ。
 もし、押されたキー=「ArrowLeft」ならば、左キー=オフ。
 もし、押されたキー=「ArrowDown」ならば、下キー=オフ。
 もし、押されたキー=「ArrowUp」ならば、上キー=オフここまで。

「キャラ移動」を0.01秒毎

●キャラ移動
 もし、(右キー=オン)かつ(玉x<画面w-玉w*2)ならば、玉x=玉x+3。
 もし、(下キー=オン)かつ(玉y<画面h-玉h*2)ならば、玉y=玉y+3。
 もし、(上キー=オン)かつ(玉y≧玉h)ならば、玉y=玉y-3。
 もし、(左キー=オン)かつ(玉x≧玉w)ならば、玉x=玉x-3。

 「#ball」の「left」に「{玉x}px」をDOMスタイル設定。
 「#ball」の「top」に「{玉y}px」をDOMスタイル設定。
ここまで。

#-----------------------------------------------------------------------
</script>

<H1>キー同時押しで斜めに動かす</H1>
<HR>
<style type="text/css">
#base {
  margin:auto;
  width:640px;
  height:480px;
  border:2px solid #999999;
}
#main {
  position:absolute;
}
#ball {
  position:absolute;
}
</style>

<div id="base">
  <div id="main">
    <canvas id="ball" width=20 height=20></canvas>
  </div>
</div>

http://snowdrops.starfree.jp/wnako3_test/15_Keyboard_2.html

ゲスト



トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20181106