Upgrade to Pro — share decks privately, control downloads, hide ads and more …

turtleであそぼう!

43ba5a2227c580ce2290544d81c6261c?s=47 ksnt
September 18, 2020
100

 turtleであそぼう!

はんなりPython #32

43ba5a2227c580ce2290544d81c6261c?s=128

ksnt

September 18, 2020
Tweet

Transcript

  1. turtleであそぼう! ksnt

  2. turtleって何?何? ・Python標準ライブラリに入ライブラリに入っているモに入っているモジ入っているモジュって何?いるモジュールモジュール ・計算機科学者のシーモア・パのシーモア・パパシーモア・パパートが生みの親が生みの親生みの親みのシーモア・パパ親 ・お絵かきが得意絵かきが得意かきが生みの親得意

  3. Hello world with turtle from turtle import * color('blue', 'yellow')

    begin_fill() while True: forward(200) left(170) if abs(pos()) < 1: break end_fill() done()
  4. 今回はこのはこのシーモア・パパturtleで ゲームをつくってみたをつくって何?みた

  5. なに入っているモジはともあれ デモ

  6. turtleを使ってゲームを作って何?ゲームをつくってみたを作るるモジュール(1) # Set up screen wn = turtle.Screen() wn.bgcolor("black") wn.bgpic("kbgame-bg.gif")

    wn.tracer(7) # Draw border mypen = turtle.Turtle() mypen.color(“black") mypen.penup() mypen.setposition(-300, -300) mypen.pendown() mypen.pensize(3) for side in range(4): mypen.forward(600) mypen.left(90) mypen.hideturtle() # スクリに入っているモーンのセットアップのシーモア・パパセットが生みの親アップ スクリに入っているモーンのセットアップのシーモア・パパ生みの親成 背景色を設定を設定 背景のシーモア・パパ画像を設定を設定 スクリに入っているモーンのセットアップアップデートが生みの親が生みの親遂行される回数の調されるモジュール回はこの数の調整のシーモア・パパ調整 # 境界を描くを描くく タートが生みの親ルのシーモア・パパ生みの親成 タートが生みの親ルのシーモア・パパ色を設定を設定 ペンのセットアップを上げるげるモジュール ペンのセットアップのシーモア・パパポジションのセットアップをセットが生みの親 ペンのセットアップを下ろすろす ペンのセットアップのシーモア・パパサイズを設定を設定 ペンのセットアップで四角形を書くを書くく タートが生みの親ルを隠すす border.py
  7. turtleを使ってゲームを作って何?ゲームをつくってみたを作るるモジュール(2) # Create player turtle player = turtle.Turtle() player.color("blue") player.shape("triangle")

    player.penup() player.speed(0) # Create obstacles maxObsts = 20 obsts = [] for count in range(maxObsts): obsts.append(turtle.Turtle()) obsts[count].color("yellow") obsts[count].shape("square") obsts[count].penup() obsts[count].speed(0) obsts[count].setposition(random.randint(- 300, 300), random.randint(-300, 300)) # プレイヤーをつくるモジュール タートが生みの親ルのシーモア・パパ生みの親成 タートが生みの親ルのシーモア・パパ色を設定を設定 タートが生みの親ルのシーモア・パパ形を書くを設定 ペンのセットアップを上げるげるモジュール タートが生みの親ルのシーモア・パパ初期速度を設定を設定 # 障害物をつくるをつくるモジュール 障害物をつくるのシーモア・パパ数の調整を設定 黄色を設定のシーモア・パパ障害物をつくるをmaxObsts個つくるつくるモジュール 障害物をつくるをランのセットアップダムをつくってみたに入っているモジ配置するするモジュール
  8. turtleを使ってゲームを作って何?ゲームをつくってみたを作るるモジュール(3) # Create the score variable score = 0 #

    Create goals maxGoals = 10 goals = [] for count in range(maxGoals): goals.append(turtle.Turtle()) goals[count].color("red") goals[count].shape("circle") goals[count].penup() goals[count].speed(0) goals[count].setposition(random.r andint(-280, 280), random.randint(-280, 280)) # スコア変数の調整をつくるモジュール 0点からスタートからスタートスタートが生みの親 # ゴールをつくるモジュール ゴールのシーモア・パパ数の調整を設定 ゴールをmaxGoals個つくるつくるモジュール ゴールをランのセットアップダムをつくってみたに入っているモジ配置するするモジュール
  9. turtleを使ってゲームを作って何?ゲームをつくってみたを作るるモジュール(4) # Define function def turnleft(): player.left(30) def turnright(): player.right(30)

    def increasespeed(): global speed speed += 1 def decresespeed(): global speed if speed > 0: speed -= 1 elif speed == 0: pass else: speed = 0 def isCollision(t1, t2): d = math.sqrt(math.pow(t1.xcor()- t2.xcor(), 2) + math.pow(t1.ycor()- t2.ycor(), 2)) if d < 20: return True else: return False
  10. turtleを使ってゲームを作って何?ゲームをつくってみたを作るるモジュール(5) # Set keyboard bindings turtle.listen() turtle.onkey(turnleft, "Left") turtle.onkey(turnright, "Right")

    turtle.onkey(increasespeed, "Up") turtle.onkey(decresespeed, "Down") # キーボード バインのセットアップディンのセットアップグの設定のシーモア・パパ設定
  11. turtleを使ってゲームを作って何?ゲームをつくってみたを作るるモジュール(6) start = time.time() while True: player.forward(speed) now = time.time()

    # Draw the elapsed time on th screen mypen.undo() mypen.penup() mypen.hideturtle() mypen.setposition(0, 310) mypen.write(now - start, False, align="left", font=("Ubuntu", 14, "normal")) # スクリに入っているモーンのセットアップ上げるに入っているモジ時間経過を描くを描くく
  12. turtleを使ってゲームを作って何?ゲームをつくってみたを作るるモジュール(7) # Draw the score on the screen … #

    Boundary Checking if player.xcor() > 300 or player.xcor() < -300: player.right(180) os.system("mplayer bounce.mp3&") if player.ycor() > 300 or player.ycor() < -300: player.right(180) os.system("mplayer bounce.mp3&") # 境界を描くチェック
  13. turtleを使ってゲームを作って何?ゲームをつくってみたを作るるモジュール(7) # Move the goals for count in range(maxGoals): goals[count].forward(3)

    # Boundary Checking ... # Collision checking for player and goals if isCollision(player, goals[count]): goals[count].setposition(random.randint(-280, 280), random.randint(-280, 280)) goals[count].right(random.randint(0, 360)) os.system("mplayer collision.mp3&") score += 1 +1point! Goal turtle
  14. turtleを使ってゲームを作って何?ゲームをつくってみたを作るるモジュール(7) for count in range(maxObsts): # Collision checking for player

    and obstacles if isCollision(player, obsts[count]): # os.system("mplayer collision.mp3&") score -= 1 -1point! Obstacle turtle
  15. 再度を設定デモ

  16. Enjoy Python!

  17. Reference • Simple Python Turtle Graphics Game (Part 1 –

    Part 9) https://www.youtube.com/watch? v=PTgyzZGknvg