pygame中 random.randint的用法
时间: 2023-09-08 17:12:16 浏览: 217
在 Pygame 中使用 random.randint() 函数可以生成一个指定范围内的随机整数。该函数需要两个参数:一个是指定范围的起始值,另一个是指定范围的结束值。函数会在这个范围内生成一个随机整数并返回。
例如,如果你想在 Pygame 中生成一个 0 到 100 之间的随机整数,你可以使用以下代码:
```python
import random
random_number = random.randint(0, 100)
```
这将在 0 到 100 之间生成一个随机整数并将其存储在 `random_number` 变量中。你可以根据需要调整起始值和结束值以生成不同的随机数。
相关问题
import pgzrun import random WIDTH = 1200 HEIGHT = 800 balls = [] def draw(): screen.fill('black') for ball in balls: screen.draw.filled_circle( (ball[0], ball[1]), ball[2], (ball[3], ball[4], ball[5])) for x in range(1, ball[2], 3): screen.draw.filled_circle((ball[0], ball[1]), ball[2]-x, (random.randint( ball[3], 255), random.randint(ball[4], 255), random.randint(ball[5], 255))) def on_mouse_move(pos, rel, buttons): if mouse.LEFT in buttons: x = pos[0] y = pos[1] r = random.randint(10, 20) colorR = random.randint(10, 255) colorG = random.randint(10, 255) colorB = random.randint(10, 255) ball = [x, y, r, colorR, colorG, colorB] balls.append(ball) pgzrun.go()代码解析
这段代码是一个使用Pygame Zero库编写的简单的粒子效果。下面是对代码的解析:
- 首先,导入了`pgzrun`和`random`模块。
- 定义了窗口的宽度和高度为1200和800。
- 创建了一个空列表`balls`,用于存储粒子的信息。
接下来是两个函数:
1. `draw()`函数用于绘制画面。它首先将屏幕填充为黑色。然后,对于`balls`列表中的每个粒子,使用`screen.draw.filled_circle()`方法绘制一个实心圆。该方法接受三个参数:圆心坐标`(ball[0], ball[1])`、半径`ball[2]`以及颜色`(ball[3], ball[4], ball[5])`。接着使用一个循环来绘制多个不同半径的圆,每个圆的颜色都是随机生成的。
2. `on_mouse_move(pos, rel, buttons)`函数用于在鼠标移动时创建新的粒子。如果鼠标左键被按下,函数会获取鼠标位置,并生成一个随机半径和随机颜色的粒子,并将其添加到`balls`列表中。
最后,调用了`pgzrun.go()`来启动游戏循环。
这段代码实现了一个简单的粒子效果,当鼠标移动且按下左键时,会在鼠标位置创建新的粒子,并且粒子会逐渐变小并改变颜色。整个画面会不断刷新,形成动态的效果。
import pygame import random # 初始化Pygame pygame.init() # 设置屏幕大小和标题 screen = pygame.display.set_mode((600, 400)) pygame.display.set_caption('Dodge the Squares') # 加载图片并设置宽高 player_image = pygame.image.load('player.png') square_image = pygame.image.load('square.png') player_width, player_height = 50, 50 square_width, square_height = 50, 50 # 设置字体 game_font = pygame.font.Font(None, 30) # 初始化游戏参数 player_x, player_y = 250, 330 square_x, square_y = random.randint(0,550), 0 square_speed = 5 is_game_over = False score = 0 # 游戏循环 while not is_game_over: # 处理事件 for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT and player_x > 0: player_x -= 10 elif event.key == pygame.K_RIGHT and player_x < 550: player_x += 10 elif event.key == pygame.K_ESCAPE: is_game_over = True elif event.type == pygame.QUIT: is_game_over = True # 更新图像 screen.fill((255, 255, 255)) screen.blit(player_image, (player_x, player_y)) screen.blit(square_image, (square_x, square_y)) score_text = game_font.render(f"Score: {score}", True, (0, 0, 0)) screen.blit(score_text, (10, 10)) # 更新游戏参数 square_y += square_speed if square_y > 350: square_x, square_y = random.randint(0, 550), 0 score += 1 # 碰撞检测 player_rect = pygame.Rect(player_x, player_y, player_width, player_height) square_rect = pygame.Rect(square_x, square_y, square_width, square_height) if player_rect.colliderect(square_rect): game_over_text = game_font.render("Game Over", True, (255, 0, 0)) screen.blit(game_over_text, (250, 200)) is_game_over = True # 刷新屏幕 pygame.display.update() # 关闭Pygame pygame.quit()
这是一个简单的Pygame小游戏,名为“Dodge the Squares”。游戏规则是通过移动角色,躲避从屏幕上方不断下落的方块,并尽可能地得到更高的分数。
代码中的注释已经解释了每个部分的作用,这里再做一些简单的说明:
- 首先,使用Pygame库初始化了游戏,并设置了游戏窗口的大小和标题。
- 然后,加载了两个图片文件,一个是玩家角色的图片,另一个是方块的图片,并设置了它们的宽度和高度。
- 接下来,使用Pygame库创建了一个字体对象,并初始化了游戏的一些参数,例如角色和方块的初始位置、方块的下落速度、游戏是否结束等。
- 在游戏循环中,首先处理了事件,例如按键事件和退出事件。
- 然后,更新了图像,包括玩家角色、方块和分数。
- 接着,更新了游戏参数,例如方块的位置和分数。
- 最后,进行了碰撞检测,如果角色和方块发生碰撞,则游戏结束。
在最后,关闭了Pygame库。
这个小游戏的代码比较简单,适合初学者学习Pygame库的基本用法。
阅读全文