• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:processingでパックマンを反転させたい。)

パックマンを反転させたい

このQ&Aのポイント
  • 現在、パックマンが壁にぶつかると跳ね返りはするのですが、そのまま右向きで口をパクパクとしてしまいます。なんとか左向きにしたいとarcを色々いじったりして試行錯誤しているのですが、どのようにすればわかりません。
  • 壁にぶつかったとき左向きにするためにはどのようにプログラミングすればよいのでしょうか。
  • 現在のプログラムでは、パックマンの位置を表す変数「i」とパックマンの口の開き具合を表す変数「j」の値を増減させることでパックマンの移動を表現しています。壁にぶつかると「i」の値が増減の方向を反転させることで跳ね返り動作を実現していますが、右向きになってしまいます。左向きにするためにはどのような修正が必要でしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

あ~少しわかってきた。 int rflag =1; これが向きですね。 ならば if (rflag>0) { arc(i,25,50,50,radians(j),radians(360-j)); } else { arc(i,25,50,50,radians(j-180),radians(180+j)); } こんな感じかな。。 恐らく"i"がxを表していると仮定しての、回答です。

その他の回答 (1)

回答No.1

この言語は、ちなみ、わかっていません。 arc(i,25,50,50,radians(j),radians(360-j)); ここが、妙に気になるのですが、 arc(i,25,50,50,radians(180+j),radians(180-j)); だとどんな感じでしょう? 360が、1周円なら、半分が半周円ですので、 180プラスマイナスnで 口が開くように感じます。 もしそれで、「反対向き」にパクパクしていたら。 次は、方向ベクトルで、 右に加算なのか、左に加算(Xからみたら減算) を判断して、方向をかえればOKでしょう。 それを、arcのどちらを表示にするか? これで、解決しそうな感じです。

関連するQ&A

専門家に質問してみよう