この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
ch_qa_sample_prg [2019/06/26 17:51] klab [Q11:放物線を描く動きをしたい] |
ch_qa_sample_prg [2019/06/26 18:29] klab [Q8:マウスカーソルを追いかけるアニメーションを作りたい] |
||
---|---|---|---|
ライン 5: | ライン 5: | ||
## Q1:描いた図形をアニメーションで動かしたい | ## Q1:描いた図形をアニメーションで動かしたい | ||
- | かめたで描いた図形は、「図形を作る」のメソッドで部品化できます。 | + | かめたで描いた図形は、「図形を作る」の命令で部品化できます。 |
部品化した図形は、タイマーの処理を利用することで一定間隔で移動することができます。 | 部品化した図形は、タイマーの処理を利用することで一定間隔で移動することができます。 | ||
ここでは、棒という図形を描いて、これを右から左に動かしています。(対応:JAVA版/JS版) | ここでは、棒という図形を描いて、これを右から左に動かしています。(対応:JAVA版/JS版) | ||
ライン 12: | ライン 12: | ||
//////step1 動かしたい図形を作る//////// | //////step1 動かしたい図形を作る//////// | ||
かめた=タートル!つくる。 | かめた=タートル!つくる。 | ||
- | 「かめた!100 歩く 90 右回り」!4 繰り返す。 | + | 「かめた!20 歩く 90 右回り 100 歩く 90 右回り」!2 繰り返す。 |
棒=かめた!(青) 図形を作る。 | 棒=かめた!(青) 図形を作る。 | ||
棒!200 100 位置。 | 棒!200 100 位置。 | ||
ライン 20: | ライン 20: | ||
時計!「棒!-20 0 移動」実行。 | 時計!「棒!-20 0 移動」実行。 | ||
</code> | </code> | ||
- | [[http://klab.eplang.jp/honda/djs/index.html?src=2f2f2f2f2f2f737465703120e58b95e3818be38197e3819fe38184e59bb3e5bda2e38292e4bd9ce3828b2f2f2f2f2f2f2f2f0ae3818be38281e3819fefbc9de382bfe383bce38388e383abefbc81e381a4e3818fe3828be380820ae3808ce3818be38281e3819fefbc81313030e38080e6ada9e3818fe38080393020e58fb3e59b9ee3828ae3808defbc8134e38080e7b9b0e3828ae8bf94e38199e380820ae6a392efbc9de3818be38281e3819fefbc81efbc88e99d92efbc89e38080e59bb3e5bda2e38292e4bd9ce3828be380820ae6a392efbc813230302031303020e4bd8de7bdaee380820a0a2f2f2f2f2f2f737465703220e59bb3e5bda2e38292e58b95e3818be381992f2f2f2f2f2f0ae69982e8a888efbc9de382bfe382a4e3839ee383bcefbc81e4bd9ce3828be380820ae69982e8a888efbc81e3808ce6a392efbc812d3230203020e7a7bbe58b95e3808de5ae9fe8a18ce38082|このプログラムをJS版ドリトルで動作確認する]] | + | [[http://klab.eplang.jp/honda/djs/index.html?src=2f2f2f2f2f2f737465703120e58b95e3818be38197e3819fe38184e59bb3e5bda2e38292e4bd9ce3828b2f2f2f2f2f2f2f2f0ae3818be38281e3819fefbc9de382bfe383bce38388e383abefbc81e381a4e3818fe3828be380820ae3808ce3818be38281e3819fefbc81323020e6ada9e3818f20393020e58fb3e59b9ee3828ae38080313030e38080e6ada9e3818fe38080393020e58fb3e59b9ee3828ae3808defbc8132e38080e7b9b0e3828ae8bf94e38199e380820ae6a392efbc9de3818be38281e3819fefbc81efbc88e99d92efbc89e38080e59bb3e5bda2e38292e4bd9ce3828be380820ae6a392efbc813230302031303020e4bd8de7bdaee380820a0a2f2f2f2f2f2f737465703220e59bb3e5bda2e38292e58b95e3818be381992f2f2f2f2f2f0ae69982e8a888efbc9de382bfe382a4e3839ee383bcefbc81e4bd9ce3828be380820ae69982e8a888efbc81e3808ce6a392efbc812d3230203020e7a7bbe58b95e3808de5ae9fe8a18ce38082|このプログラムをJS版ドリトルで動作確認する]] |
## Q2:かめた(タートル)で図を描いた後、線を描かずにかめたの位置を変更したい | ## Q2:かめた(タートル)で図を描いた後、線を描かずにかめたの位置を変更したい | ||
- | かめたは「ぺんなし」のメソッドを利用することで、線を描かずに移動するようになります。 | + | かめたは「ぺんなし」の命令を利用することで、線を描かずに移動するようになります。 |
- | なお再び線を引かせたい場合は「ぺんあり」メソッドを利用します。(対応:JAVA版/JS版) | + | なお再び線を引かせたい場合は「ぺんあり」の命令を利用します。(対応:JAVA版/JS版) |
<code> | <code> | ||
ライン 42: | ライン 42: | ||
## Q3:図形にぶつかったら、かめたを消したい | ## Q3:図形にぶつかったら、かめたを消したい | ||
- | かめたの「衝突」メソッドに、ぶつかった相手をを消す命令を書くことで、 | + | かめたの「衝突」の命令に、ぶつかった相手を消す命令を書くことで、 |
図形にぶつかった瞬間に、衝突した対象の図形などを消去する動作を実現できます。(対応:JAVA版/JS版) | 図形にぶつかった瞬間に、衝突した対象の図形などを消去する動作を実現できます。(対応:JAVA版/JS版) | ||
ライン 70: | ライン 70: | ||
下記の例では、開始から5秒間以上 かめたが図形にぶつからなければ「ゲームクリア」と表示し、 | 下記の例では、開始から5秒間以上 かめたが図形にぶつからなければ「ゲームクリア」と表示し、 | ||
- | 開始から五秒以内に図形にぶつかったら「ゲームオーバー」と表示します。(対応:JAVA版/JS版) | + | 開始から五秒以内に図形にぶつかったら「ゲームオーバー」と表示します。 |
+ | |||
+ | 衝突により「:ゲーム状態」というフラグ(変数)の中身が変わることがポイントです。 | ||
+ | 衝突時に「時計」で実行中の動作を中断しているため、ぶつかった瞬間に「最後に実行」の内容が実行されます。 | ||
+ | したがって、衝突するとすぐにゲームオーバーの文字が表示されます。 | ||
+ | |||
+ | (対応:JAVA版/JS版) | ||
<code> | <code> | ||
ライン 182: | ライン 188: | ||
大星=「かめた!60 歩く 144 左回り」!5 繰り返す 図形を作る。 | 大星=「かめた!60 歩く 144 左回り」!5 繰り返す 図形を作る。 | ||
大星!(黄色)塗る。 | 大星!(黄色)塗る。 | ||
- | /////////Step2:図形を異なるタイミングで動かす///////// | + | /////////Step2:マウスの位置に合わせて図形を動かす///////// |
時計=タイマー!作る。 | 時計=タイマー!作る。 | ||
時計!100秒 時間 0.1秒 間隔。 | 時計!100秒 時間 0.1秒 間隔。 | ||
ライン 193: | ライン 199: | ||
## Q9:図形の中心位置に別の図形を配置したい | ## Q9:図形の中心位置に別の図形を配置したい | ||
描いた図形の中心位置を取得し、その位置に別の図形を移動するようにプログラムすることで、 | 描いた図形の中心位置を取得し、その位置に別の図形を移動するようにプログラムすることで、 | ||
- | アニメーション作成時に常に同じ位置に重なって表示する図形を書くことができます。(対応:JAVA版) | + | アニメーション作成時に常に同じ位置に重なって表示する図形を書くことができます。 |
+ | このサンプルでは、「三角」の図形の中心位置を取得し「点」図形をその位置に移動しています。(対応:JAVA版) | ||
<code> | <code> | ||
ライン 203: | ライン 210: | ||
点!(赤)塗る。 | 点!(赤)塗る。 | ||
座標表示=ラベル!"X:--- Y:---" 作る。 | 座標表示=ラベル!"X:--- Y:---" 作る。 | ||
- | /////////Step2:図形を異なるタイミングで動かす///////// | + | /////////Step2:三角の中心座標を取得して点図形を移動する///////// |
時計=タイマー!作る。 | 時計=タイマー!作る。 | ||
時計!10秒 時間 0.1秒 間隔。 | 時計!10秒 時間 0.1秒 間隔。 | ||
時計!「 | 時計!「 | ||
三角! 2 -2 移動する。 | 三角! 2 -2 移動する。 | ||
+ | 三角のX座標=(三角!getx)。 | ||
+ | 三角のY座標=(三角!gety)。 | ||
点!( 三角のX座標)(三角のY座標) 位置。 | 点!( 三角のX座標)(三角のY座標) 位置。 | ||
- | 三角のX座標=(三角!getx)。 | ||
- | 三角のY座標=(三角!gety)。 | ||
座標表示!("X:" + (三角のX座標) + " Y:" + (三角のY座標) ) 書く。 | 座標表示!("X:" + (三角のX座標) + " Y:" + (三角のY座標) ) 書く。 | ||
ライン 217: | ライン 224: | ||
## Q10:図形に当たったら跳ね返るアニメーションを作りたい | ## Q10:図形に当たったら跳ね返るアニメーションを作りたい | ||
- | タートルオブジェクトの「衝突」メソッドに、「タートル:跳ね返る」を設定することで、 | + | タートルオブジェクトの「衝突」の命令に、「タートル:跳ね返る」を設定することで、 |
タートルが図形と衝突した時に、跳ね返ったような動作を追加することができます。(対応:JAVA版/JS版) | タートルが図形と衝突した時に、跳ね返ったような動作を追加することができます。(対応:JAVA版/JS版) | ||
ライン 264: | ライン 271: | ||
<code> | <code> | ||
直進状態=はい。 | 直進状態=はい。 | ||
- | |||
動作変更ボタン=ボタン!”動作変更” 作る。 | 動作変更ボタン=ボタン!”動作変更” 作る。 | ||
- | |||
動作変更ボタン:動作=「 | 動作変更ボタン:動作=「 | ||
:直進状態 = いいえ。 | :直進状態 = いいえ。 | ||
ライン 276: | ライン 281: | ||
時計!「 | 時計!「 | ||
かめた!5 歩く。 | かめた!5 歩く。 | ||
- | 「(:直進状態)== いいえ」!なら「かめた!5 右回り。 」実行。 | + | 「(:直進状態)== いいえ」!なら「かめた!5 右回り。 」実行。 |
」実行。 | 」実行。 | ||
</code> | </code> | ||
- | [[https://bitarrow.eplang.jp/bitarrow/fs/pub/0d7cb6de/q12.html|実行例(BitArrow)]] | + | [[http://klab.eplang.jp/honda/djs/index.html?src=e79bb4e980b2e78ab6e6858befbc9de381afe38184e380820ae58b95e4bd9ce5a489e69bb4e3839ce382bfe383b3efbc9de3839ce382bfe383b3efbc81e2809de58b95e4bd9ce5a489e69bb4e2809de38080e4bd9ce3828be380820ae58b95e4bd9ce5a489e69bb4e3839ce382bfe383b3efbc9ae58b95e4bd9cefbc9de3808c0ae38080e38080e38080e38080efbc9ae79bb4e980b2e78ab6e6858be38080efbc9d20e38184e38184e38188e380820ae3808de380820a0ae3818be38281e3819fefbc9de382bfe383bce38388e383abefbc81e4bd9ce3828be380820ae69982e8a888efbc9de382bfe382a4e3839ee383bcefbc81e4bd9ce3828be380820ae69982e8a888efbc81363020e69982e99693e380820ae69982e8a888efbc81e3808c0ae38080e3818be38281e3819fefbc813520e6ada9e3818fe380820ae38080e3808cefbc88efbc9ae79bb4e980b2e78ab6e6858befbc89efbc9defbc9de38080e38184e38184e38188e3808defbc81e381aae38289e3808ce3818be38281e3819fefbc81efbc95e38080e58fb3e59b9ee3828ae38082e38080e3808de5ae9fe8a18ce380820a0ae3808de5ae9fe8a18ce38082|このプログラムをJS版ドリトルで動作確認する]] |