Pygame中鼠标点击之后,物体逐渐移动到鼠标点击坐标的方法
时间:2020-01-09
本文章向大家介绍Pygame中鼠标点击之后,物体逐渐移动到鼠标点击坐标的方法,主要包括Pygame中鼠标点击之后,物体逐渐移动到鼠标点击坐标的方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 import pygame 2 from pygame.locals import * 3 from pygame.math import * 4 import sys 5 6 pygame.init() 7 size = width, height = 1600, 900 8 screen = pygame.display.set_mode(size) 9 color = (0, 0, 0) # 设置颜色 10 ball = pygame.image.load('dabai_new.gif') 11 ballrect = ball.get_rect() 12 sp = Vector2(0,0) #设置初始位置 13 speed = 3.0 14 clock = pygame.time.Clock() 15 mouse_xy = (0,0) 16 while True: 17 clock_time = clock.tick_busy_loop(60) 18 for event in pygame.event.get(): 19 if event.type == pygame.QUIT: 20 sys.exit() 21 elif event.type == pygame.MOUSEBUTTONDOWN: 22 mouse_xy = Vector2(event.pos)#获取鼠标的向量 23 dis = mouse_xy - sp 24 dis_lenth = dis.length()#计算物体到鼠标点击处的距离 25 if dis_lenth < speed: #做一个判断,如果距离小于速度,则不需要移动 26 mouse_xy = sp 27 elif dis_lenth != 0: # 28 dis.normalize_ip() #坐标归一化非常重要 29 dis = dis*speed #计算每一帧移动的坐标数 30 sp += dis #叠加每次移动的坐标 31 32 screen.fill(color) 33 screen.blit(ball, sp) 34 pygame.display.flip()
这个方案中最重要的就是坐标归一化,归一化之后长度永远为一,实际移动的坐标数就是帧数乘以速度的值
我把pygame.Vertor2中坐标归一化使用的公式列出来:
原文地址:https://www.cnblogs.com/orange-wrj/p/12172410.html
- 比特币的分叉币都认为能够取代比特币,事实真的是这样吗?
- Google官方网页载入速度检测工具PageSpeed Insights 使用教程
- ASP.NET 路由
- Kafka定时清除过期数据
- 腾讯高级副总裁郭凯天:打造腾讯智库分析互联网产业前沿问题
- Google Chrome 浏览器 开发者工具 使用教程
- 反向代理(Reverse Proxy)及 IIS 7 应用请求路由模块
- 2014腾讯“大数据连接的未来”高峰论坛在京召开
- 工作流、业务流程管理和SOA
- 面向对象设计的SOLID原则
- 用psake来简化自动化脚本的构建
- TESLA V100如何让质疑GPU的流言“失声”
- Web 前端性能优化相关内容解析
- Service Broker 无法工作的问题修复
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Java反射
- Java Request(域对象+请求转发+原理)详解
- PHP命令执行学习总结
- win10 专业版 提示开机提示你的windows许可证即将过期
- 浅谈文件上传漏洞(其他方式绕过总结)
- 《sql必知必会》——读书笔记(1)
- JDK15已发布,网友:我还在JDK8踏步走...
- 树莓派基础实验15:电位器传感器实验
- java JDBC数据库连接池技术(Druid ,c3p0)
- Fail to start qos server: dubbo version: current host: java.net.BindException:
- JAVA JDBC Template的使用
- 《sql必知必会》——读书笔记(2)
- 2.通过QOpenGLWidget绘制三角形
- 树莓派基础实验16:霍尔传感器实验
- 1.opengl绘制三角形