タートルグラフィックスでクリックした場所にカメを移動させてみよう

タートルグラフィックスを実行時に立ち上がるウィンドウで、クリックした場所にカメが移動するようにコードを作成してみます。


今回のコードを作成するに当たって、新しく2つの機能について見る必要があります。

オブジェクトの生成イベントの登録です。


オブジェクトやイベントとは何か?という説明は今は触れず、サンプルコードを見てみます。

import turtle


# クリックした箇所にカメが移動する
def move_turtle(x, y):
␣␣␣␣turtle.goto(x, y)


turtle.shape("turtle")

screen = turtle.Screen()
screen.onclick(move_turtle)
screen.listen()
turtle.done()

※␣は半角スペース1個分

※今回のコードの説明のために1行目をimport turtleにしています


実行するとカメが中央に止まった状態のままで、どこでも良いのでウィンドウ上をクリックすると、



クリックした箇所にカメが動きます。




オブジェクトの生成について触れます。

パイソンには一通りの機能とどのような値を持つかといった設計図のようなものがあり、それをクラス(class)と呼びます。


今回はウィンドウの諸々の操作が用意されているスクリーン(Screen)クラスを利用していまして、

screen = turtle.Screen()

でスクリーンクラスの設計図を元にして、スクリーンのオブジェクトを生成しました。


スクリーンクラスにはたくさんのメソッド(クラス内で定義された関数)を持ち、TurtleScreen/Screen のメソッド - turtle --- タートルグラフィックス — Python 3.13.2 ドキュメントに機能の一覧が記載されています。




ウィンドウにクリック判定のイベントを追加する箇所を見てみます。

screen.onclick(move_turtle)

でクリックのイベントを登録しています。


screen.onclickメソッドでは、一番目の値に

関数名(x, y)

の形式の関数を指定する必要があり、今回は、

def move_turtle(x, y):
␣␣␣␣turtle.goto(x, y)

※␣は半角スペース1個分

を事前に用意して、イベントの登録をしています。


イベントを登録した次の行に

screen.listen()

に入れておくと良いです。

マインクラフト用ビジュアルエディタを開発しています。
詳しくはinunosinsi/mcws_blockly - githubをご覧ください。