2017-09-18 3 views
0

Ich benutze Turtle, um ein kleines Spiel zu machen und erkannte, dass ich Bilddateien mit turtle.registershape(filename) verwenden konnte. Ich weiß, dass Sie die Standardformen mit turtle.shapesize oder turtle.resizemode("auto") ändern und pensize ändern können, aber gibt es eine Möglichkeit, eine GIF-Datei mit diesen Methoden zu ändern?Gibt es eine Möglichkeit, die Größe eines Gif Shape mit Turtle in Python zu ändern?

import turtle 

turtle.addshape("example.gif") 

t = turtle.Turtle() 

t.shape("example.gif") 

t.resizemode("auto") 
t.pensize(24) 
t.stamp() 

turtle.exitonclick() 

Ich möchte etwas wie das funktionieren, aber die Schildkröte wird normal angezeigt, nicht in der Größe geändert.

+0

Hallo, bitte können Sie die gif-Datei hochladen. – saurabheights

Antwort

1

Ich überprüfte den zutreffenden Schildkrötencode und ich glaube die Antwort ist, "Nein, nicht innerhalb der Schildkröte selbst."

in tkinter bringen, die Schildkröte zu Grunde liegt, gibt uns begrenzt (Integral) Schildkröte Bild Expansions- und Reduktionsfähigkeit:

from tkinter import PhotoImage 
from turtle import Turtle, Screen, Shape 

screen = Screen() 

# substitute 'subsample' for 'zoom' if you want to go smaller: 
larger = PhotoImage(file="example.gif").zoom(2, 2) 

screen.addshape("larger", Shape("image", larger)) 

tortoise = Turtle("larger") 

tortoise.stamp() 

tortoise.hideturtle() 

screen.exitonclick() 

Wenn Sie mehr Flexibilität wünschen, die Standardansatz zu sein scheint entweder die Größe der Grafik Außerhalb von Turtle/Tkinter oder Verwenden Sie das PIL-Modul, um die Grafik dynamisch zu skalieren und an turtle/tkinter zu übergeben.

+0

danke, das hilft sehr. –

1

Die Antwort ist nein. Ich ging den Quellcode der cpython-Bibliothek durch und verfolgte den Aufruf der Methode draw image method. Siehe _drawturtle Methode der cpython-Bibliothek, wobei drawImage Methode ohne Informationen von Variablen wie pensize oder shapesize aufgerufen wird. Ich stimme @cdlane zu, dass Sie eine andere Größenanpassung mit anderen Bibliotheken verwenden müssen, aber ein Tipp: Wenn Sie vorher wissen, welche Bildgrößen Sie benötigen, können Sie diese beim Start des Spiels generieren und nicht zur Laufzeit ändern .

Verwandte Themen