小编Tay*_*ill的帖子

如何清除Tkinter Canvas?

当我使用以下方式绘制形状时:

canvas.create_rectangle(10, 10, 50, 50, color="green")
Run Code Online (Sandbox Code Playgroud)

Tkinter是否记录了它的创建事实?

在我正在制作的一个简单游戏中,我的代码有一个Frame创建一堆矩形,然后绘制一个大的黑色矩形来清除屏幕,然后绘制另一组更新的矩形,依此类推.

我在内存中创建了数千个矩形对象吗?

我知道你可以将上面的代码分配给一个变量,但如果我不这样做,只是直接绘制到画布,它是否留在内存中,还是只是绘制像素,就像在HTML5画布中一样?

python tkinter python-3.x tkinter-canvas

42
推荐指数
2
解决办法
9万
查看次数

NetworkComms 自定义对象错误 - “objectToSerialize 必须实现 IExplicitlySerialize”

当我尝试像 NetworkComms 示例所说的那样序列化对象时,我从 SendObject 方法收到此错误。这似乎有些愚蠢,但我不知道我需要做什么,而且我认为实现 IExplicitlySerialize 接口不是答案。这是我的调用方法和序列化类:

public static void SendTestPacket()
        {
            var message = "This is a test packet";
            NetworkComms.SendObject("PacketPrintToConsole", "192.168.1.105", 5614, new PacketPrintToConsole(message));
        }


    [ProtoContract]
    public class PacketPrintToConsole
    {
        [ProtoMember(1)]
        public string Message { get; set; }


        public PacketPrintToConsole() { }

        public PacketPrintToConsole(string message)
        {
            this.Message = message;
        }

    }
Run Code Online (Sandbox Code Playgroud)

c# serialization protobuf-net networkcomms.net

3
推荐指数
1
解决办法
948
查看次数

循环不完全迭代

我正在创建一个简单的RPG作为学习体验.在我的代码中,我有一个显示在25x25网格上的瓷砖数组,以及一个单独的数组,其中包含与瓷砖是否为实心相关的真/假值.后者不起作用; 在我的下面的代码中,我已经将打印语句准确地放在了它未达到的位置,我不太确定问题是什么.

此外,该级别的数据只是一个文本文件,其网格为25x25个字符,代表块.

def loadLevel(self, level):
    fyle = open("levels/" + level,'r')
    count = 0
    for lyne in fyle:
        if lyne.startswith("|"):
            dirs = lyne.split('|')
            self.north = dirs[1]
            self.south = dirs[2]
            self.east = dirs[3]
            self.west = dirs[4]
            continue

        for t in range(25):
            tempTile = Tiles.Tile()
            tempTile.value = lyne[t]
            tempTile.x = t
            tempTile.y = count
            self.levelData.append(tempTile)
        count += 1

    rowcount = 0
    colcount = 0

    for rows in fyle:
        print('Doesnt get here!')
        for col in rows:
            if col == 2:
                self.collisionLayer[rowcount][colcount] = False …
Run Code Online (Sandbox Code Playgroud)

python

1
推荐指数
1
解决办法
75
查看次数