我对tkinter来说比较新,而且我制作的游戏只使用了正方形。我复制的书只显示三角形。这是代码:
# The tkinter launcher (Already complete)
from tkinter import *
HEIGHT = 500
WIDTH = 800
window = Tk()
window.title ('VOID')
c = Canvas (window, width=WIDTH, height=HEIGHT, bg='black')
c.pack()
# Block maker (Issue)
ship_id = c.create_polygon (5, 5, 5, 25, 30, 15, fill='red')
我没有收到任何错误,只是一串数字,(5, 5, 5, 25, 30, 15)
我不会得到,因为我正试图制作一个正方形。
答案 0 :(得分:2)
摘要Canvas.create_polygon
definition:
如图所示,多边形有两个部分:轮廓和内部。它的几何被指定为一系列顶点[(x0,y0),(x1,y1),...(xn,yn)](...)
id = C.create_polygon(x0, y0, x1, y1, ..., option, ...)
所以你需要按照指定的顺序传递方块的坐标。 例如:
myCanvas.create_polygon(5, 5, 5, 10, 10, 10, 10, 5)
可以读作
myCanvas.create_polygon(5,5, 5,10, 10,10, 10,5)
将创建一个顶点为(5, 5)
,(5, 10)
,(10, 10)
和(10, 5)
的正方形。
答案 1 :(得分:1)
Here's create_polygon
函数(official docs)上的一些信息。
根据nmt.edu页面,函数调用的格式为
id = C.create_polygon(x0, y0, x1, y1, ..., option, ...)
这意味着ship_id = c.create_polygon (5, 5, 5, 25, 30, 15, fill='red')
调用会创建一个包含以下顶点的多边形:(5,5), (5,25), (30, 15)
并用红色填充多边形。
如果您想创建一个正方形,则必须执行以下操作:
ship_id = c.create_polygon (5, 5, 5, 25, 25, 25, 25, 5, fill='red')
创建一个带顶点(5,5),(5,25),(25,25),(25,5)的矩形。
如果你想要一种更可重复的制造船只的方法,你可以做类似的事情
def ship (x,y):
return [x-5, y-5, x+5, y-5, x+5, y+5, x-5, y+5]
ship_id = c.create_polygon(*ship(100, 500), fill='red')
上面将创建一种船舶工厂(lambda函数),在其中指定船舶中心的x和y,然后它给出了可用于{{1的顶点的列表功能。
您甚至可以通过调整lambda函数
进一步指定船舶尺寸create_polygon