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

这篇具有很好参考价值的文章主要介绍了秒会Pygame:键盘移动和鼠标点击移动物体的方法(含完整的代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

预备知识

键盘控制物体移动事件

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

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


预备知识

pygame的基本函数介绍

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

 pygame.init()  

2.设置屏幕的大小

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

3. 程序的命名

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  //向右

13. 鼠标的弹起事件

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:键盘移动和鼠标点击移动物体的方法(含完整的代码)

 

当然,我们还可以给程序加上背景,假装外星人在太空中遨游~~~文章来源地址https://www.toymoban.com/news/detail-400626.html

到了这里,关于秒会Pygame:键盘移动和鼠标点击移动物体的方法(含完整的代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 瓦片地图编辑器——实现卡马克卷轴的编辑,键盘控制游戏移动和鼠标点击游戏编辑通过同一个视口实现。

      左边是游戏地图编辑区,右边是地图缓冲区,解决了地图缓冲区拖动bug,成功使得缓冲区可以更新。 AWSD进行移动 鼠标左右键分别是绘制/拖动 按F1健导出为mapv3.txt F2清空数组 打印的是游戏数组 easyx开发devcpp 5.11 easyx20220922版本

    2024年01月25日
    浏览(75)
  • Pygame 鼠标点击和检测

    快速准确地从用户那里获取输入是任何游戏的重要组成部分。在本 Pygame 教程中,我们将解释和演示如何检测鼠标点击输入以及许多其他与鼠标相关的功能。 这是我们将在本教程中使用的基本模板代码。所以我们每次演示新功能的使用时都不再显示这些基本的代码。 在上面的

    2024年02月05日
    浏览(25)
  • Unity点击物体后,移动到物体所在位置

    脚本挂在被点击的物体上 脚本挂在角色控制器上 改进:使用Raycast中的LayerMask 创建“cube”层 将想要被检测的物体放入该层 3.1、 3D物体事件监听 在相机上挂Physics Raycaster组件 检查是否有EventSystem 将脚本挂在被点击的物体上 添加组件Event Trigger组件 3.2、 世界UI世界监听

    2024年02月07日
    浏览(50)
  • pygame--图片随鼠标移动

    练习pygame 以下代码为:在画布上绘制一个背景图,再绘制一个图片随着鼠标的移动而移动 效果为:

    2024年02月12日
    浏览(36)
  • unity手指、鼠标滑动实现物体360度旋转、点击按钮实现物体旋转

    先创建一个ObjectRotation 脚本 之后将该脚本拖动到需要转动的object上 因为如果每次都真机模拟回很麻烦,所以我加入了让鼠标代替手指滑动的脚本来代替手指输入 同样的也是先创建一个MouseRow 脚本 最后我还需要某笔画沿着坐标旋转,代码如下: 里面有我的其他参数,如果读

    2024年02月11日
    浏览(62)
  • 【Unity】摄像机跟随鼠标移动以物体为中心旋转 物体根据视线方向移动

    描述 实现摄像机根据鼠标移动跟随物体旋转,以摄像机前物体为中心,摄像机围绕物体旋转,并使摄像机时刻指向物体 实现效果 Unity 组件设置 Camera 组件设置 Body 组件设置 实现代码 CameraRotateMove.cs 摄像机跟随和旋转 move_better.cs 物体根据按键移动

    2024年02月08日
    浏览(86)
  • 【UE5 C++】鼠标点击发射射线获取物体信息

    UE小白,有错误的地方请指出。 本文使用UE5,如在UE4中使用可能需调整某些API 1.获取镜头控制器,并开启点击事件 2.鼠标点击发射射线 在Tick中调用射线发射逻辑 UE中API看起来没有分鼠标抬起和鼠标按下API,如有大佬知道可以评论一下。 1.获取镜头控制器,并开启点击事件

    2024年02月15日
    浏览(71)
  • Unity鼠标控制3D物体的移动、旋转、缩放

    1.使用协程 2.鼠标左键控制物体移动,鼠标碰到物体,物体颜色改变 1. 控制物体左右旋转,上下旋转 2. 控制摄像机以物体为中心旋转 脚本挂载到摄像机上 1. 基于物体本身的Transform的缩放 2. 基于摄像机的远近的缩放 脚本挂载到摄像机上

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包