【问题标题】:How to get colors displayed into game I am making? [duplicate]如何在我正在制作的游戏中显示颜色? [复制]
【发布时间】:2019-09-19 19:59:01
【问题描述】:

这是我第一次使用 Pygame。我刚刚开始学习编程。目前我学习了大约 4 到 7 个月。

我按照我正在制作的游戏的教程进行操作。 (如何编写游戏!(用 Python 编写)Keith Galli)

很遗憾,游戏中不会显示颜色。所以目前我只是盯着一个黑色的“盒子”。

该游戏是一种“太空入侵者”游戏。所以有蓝砖从“盒子”的顶部掉下来,但现在你看不到它们。


因为我将 Linux Mint 用作我的操作系统,所以我想:也许我需要其他颜色代码。

我试过 ANSI 代码:

# ANSI escae code for colours:
#RED = "\e[0;31m"
#BLUE = "\e[34mBlue"
#YELLOW= "\e[33mYellow"
#BACKGROUND_COLOUR = "\e[30m"

instead of RGB:
# RGB colours:
RED = (255, 0, 0))
BLUE = (0, 0, 255))
YELLOW= (204, 204, 0)
BACKGROUND_COLOUR = (0, 0, 0))

但我在运行游戏时仍然看不到任何东西:(


这是一些代码:

import pygame 
import random
import sys
import colorama

pygame.init()

WIDTH = 800
HEIGHT = 600

# ANSI escae code for colours:
#RED = "\e[0;31m"
#BLUE = "\e[34mBlue"
#YELLOW= "\e[33mYellow"
#BACKGROUND_COLOUR = "\e[30m"

# RGB colours:
RED = (255, 0, 0))
BLUE = (0, 0, 255))
YELLOW= (204, 204, 0)
BACKGROUND_COLOUR = (0, 0, 0))

player_size = 50
player_pos = [WIDTH/2, HEIGHT - 2 * player_size]


enemy_size = 50
enemy_pos = [random.randint(0, WIDTH - enemy_size), 0]
enemy_list = [enemy_pos]

SPEED = 10

screen = pygame.display.set_mode((WIDTH,HEIGHT))

# gameloop

game_over = False

score = 0

clock = pygame.time.Clock()

myFont = pygame.font.sysFont("monospace", 35)

def set_level(score,SPEED):
    if score < 20:
        SPEED = 5
    elif score < 40:
        SPEED = 8
    elif score < 60:
        SPEED = 12
    else:
        SPEED = 18
    return SPEED

# SPEED = score / 5 +1
# return SPEED

def drop_enemies(enemy_list):
    delay = random.random()
    if len(enemy_list) < 10 and delay < 0.1:
    x_pos = random.randint(0, WIDTH - enemy_size)
        y_pos = 0
        enemy_list.append([x_pos, y_pos])


def draw_enemies(enemy_list):
    for enemy_pos in enemy_list:
        pygame.draw.rect(screen, BLUE, (enemy_pos[0], enemy_pos[1],
        enemy_size, enemy_size))

我希望看到游戏中的积木。 使用哪种颜色编码...以及如何实现这些?

蓝色代表从天上掉下来的,红色代表玩家本身。

【问题讨论】:

  • 您的代码中有错字pygame.font.sysFont 必须是pygame.font.SysFont
  • 你的游戏循环在哪里?

标签: python linux colors pygame linux-mint


【解决方案1】:

您需要一个主循环,它执行以下操作:

例如:

run = True
while run:
   for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

   screen.fill(BACKGROUND_COLOUR)
   draw_enemies(enemy_list)
   pygame.display.update()

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-08
  • 2017-06-04
  • 2013-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多