赞
踩
学了一段时间的python,还是需要一些实践环节才能深刻理解,毕竟是个刚入门的小白,就先做点简单的小游戏项目来给自己一些鼓励吧,哈哈哈,不说了,上菜。
main_color.py
#导入模块sys和pygame import sys import pygame def run_game(): pygame.init()#初始化背景设置 screen = pygame.display.set_mode((800,600)) pygame.display.set_caption('blue shy') bg_color = (135,206,235)#设置背景色,天青蓝 while True: for event in pygame.event.get(): if event.type == pygame.QUIT:#检测玩家单击游戏窗口关闭按钮 sys.exit()#退出游戏 #每次循环时都重绘屏幕 screen.fill(bg_color) #让最近绘制的屏幕可见 pygame.display.flip() run_game()
方法pygame.event.get()是用来检测用户事件,判断用户进行的那些操作。
方法screen.fill() 使用背景色填充屏幕。
代码包含了以下几个过程:
结果如图所示,窗口的大小可以根据自己的需要自己设定。
如果在后面还有很多功能需要添加,就可以考虑创建一些类,分别存放不同的功能,这样在需要大量功能修改的时候才不会显得杂乱,代码的可读性也更强。在这里因为不需要实现大量的功能,就不用创建单独的类来存放代码。
import pygame class Ship(): def __init__(self, screen): '''初始化图像并设置其初始位置''' self.screen = screen #注:定义方法__init__()。(包含两个形参:self, screen 。方法__init__()接受这些形参的值,并将他们存储在根据这个类创建的实例属性中) #加载图像并获取图像和屏幕的外接矩形 self.image = pygame.image.load("C:\python项目文件\练习001\images\Bee.bmp") self.image_rect = self.image.get_rect() self.screen_rect = screen.get_rect() #在指定位置放置飞船 self.image_rect.centerx = self.screen_rect.centerx self.image_rect.centery = self.screen_rect.centery def blitme(self): '''在指定位置绘制图像''' self.screen.blit(self.image, self.image_rect)#定义方法blitme(),根据self.image_rect 指定的位置将图像绘制到屏幕上
注:定义方法__init__()。(包含两个形参:self, screen 。方法__init__()接受这些形参的值,并将他们存储在根据这个类创建的实例属性中),__ 是两条下划线,最初只打了一条,找了挺久的错误。
pygame中,原点(0,0)位于屏幕左上角。
如上,通过在ship类的代码设置,图像的基本位置已经设定好了,接下来只需在main_color.py中更新代码就可实现功能。
以下是更新好了的代码文件:更新的位置后面有#***
import sys import pygame from ship import Ship#*** def run_game(): pygame.init() screen = pygame.display.set_mode((400,300)) pygame.display.set_caption('blue shy') #创建图像 ship = Ship(screen)#*** bg_color = (135,206,235)#设置背景色,天青蓝 while True: for event in pygame.event.get(): if event.type == pygame.QUIT:#检测玩家单击游戏窗口关闭按钮 sys.exit()#退出游戏 #每次循环时都重绘屏幕 screen.fill(bg_color) ship.blitme() #*** #让最近绘制的屏幕可见 pygame.display.flip() run_game()
从这两个小的功能实现中,我们使用了很多pygame模块中的方法,直接调用模块内部已经设置好的方法来实现功能,的确提供了不少便利,所以想要自己写一个复杂的游戏时,对各个模块以及各个方法的功能作用的了解是必不可少的,当然,写的多了,也自然就会了。
来看一下效果图:
图像居中,背景色没调,选图的时候如果有背景是透明的应该效果会更好,图片格式要位图(也就是后缀是.bmp)。当然,图片的上下左右移动也可以实现,这里就不一一写出来了,后面更新的博客中会说到,其实写的这些博客也没有技术水平,只是当做个笔记顺带加上一些自己的理解,方便以后查阅,顺带可以加深印象。
独乐乐,不如众乐乐:写是乐,评是乐,看是乐,乐最重要。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。