如何在 PyGame 中用鼠标移动图像?
Pygame 是一个Python库,用于创建跨平台视频游戏。 Pygame 创建的游戏可以通过鼠标、键盘和操纵杆等任何输入设备轻松运行。你想制作一个通过鼠标控制运行的游戏吗?你不知道如何用鼠标移动图像吗?别着急,你需要做的是声明两个值,即running和moving。声明值后,设置您的应用程序在运行状态时应执行的操作。阅读下面给出的文章以了解更多详细信息。
方法:
步骤1:首先,导入库pygame。
import pygame
from pygame.locals import *
第 2 步:现在,将颜色作为我们要在游戏中使用的输入。
color_1 = #RGB value of color 1
color_2 = #RGB value of color 2
color_n = #RGB value of color n
第 3 步:然后,构建一个 GUI 游戏。
pygame.init()
第 4 步:此外,设置 GUI 游戏的尺寸。
w, h = #Width dimension, #Height dimension
screen = pygame.display.set_mode((w, h))
第 5 步:接下来,将要用鼠标移动的图像作为输入
img = pygame.image.load('#Enter the image')
img.convert()
第 6 步:此外,您可以通过在图像周围添加矩形边框来使图像看起来更有吸引力。
rect = img.get_rect()
rect.center = w//2, h//2
第七步:稍后,设置运行游戏的运行值和移动图像的移动值。
running = True
moving = False
第 8 步:设置您希望应用在运行状态时执行的操作。
while running:
for event in pygame.event.get():
- 步骤8.1:一旦应用程序处于运行状态,如果用户想退出,请使其退出。
if event.type == QUIT:
running = False
- 步骤 8.2:如果用户不想退出,请围绕 GUI 应用程序的尺寸移动您的图像。
elif event.type == MOUSEBUTTONDOWN:
if rect.collidepoint(event.pos):
moving = True
- 步骤 8.3:接下来,如果您只想通过鼠标点击移动图像,则将移动值设置为 False,如果您想在不点击鼠标的情况下移动图像,则将移动设置为 True。
elif event.type == MOUSEBUTTONUP:
moving = False
- 步骤 8.4:此外,如果您的图像曾经移动过,请将其设置为移动状态。
elif event.type == MOUSEMOTION and moving:
rect.move_ip(event.rel)
第 9 步:接下来,您需要在屏幕上设置屏幕颜色和图像。
screen.fill(YELLOW)
screen.blit(img, rect)
步骤 10:此外,通过构建图像的边框使您的图像看起来很有吸引力。
pygame.draw.rect(screen, BLUE, rect, 2)
步骤 11:此外,更新在 GUI 游戏中所做的更改。
pygame.display.update()
第 12 步:最后,退出 GUI 游戏。
pygame.quit()
下面是实现。
Python
# Python program to move the image
# with the mouse
# Import the library pygame
import pygame
from pygame.locals import *
# Take colors input
YELLOW = (255, 255, 0)
BLUE = (0, 0, 255)
# Construct the GUI game
pygame.init()
# Set dimensions of game GUI
w, h = 640, 350
screen = pygame.display.set_mode((w, h))
# Take image as input
img = pygame.image.load('geek.jpg')
img.convert()
# Draw rectangle around the image
rect = img.get_rect()
rect.center = w//2, h//2
# Set running and moving values
running = True
moving = False
# Setting what happens when game
# is in running sate
while running:
for event in pygame.event.get():
# Close if the user quits the
# game
if event.type == QUIT:
running = False
# Making the image move
elif event.type == MOUSEBUTTONDOWN:
if rect.collidepoint(event.pos):
moving = True
# Set moving as False if you want
# to move the image only with the
# mouse click
# Set moving as True if you want
# to move the image without the
# mouse click
elif event.type == MOUSEBUTTONUP:
moving = False
# Make your image move continuously
elif event.type == MOUSEMOTION and moving:
rect.move_ip(event.rel)
# Set screen color and image on screen
screen.fill(YELLOW)
screen.blit(img, rect)
# Construct the border to the image
pygame.draw.rect(screen, BLUE, rect, 2)
# Update the GUI pygame
pygame.display.update()
# Quit the GUI game
pygame.quit()
输出: