秒会Pygame:键盘移动和鼠标点击移动物体的方法(含完整的代码)

目录

预备知识

键盘控制物体移动事件

鼠标点击控制物体移动事件

鼠标移动的同时画彩色小球

预备知识

pygame的基本函数介绍

1.初始化函数,pygame的必备

pygame.init()

2.设置屏幕的大小

pygame.display.set_mode(size) //(长,宽)

  1. 程序的命名

pygame.display.set_caption(“string”)

4.屏幕的颜色填充

screen.fill(R,B,G)

5.图片的载入

pygame.image.load(”路径”)

6.事件的获取

pygame.event.get()

7.画圆

pygame.draw.circle(屏幕,颜色,圆心,半径)

8.更新事件

pygame.display.update()

9.二维向量对象(多用于坐标)

pygame.math.Vector2()

10.返回向量的欧几里得长度

pygame.math.Vector2.length()

11.规范化向量

pygame.math.Vector2.normalize_ip()

12.键盘按下的事件

event.type == pygame.KEYDOWN
event.key == pygame.K_UP //向上
event.key == pygame.K_DOWN //向下
event.key == pygame.K_LEFT //向左
event.key == pygame.K_RIGHT //向右

  1. 鼠标的弹起事件

event.type == pygame.MOUSEBUTTONUP

好了,有了以上知识就可以 _开始施法_了:

键盘控制物体移动事件

在屏幕上初始化一个外星人,用上、下、左、右键控制外星人移动

import sys
import pygame

pygame.init()
size = width, height = 600, 400
screen = pygame.display.set_mode(size)
screen.fill('white')
pygame.display.set_caption('外星人键盘移动事件')
img=pygame.image.load('C:/Users/leslie/Desktop/alien.png')
position = img.get_rect()

while True:

    site = [0, 0]
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP:
                site[1] -= 10
            if event.key == pygame.K_DOWN:
                site[1] += 10
            if event.key == pygame.K_LEFT:
                site[0] -= 10
            if event.key == pygame.K_RIGHT:
                site[0] += 10
        if  event.type == pygame.MOUSEBUTTONDOWN:
            xx,yy=event.pos
            site=[xx,yy]

    position = position.move(site)
    screen.fill('white')
    screen.blit(img, position)
    pygame.display.flip()

鼠标点击控制物体移动事件

在屏幕上初始化一个外星人,点击鼠标使外星人移动到鼠标点击的地方

import pygame
from pygame import Vector2
import sys

pygame.init()
pygame.display.set_caption('外星人鼠标点击移动')
size = width, height = 600, 600
screen = pygame.display.set_mode(size)
color = (250, 250, 250)
alien = pygame.image.load('C:/Users/leslie/Desktop/alien.png')
alienrect = alien.get_rect()
start_position = Vector2(0,0)
speed = 6
mouse_xy = (0,0)
while True:

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.MOUSEBUTTONDOWN:
            mouse_xy = Vector2(event.pos)
    dis = mouse_xy - start_position
    dis_lenth = dis.length()
    if dis_lenth < speed:
        mouse_xy = start_position
    elif dis_lenth != 0:
        dis.normalize_ip()
        dis = dis*speed
        start_position += dis

    screen.fill(color)
    screen.blit(alien, start_position)
    pygame.display.flip()

秒会Pygame:键盘移动和鼠标点击移动物体的方法(含完整的代码)

鼠标移动的同时画彩色小球

随着鼠标的移动,每移动以下,在移动后的位置画出颜色随机的小球

import pygame
import sys
from random import randint

pygame.init()
screen = pygame.display.set_mode((500,500))
screen.fill('white')
pygame.display.set_caption("鼠标移动画圆")

pygame.display.flip()
while True:

    event = pygame.event.wait()
    if event.type == pygame.QUIT:
        pygame.quit()
        sys.exit()
    if event.type == pygame.MOUSEBUTTONDOWN:
        mx,my = event.pos
        pygame.draw.circle(screen,(255,255,0),(mx,my),20)
        pygame.display.update()
    if event.type == pygame.MOUSEBUTTONUP:
        pass
    if event.type == pygame.MOUSEMOTION:
        mx, my = event.pos
        r = randint(0,255)
        g = randint(0,255)
        b = randint(0,255)
        pygame.draw.circle(screen, (r,g,b,),(mx, my),20)

        pygame.display.update()

秒会Pygame:键盘移动和鼠标点击移动物体的方法(含完整的代码)

其中的外星人图片如下:

秒会Pygame:键盘移动和鼠标点击移动物体的方法(含完整的代码)

当然,我们还可以给程序加上背景,假装外星人在太空中遨游~~~

Original: https://blog.csdn.net/m0_51783792/article/details/124065187
Author: 哦年酱
Title: 秒会Pygame:键盘移动和鼠标点击移动物体的方法(含完整的代码)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/779011/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球