设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Pygame 第4课】 获取鼠标位置

[复制链接]

0

主题

0

好友

10

积分

新手上路

Rank: 1

16#
发表于 2015-12-19 19:10:51 |只看该作者
cossin咸鱼 发表于 2015-12-19 19:07
老师为啥我的有错误呢,如果def 一个plane的话就闪退

我自己做错了  ,好难发现啊  应该是‘palne.png’ 两处错误
回复

使用道具 举报

0

主题

0

好友

10

积分

新手上路

Rank: 1

15#
发表于 2015-12-19 19:07:20 |只看该作者
  1.     plane=pygame.image.load(plane.jpg).convert_alpha()
  2. NameError: name 'plane' is not defined
复制代码
老师为啥我的有错误呢,如果def 一个plane的话就闪退
回复

使用道具 举报

0

主题

1

好友

22

积分

新手上路

Rank: 1

14#
发表于 2015-10-10 17:12:09 |只看该作者
ajh99990 发表于 2015-5-16 15:53
老师,对于下面这几行代码,我有一个问题。
    x, y = pygame.mouse.get_pos()
    #获取鼠标位置

  x-= plane.get_width() / 2
  y-= plane.get_height() / 2

这两行是为了让飞机图片移动而不是让鼠标位置移动。 你可以把(x,y)值打印出来看就理解了。
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

13#
发表于 2015-5-17 00:47:30 |只看该作者
ajh99990 发表于 2015-5-16 16:09
我又想了想。。。竟然自己想明白了。 因为打印图片永远都是图片左上角对着鼠标坐标点的。所以只要把鼠标 ...

是的,坐标点对于图片来说并没有变,只是看上去位置对了
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

12#
发表于 2015-5-16 16:09:56 |只看该作者
ajh99990 发表于 2015-5-16 15:53
老师,对于下面这几行代码,我有一个问题。
    x, y = pygame.mouse.get_pos()
    #获取鼠标位置

我又想了想。。。竟然自己想明白了。 因为打印图片永远都是图片左上角对着鼠标坐标点的。所以只要把鼠标的坐标值往左上角位移半个图片的长和宽之后再去打印,那就能让打印出来的图片的中心正好对应着鼠标坐标点了。 原来如此。。。
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

11#
发表于 2015-5-16 16:09:30 |只看该作者
ajh99990 发表于 2015-5-16 15:53
老师,对于下面这几行代码,我有一个问题。
    x, y = pygame.mouse.get_pos()
    #获取鼠标位置

我又想了想。。。竟然自己想明白了。 因为打印图片永远都是图片左上角对着鼠标坐标点的。所以只要把鼠标的坐标值往左上角位移半个图片的长和宽之后再去打印,那就能让打印出来的图片的中心正好对应着鼠标坐标点了。 原来如此。。。
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

10#
发表于 2015-5-16 15:53:32 |只看该作者
老师,对于下面这几行代码,我有一个问题。
    x, y = pygame.mouse.get_pos()
    #获取鼠标位置
    x-= plane.get_width() / 2
    y-= plane.get_height() / 2
我想问,首先我们把x,y的位置定位到了飞机图片的左上角。然后,我们又计算出了图片的长和宽。比如图片左上角坐标为,(100,100) 计算得出的图片长和宽的一半为50,50. 我们知道,游戏窗口的最左上角坐标应该是(0,0),也就是说,坐标值越小越接近左上角,那么 您用 100-50作为新的x 100-50 作为新的y 这个新的坐标(50,50)应该是比一开始的图片左上角坐标(100,100)还要小的。那这个坐标应该更接近窗口左上角,也就是更加偏离了飞机图片的中心位置啊! 可为什么实际运行出来的结果反而是新坐标跑到飞机图片的中心了呢? 麻烦讲一下好吗?困扰了很久,谢谢老师了!
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

9#
发表于 2013-11-25 16:07:32 |只看该作者
jane 发表于 2013-11-22 19:57
怎么样可以让飞机不被遮住呢?   像这样的话 窗口是固定的  但是飞机还是可以移过去

...

那你需要在计算飞机位置时候加上点限制,比如鼠标位置小于飞机的width/2时,飞机的x就不再减小了
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

2

主题

0

好友

50

积分

注册会员

Rank: 2

8#
发表于 2013-11-22 19:57:06 |只看该作者
怎么样可以让飞机不被遮住呢?   像这样的话 窗口是固定的  但是飞机还是可以移过去

1.jpg
回复

使用道具 举报

0

主题

0

好友

101

积分

注册会员

Rank: 2

7#
发表于 2013-10-18 18:52:28 |只看该作者
灰机灰机。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-18 12:52 , Processed in 0.033477 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部