学python的第二十五天

开发游戏前

开发游戏,使用pygame包
pip install pygame
导入模块
import pygame
pygame.init()

主要的代码
pygame.quit()

主要的代码

主要分两块
循环以外
循环内

循环的外部

主要是加载一些东西
生成游戏的屏幕
使用绘制图片三步曲完成背景图的绘制,第1步是在外部完成的,主要是加载图片,得到图片对象

生成一些对象
矩形对象,目的,是帮我们记录,图片的数据(x,y,宽,高)
时钟对象

循环的内部
修改一些数据
绘制图片,绘图三步曲的2,3步骤,在这里实现
使用最新的x y数据来绘制图片
更新显示
控制帧率
时钟对象.tick(帧率)

飞机对象的封装

定义了一个类
HeroPlane
通过这个类,可以创建一个飞机对象
飞机对象中有两个实例属性
对象.属性 = 值
飞机对象.image = 飞机图片对象
飞机对象.rect = 飞机矩形对象

当前是三个对象
主要是飞机对象
图片对象与矩形对象都被封装在飞机对象的内部
作为了飞机对象的属性的值

大家第二天早点来,早点干活早点结束,不然吃晚

英雄飞机类让他继承精灵类

一,注意事项
如果我们定义的类不是直接的继承自object
而是继承的别的类
那么在初始化的时候
一定
一定
一定
要调用一下父类的init方法通过
super().init()
二,调用时注意
观注一下,父类的init方法中,是否有必需传递的参数如果有,那么我们在用super调用的时候,一定要传参进去
除了self参数可以不用传
class HeroPlane(pygame.sprite.Sprite):
def init(self, img_path):
#调用父类方法
#pygame.sprite.Sprite.init(self)
super().init()
#对象.方法()

精灵对象添加到精灵组
先要实例化精灵组的类,得到一个精灵组的对象
精灵组的对象,添加精灵的对象

精灵组的对象调用update方法
看一看精灵成员,是否也同样调用了自身的update方法
精灵组的对象.update()

通过类来调用实例方法

通过类调用实例方法
因为实例方法的第一个形参是self
如果是用类来调实例方法,实例方法中所需要的形参,自己传
如果是用实例对象来调实例方法,实例方法中所需要的形参,不用传
class Cat:
def init(self, name):
self.name = name​
def print_name(self):
print(“at print name method”)
print(self.name)​
t = Cat(“tom”)
j = Cat(“jifei”)
Cat.print_name(j)
#t.print_name()

飞机类的设计分析

继承的详析自定义的游戏精灵类,继承自 pygame的精灵类
class GameSprite(pygame.sprite.Sprite):
“”“自定义的游戏精灵类”""
def init(self, image_path, speed): self.image = pygame.image.load(image_path)
self.rect = pygame.Rect(0,0,100,200)
self.speed = speed

自定义的英雄飞机类,继承自,自定义的游戏精灵类

class HeroPlane(GameSprite):
def init(self, i, s):
# 设置我方飞机的位置
super().init(i,s)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值