2017-06-19 2 views
0

Ich habe ein Spiel, das ich versuche zu machen, aber wenn ich meinen Bildschirm und meine Schildkröte erstellen, zeigt sich meine Schildkröte auf einem anderen Bildschirm als der Bildschirm, den ich gemacht habe. Wenn ich den Code ausführen würde, würde es mit zwei verschiedenen Turtle-Bildschirmen auftauchen: A: der Bildschirm, den ich aufgerufen habe, und B: der, der automatisch erscheint, wenn Sie eine Schildkröte ohne Bildschirm erstellen.Wie setze ich eine Schildkröte auf eine Schildkröte Bildschirm

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() 

Danke,

Antwort

0

Python Schildkröte wurde entworfen, um entweder in einem Tk-Fenstern Ihrer eigenen machen oder in einem Fenster davon Tk eingebettet werden bewegt. Die beiden Optionen werden unterschiedlich aufgerufen, aber indem Sie die Befehle mischen, erhalten Sie beide. Unter den benutzerdefinierten Tk Fenster Ansatz, der Einstieg:

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() 

Oder wir können die Dinge ein wenig vereinfachen, indem die Schildkröte Modul erstellen das Fenster zu lassen, obwohl wir es durch seine Methode nach Bedarf gestalten können Anrufe:

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() 

Sie sollten in Ihrer Verwendung von import vorsichtiger sein, da das Importieren der gleichen Module zwei verschiedene Wege Sie und/oder Python schließlich verwirren wird.