你好,我是悦创。
前面我们讲了,一些 pygame 的操作,接下来呢,我们成功步入实战阶段。
足球在画面中运动,遇到上、左、右以及接杆就会反弹,且接杆接住会积分,如果掉落到下面,则游戏结束。
接下来,编写基础代码:
import pygame, sys from pygame.locals import * # 初始化 pygame pygame.init() screen = pygame.display.set_mode([800, 700]) while True: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() pygame.display.flip()
# 创建球类 class Myballclass(pygame.sprite.Sprite): # 给出图矩形速度并给定对应的值 def __init__(self, image_file, speed, location): pygame.sprite.Sprite.__init__(self) self.image = pygame.image.load(image_file) self.image = pygame.transform.smoothscale(self.image, (80, 70)) self.rect = self.image.get_rect() self.rect.left, self.rect.top = location self.speed = speed
# 球类给定值 myball = Myballclass(r'football.png', ball_speed, [10, 20]) # 刷新时间 time = 30 while True: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() screen.blit(myball.image, myball.rect) pygame.display.flip()
# 球的移动 def ball_move(self): self.rect = self.rect.move(self.speed) # 控制小球在游戏界面内 if self.rect.left < 0 or self.rect.right > screen.get_width(): self.speed[0] = -self.speed[0] if self.rect.top <= 0: self.speed[1] = -self.speed[1]
# 游戏结束 def over(self): self.rect = self.rect.move(self.speed) # 当小球底部大于界面高度时判定游戏结束 if self.rect.bottom > screen.get_height(): # SysFount 从系统字体中创建一个font对象(字体样式, 大小) font = pygame.font.SysFont('宋体', 40) # render 在新的surface上绘制文本(文本, 抗锯齿, 颜色, 背景) text_surface = font.render(u"Game Over", True, (0, 0, 255)) screen.blit(text_surface, (screen.get_width() // 2, screen.get_height() // 2)) return 0
下部分,明天继续!
AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。QQ、微信在线,随时响应!V:Jiabcdefh