Python 有没有办法在pygame中绕过鼠标位置?

Python 有没有办法在pygame中绕过鼠标位置?,python,python-3.x,pygame,mouse,Python,Python 3.x,Pygame,Mouse,我尝试在我的游戏中制作一个简单的系统,玩家在鼠标位置射击。 但是当我得到鼠标位置时,我会得到一个浮点元组(我想这就是它的名称) 有没有办法绕过鼠标的位置 这是代码(我已将其更改为打印鼠标pos,而不是打印我的整个游戏,但您得到了它的jyst) 这就是错误所在 但是正如您所看到的,打印(pg.mouse.get_pos())的输出不是浮点。知道发生了什么吗?鼠标位置是一个积分值,但是self.game.dt不是积分 如果self.vel是一个列表或元组,self.vel*self.game.dt不

我尝试在我的游戏中制作一个简单的系统,玩家在鼠标位置射击。 但是当我得到鼠标位置时,我会得到一个浮点元组(我想这就是它的名称)

有没有办法绕过鼠标的位置

这是代码(我已将其更改为打印鼠标pos,而不是打印我的整个游戏,但您得到了它的jyst)

这就是错误所在


但是正如您所看到的,
打印(pg.mouse.get_pos())
的输出不是浮点。知道发生了什么吗?

鼠标位置是一个积分值,但是
self.game.dt
不是积分

如果
self.vel
是一个列表或元组,
self.vel*self.game.dt
不会达到您期望的效果。它不会将列表中的每个元素相乘,而是将列表加倍

必须单独更改坐标的组件:

self.pos+=self.vel*self.game.dt

self.pos=(
self.pos[0]+self.vel[0]*self.game.dt,
self.pos[1]+self.vel[1]*self.game.dt)
如果
self.pos
不是一个元组而是一个列表,则可以将其缩短:

self.pos[0]+=self.vel[0]*self.game.dt
self.pos[1]+=self.vel[1]*self.game.dt


Pygame提供向量运算。

我在代码中没有看到
self.pos+=self.vel*self.game.dt
。不管怎样,这个错误说明了一切。在
self.vel*self.game.dt
中,其中一个是序列,另一个是浮点。你不能用浮标乘以一个序列,请阅读并考虑到你发现最有用的。我没有得到解决方案。
import pygame as pg

class Game:

    def __init__(self):

        pg.init()
        pg.display.init()

        self.screen = pg.display.set_mode((500, 500))
        self.clock = pg.time.Clock()


    def update(self):

        print(pg.mouse.get_pos())


    def run(self):

        self.playing = True
        while self.playing:
            self.dt = self.clock.tick(FPS) / 1000
            self.update()


    def quit(self):

        pg.quit()

g = Game()
while True
g.update()
self.pos += self.vel * self.game.dt ## This is a line of code that makes the movement smooth ##
TypeError: can't multiply sequence by non-int of type 'float'