鱼C论坛

 找回密码
 立即注册
查看: 442|回复: 3

[已解决]pygame鼠标控制失败

[复制链接]
发表于 2018-8-17 21:03:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
目标:鼠标在框里时,鼠标移动,图片跟随移动,鼠标在框外时,图片按照预定的速度和路径运动

代码:
import pygame as pyg
import sys

pyg.init()
speed=[-2,1]
size=width,height=600,400

bg=(255,255,255)


screen=pyg.display.set_mode(size,pyg.RESIZABLE)

temp=[]
pyg.display.set_caption('hello world')

fullscreen=False

mm=pyg.image.load('mm.jpg')

position=mm.get_rect()

while True:
    for event in pyg.event.get():
        if event.type==pyg.QUIT:
            sys.exit(0)
        if event.type==pyg.MOUSEMOTION:
            position=mm.get_rect()
            adders=pyg.mouse.get_pos()
            position=adders
        if event.type==pyg.ACTIVEEVENT:
            position=mm.get_rect()
            break
   
    position=position.move(speed)
    if position.left<0 or position.right>width:
        mm=pyg.transform.flip(mm,True,False)
        speed[0]=-speed[0]
    if position.top<0 or position.bottom>height:
        speed[1]=-speed[1]



            
   
    screen.fill(bg)
    screen.blit(mm,position)
    pyg.display.flip()
    pyg.time.delay(10)
最佳答案
2018-8-17 21:28:48
if event.type==pyg.MOUSEMOTION:
            position=mm.get_rect()
            adders=pyg.mouse.get_pos()
            position=adders
你这里position=mm.get_rect()根本用不到,还会让你位置重置,
get_pos()返回的是二元组不是Rect类,赋值了,还画啥MM
position.centerx,position.centery=adders这么写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-17 21:22:50 | 显示全部楼层
没看出来你要写什么,什么是你预定的速度路径
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-17 21:28:48 | 显示全部楼层    本楼为最佳答案   
if event.type==pyg.MOUSEMOTION:
            position=mm.get_rect()
            adders=pyg.mouse.get_pos()
            position=adders
你这里position=mm.get_rect()根本用不到,还会让你位置重置,
get_pos()返回的是二元组不是Rect类,赋值了,还画啥MM
position.centerx,position.centery=adders这么写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-17 21:46:55 | 显示全部楼层
塔利班 发表于 2018-8-17 21:28
if event.type==pyg.MOUSEMOTION:
            position=mm.get_rect()
            adders=pyg.mouse.ge ...

懂了,谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 16:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表