在Mac OS 10.6.8上的虚拟Windows XP上使用Python的pygame

2 投票
2 回答
696 浏览
提问于 2025-04-16 22:35

我在我的Macbook上用VMWare虚拟机运行Windows XP,里面装的是Python 2.7。

我正在看thenewboston.com上的python/pygame视频教程,并运行以下代码:

bif="bg.jpg"
mif="ball.png"

import pygame, sys
from pygame.locals import * 

pygame.init()
screen = pygame.display.set_mode((1196,733),0,32)

background=pygame.image.load(bif).convert()
mouse_c=pygame.image.load(mif).convert_alpha()

while True:
   for event in pygame.event.get():
       if event.type == QUIT:
           pygame.quit()
           sys.exit()


    screen.blit(background, (0,0))

    x,y = pygame.mouse.get_pos()
    x -= mouse_c.get_width()/2
    y -= mouse_c.get_height()/2

    screen.blit(mouse_c, (x,y))

    pygame.display.update()

这个程序本来是用来显示一个背景图片和一个跟着鼠标光标移动的球,运行得还不错,但有一个问题,就是这个球并没有像预期那样跟着光标走,而是看起来随机地在屏幕边缘移动。

这是不是因为我在虚拟机上运行,所以get_pos、get_width和get_height这些函数返回的x,y坐标数据不正常呢?

谢谢。

2 个回答

0

我对虚拟机的行为了解不多,所以帮不了你。不过,我可以告诉你,我在我的Linux电脑上试了你的代码,程序运行得很好,图像跟着鼠标移动。

所以,考虑到这一点,你可能是对的,虚拟机中运行时鼠标的方法确实出现了一些奇怪的问题。

0

这不是因为你在虚拟机上工作。刚才我在一台运行10.7的Mac上测试了代码,使用的是Windows 7的虚拟机,配合PyGame和Enthought Python Distribution。

在那个系统上,代码运行得很好,我的小足球跟着鼠标移动。可能和VMWare传递鼠标坐标的方式有关,但并不是所有的虚拟机都有这个问题。

撰写回答