- 帖子
- 3232
- 精华
- 6
- 积分
- 118318
- 阅读权限
- 200
- 注册时间
- 2013-7-21
- 最后登录
- 2024-11-23
|
最近微信上很火的“打飞机”游戏,通过手指在屏幕上触摸的位置来移动你的飞机。在电脑上,我们没法直接用手操作,但可以用鼠标替代手指。
在电脑游戏里,鼠标是个很好用的输入设备。因此在很多游戏中,都需要得到鼠标的位置,以响应用户的操作。
现在,我们要在之前hello world的程序上增加一架飞机,并且用鼠标来控制飞机的位置。
得到鼠标位置坐标的方法是:与以往用的函数有些不同,这个函数会返回两个值:鼠标的x坐标和y坐标。所以你需要两个变量来记录返回值:- x, y = pygame.mouse.get_pos()
复制代码 然后,在游戏主循环中,把实现准备好的飞机图片画到屏幕上,位置就是(x,y):- screen.blit(plane, (x,y))
复制代码 运行程序,你会发现,鼠标移动到哪,飞机就会“飞”到哪。但是,飞机图片始终在鼠标的右下方。这是因为图片的坐标原点是在左上角,原点与鼠标的位置对齐。
如果你想让图片的中心和鼠标位置对齐,则需要再调整一下x,y的位置:- x-= plane.get_width() / 2
- y-= plane.get_height() / 2
复制代码 get_width和get_height分别是获取图片的宽和高。
你可以挑张合适的背景图和一张边缘透明的飞机图,再把窗口的长宽调整一下,让它看上去更舒服一些。
完整代码:- # -*- coding: utf-8 -*-
- import pygame
- from sys import exit
- pygame.init()
- screen = pygame.display.set_mode((600, 170), 0, 32)
- pygame.display.set_caption("Hello, World!")
- background = pygame.image.load('bg.jpg').convert()
- plane = pygame.image.load('plane.jpg').convert()
- #加载飞机图像
- while True:
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- pygame.quit()
- exit()
- screen.blit(background, (0,0))
- x, y = pygame.mouse.get_pos()
- #获取鼠标位置
- x-= plane.get_width() / 2
- y-= plane.get_height() / 2
- #计算飞机的左上角位置
- screen.blit(plane, (x,y))
- #把飞机画到屏幕上
- pygame.display.update()
复制代码
#==== Crossin的编程教室 ====#
微信ID:crossincode
论坛:http://crossin.me
QQ群:312723402
面向零基础初学者的编程课
每天5分钟,轻松学编程
|
|