小编Tom*_*rds的帖子

为什么此代码不产生具有随机颜色的形状?

我正在阅读《用Python和Pygame进行程序街机游戏》一书,并在第12章:类简介的末尾研究“实验室”。

我为此编写的代码通过调用其构造函数而不是颜色来随机化在“ my_list”中创建的每个形状的坐标大小和移动方向,但是创建的所有形状都具有相同的颜色,这是为什么?



import pygame
import random

# Define some colors
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)

class Rectangle():
    x = 0
    y = 0
    width = 10
    height = 10
    change_x = 2
    change_y = 2
    color = [0, 0, 0]

    def __init__(self):
        self.x = random.randrange(0, 700)
        self.y = random.randrange(0, 500)
        self.change_x = random.randrange(-3., 3)
        self.change_y = random.randrange(-3., 3)
        self.width = random.randrange(20, 70)
        self.height = …
Run Code Online (Sandbox Code Playgroud)

python pygame python-3.x

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

为什么我得到关于printf()的警告,%s将类型void*作为参数?

我从C编程的第19章,现代方法开始编程项目4 .我的代码有效但我收到此警告试图传递一个函数返回void *参数到printf转换说明符%s.

format %s需要类型的参数char *,但参数2具有类型void * [-Wformat=]

我可以通过将函数的返回类型转换为char *类似来轻松地消除警告

printf("%s\n", (char *) function(param));
Run Code Online (Sandbox Code Playgroud)

但我只是想知道为什么这是必要的,因为类型void *会自动转换为另一种指针类型.

c printf

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

标签 统计

c ×1

printf ×1

pygame ×1

python ×1

python-3.x ×1