2017-06-19 13 views
0

私はゲームを作りたいと思っていますが、自分のスクリーンとカメを作成すると、自分のスクリーンと違う画面に私のカメが現れます。 コードを実行すると、2つの異なるカメの画面Aが表示されます。私はscreenと呼ばれるもの、Bはスクリーンなしでカメを作成すると自動的にポップアップするものです。タートルをタートルの画面に設定する方法

import turtle 
from turtle import * 
from turtle import Screen 
import tkinter 
from tkinter import * 
import time 
from time import sleep 
from random import randint 
import random 
health = 50 
damage = 10 
root = Tk() 
Fight = randint(10,20) 
step = 0 
cv = ScrolledCanvas(root,600,600,600,600) 
cv.pack(side = tkinter.LEFT) 
turtle = Turtle() 
screen = TurtleScreen(cv) 
turtle.up() 
def Up(event): 

    global step 
    if step == Fight: 
     Combat() 
    step+=1 
    turtle.seth(90) 
    turtle.forward(10) 
def Down(event): 
    global step 
    if step == Fight: 
     Combat() 
    step+=1 
    turtle.seth(-90) 
    turtle.forward(10) 
def Left(event): 
    global step 
    if step == Fight: 
     Combat() 
    step+=1 
    turtle.seth(180) 
    turtle.forward(10) 
def Right(event): 
    global step 
    if step == Fight: 
     Combat() 
    step+=1 
    turtle.seth(0) 
    turtle.forward(10) 
def Combat(): 
    Enemy = Turtle() 
    Enemy.up() 
    EHealth = randint(20,100) 
    EDamage = randint(10,20) 



screen.onkey(forward, "Up") 
screen.onkey(backward, "Down") 
screen.onkey(left, "Left") 
screen.onkey(right, "Right") 
screen.listen() 

答えて

0

Pythonのカメはどちらか自分自身の意思のTkのウィンドウまたはそれを作っているのTkのウィンドウに埋め込まれるように設計された、ありがとうございます。 2つの選択肢は異なる方法で呼び出されますが、両方のコマンドを混在させることで終了します。

from random import randint 
from tkinter import * 
from turtle import ScrolledCanvas, RawTurtle, TurtleScreen 

health = 50 
damage = 10 
fight = randint(10, 20) 
step = 0 

def up(): 
    global step 

    if step == fight: 
     combat() 
    step += 1 
    turtle.seth(90) 
    turtle.forward(10) 

def down(): 
    global step 

    if step == fight: 
     combat() 
    step += 1 
    turtle.seth(-90) 
    turtle.forward(10) 

def left(): 
    global step 

    if step == fight: 
     combat() 
    step += 1 
    turtle.seth(180) 
    turtle.forward(10) 

def right(): 
    global step 

    if step == fight: 
     combat() 
    step += 1 
    turtle.seth(0) 
    turtle.forward(10) 

def combat(): 
    enemy = RawTurtle(canvas) 
    enemy.up() 
    eHealth = randint(20, 100) 
    eDamage = randint(10, 20) 

root = Tk() 
canvas = ScrolledCanvas(root) 
canvas.pack(side=LEFT) 
screen = TurtleScreen(canvas) 
turtle = RawTurtle(canvas) 
turtle.up() 

screen.onkey(up, "Up") 
screen.onkey(down, "Down") 
screen.onkey(left, "Left") 
screen.onkey(right, "Right") 
screen.listen() 

screen.mainloop() 

それとも、私たちはそのメソッドを介して、必要に応じて、我々はそれを形作ることができますが、カメのモジュールは、ウィンドウを作成させることにより、ビット呼び出し、物事を単純化することができます:

from random import randint 
from turtle import Turtle, Screen 

health = 50 
damage = 10 
fight = randint(10, 20) 
step = 0 

def up(): 
    global step 

    if step == fight: 
     combat() 
    step += 1 
    turtle.seth(90) 
    turtle.forward(10) 

def down(): 
    global step 

    if step == fight: 
     combat() 
    step += 1 
    turtle.seth(-90) 
    turtle.forward(10) 

def left(): 
    global step 

    if step == fight: 
     combat() 
    step += 1 
    turtle.seth(180) 
    turtle.forward(10) 

def right(): 
    global step 

    if step == fight: 
     combat() 
    step += 1 
    turtle.seth(0) 
    turtle.forward(10) 

def combat(): 
    enemy = Turtle() 
    enemy.up() 
    eHealth = randint(20, 100) 
    eDamage = randint(10, 20) 

screen = Screen() 
screen.setup(500, 350) # visible portion of screen area 
screen.screensize(600, 600) # scrollable extent of screen area 
turtle = Turtle() 
turtle.up() 

screen.onkey(up, "Up") 
screen.onkey(down, "Down") 
screen.onkey(left, "Left") 
screen.onkey(right, "Right") 
screen.listen() 

screen.mainloop() 
あなたが開始したカスタムTkのウィンドウのアプローチを取ります

importを同じモジュールをインポートする際に使用するのは、2つの異なる方法によって最終的にあなたやPythonが混乱する可能性があります。

関連する問題