当前位置: 首页 > news >正文

头条网站开发企业简介优势项目案例等模块点选即用

头条网站开发,企业简介优势项目案例等模块点选即用,wordpress内容页主题修改,青岛比较有名的设计公司目录 前言: 1.plane_sprites模块: 1.1导入模块: 1.1.1pygame:一个用于创建游戏的Python库。 1.1.2random:Python标准库中的一个模块,用于生成随机数。 1.2定义事件代号: 1.2.1ENEMY_EVENT:自定义的敌机出场事件代号&#xf…

目录

前言:

1.plane_sprites模块:

1.1导入模块:

1.1.1pygame:一个用于创建游戏的Python库。

1.1.2random:Python标准库中的一个模块,用于生成随机数。

1.2定义事件代号:

1.2.1ENEMY_EVENT:自定义的敌机出场事件代号,使用pygame.USEREVENT作为基础值。

1.2.2FIRE:自定义的子弹发射事件代号,设置为敌机出场事件代号加1。

 1.3基类:GameSprites:

1.3.1GameSprites:所有游戏精灵的基类。

1.3.2__init__:初始化方法,接收图像名称和速度作为参数,并加载图像。

1.3.3update:更新精灵的位置,使其沿y轴向下移动。

1.4背景类:Background:

1.4.1Background:继承自GameSprites的背景类。

1.4.2__init__:除了加载背景图像外,还可以选择是否从屏幕上方开始显示背景。

1.4.3update:除了基本的向下移动外,还负责在背景完全移出屏幕时将其重置到屏幕上方

1.5敌机类:Enemy:

1.5.1Enemy:继承自GameSprites的敌机类。

1.5.2__init__:初始化时设置随机速度和随机水平位置。

1.5.3update:当敌机飞出屏幕时,调用kill方法将其从精灵组中删除

1.6英雄飞机类:Hero:

1.6.1Hero:继承自GameSprites的英雄飞机类。

1.6.2__init__:初始化飞机的位置和子弹精灵组。

1.6.3update:更新飞机的位置,并确保它不会离开屏幕边界。

1.6.4fire:发射子弹的方法,创建子弹并将其添加到子弹精灵组中。

1.7子弹类:Bullet:

1.7.1Bullet:继承自GameSprites的子弹类。

1.7.2__init__:初始化子弹并设置其向上移动的速度。

1.7.3update:当子弹飞出屏幕时,调用kill方法将其从精灵组中删除。

1.7.4__del__:当子弹对象被销毁时调用的方法,打印一条消息。

结语:


前言:

经过了前面几个章节关于Python面向对象的学习,相信大家关于如何写一个面向对象的小游戏的基本内容也已经知道了,而这一篇我也会结合之前文章提到的内容正式开始写关于面向对象的小游戏了,这篇我会结合代码一点一点解释关于面向对象的游戏,当然在我的资源里我也上传了压缩包,感兴趣的小伙伴可以自己下载,或者结合我这几篇的教程和所学的内容也可以自己尝试在pycharm中写一个面向对象的飞机大战的小游戏.接下来就正式开始了:

1.plane_sprites模块:

1.1导入模块:

import pygame  
import random

这是对代码的解释:

1.1.1pygame:一个用于创建游戏的Python库。

1.1.2random:Python标准库中的一个模块,用于生成随机数。

1.2定义事件代号:

ENEMY_EVENT = pygame.USEREVENT  
FIRE = pygame.USEREVENT + 1

 这是对代码的解释:

1.2.1ENEMY_EVENT:自定义的敌机出场事件代号,使用pygame.USEREVENT作为基础值。

1.2.2FIRE:自定义的子弹发射事件代号,设置为敌机出场事件代号加1。

 1.3基类:GameSprites:

class GameSprites(pygame.sprite.Sprite):  def __init__(self, images_name, speed=5):  super().__init__()  self.image = pygame.image.load(images_name)  self.rect = self.image.get_rect()  self.speed = speed  def update(self):  self.rect.y += self.speed

 这是对代码的解释:

1.3.1GameSprites:所有游戏精灵的基类。

1.3.2__init__:初始化方法,接收图像名称和速度作为参数,并加载图像。

1.3.3update:更新精灵的位置,使其沿y轴向下移动。

1.4背景类:Background:

class Background(GameSprites):  def __init__(self, is_alt=False):  super().__init__('images/background.png')  if is_alt:  self.rect.y = -self.rect.height  def update(self):  super().update()  if self.rect.y >= 700:  self.rect.y = -self.rect.height

  这是对代码的解释:

1.4.1Background:继承自GameSprites的背景类。

1.4.2__init__:除了加载背景图像外,还可以选择是否从屏幕上方开始显示背景。

1.4.3update:除了基本的向下移动外,还负责在背景完全移出屏幕时将其重置到屏幕上方

1.5敌机类:Enemy:

class Enemy(GameSprites):  def __init__(self):  super().__init__('images/enemy1.png')  self.speed = random.randint(1, 8)  self.rect.x = random.randint(0, 480 - self.rect.width)  def update(self):  super().update()  if self.rect.y >= 700:  print('飞出屏幕需要删除...')  self.kill()

  这是对代码的解释:

1.5.1Enemy:继承自GameSprites的敌机类。

1.5.2__init__:初始化时设置随机速度和随机水平位置。

1.5.3update:当敌机飞出屏幕时,调用kill方法将其从精灵组中删除

1.6英雄飞机类:Hero:

class Hero(GameSprites):  def __init__(self):  super().__init__('images/me1.png', 1)  self.rect.x = 240 - self.rect.width / 2  self.rect.y = 700 - self.rect.height - 30  self.upanddown = 0  self.bullet_group = pygame.sprite.Group()  def update(self):  self.rect.x += self.speed  self.rect.y += self.upanddown  # 控制飞机不能离开屏幕的代码...  def fire(self):  print('发射子弹')  for i in range(4):  bullet = Bullet()  bullet.rect.centerx = self.rect.centerx  bullet.rect.y = self.rect.y - (i + 1) * 20  self.bullet_group.add(bullet)

  这是对代码的解释:

1.6.1Hero:继承自GameSprites的英雄飞机类。

1.6.2__init__:初始化飞机的位置和子弹精灵组。

1.6.3update:更新飞机的位置,并确保它不会离开屏幕边界。

1.6.4fire:发射子弹的方法,创建子弹并将其添加到子弹精灵组中。

1.7子弹类:Bullet:

class Bullet(GameSprites):  def __init__(self):  super().__init__('images/bullet1.png', -2)  def update(self):  super().update()  if self.rect.y < 0 - self.rect.height:  self.kill()  def __del__(self):  print('子弹被销毁')

   这是对代码的解释:

1.7.1Bullet:继承自GameSprites的子弹类。

1.7.2__init__:初始化子弹并设置其向上移动的速度。

1.7.3update:当子弹飞出屏幕时,调用kill方法将其从精灵组中删除。

1.7.4__del__:当子弹对象被销毁时调用的方法,打印一条消息。

结语:

关于这个面向对象的小游戏主要是分为了两个模块:

基于pygame的飞机射击游戏的基础类。这些类包括背景、敌机、英雄飞机和子弹。每个类都从GameSprites基类继承,它提供了基本的精灵功能和更新方法

这里有两段代码分开调用是为了保持代码的模块化和可读性。Planegame 类封装了游戏的主要逻辑和功能,而 if __name__ == '__main__': 部分则是游戏的入口点。这种结构使得代码更易于理解和维护。

关系上,Planegame 类定义了游戏的所有核心组件和功能,包括初始化窗口、创建精灵和精灵组、事件处理、碰撞检测以及更新和绘制精灵组等。而 if __name__ == '__main__': 部分则是实际运行游戏的代码,它创建了 Planegame 类的一个实例,并调用了该实例的 start_game 方法来启动游戏循环。

不过,由于时间的关系今天我们就先到这里,还有 关于if __name__ == '__main__'的调用部分则会在明天继续更新也欢迎大家对我的内容进行指点这些都是个人关于学习面向对象的总结难免有所疏漏,请大家多多包涵,也欢迎大家对我的文章进行指点和斧正

http://www.yayakq.cn/news/655934/

相关文章:

  • 小说网站建立北京哪个网站制作公司
  • 内网网站模板大众点评网
  • 怎么创建网站相册帮别人做彩票网站吗
  • 英文网站建设比较好建筑工程培训课程
  • 大沥网站建设职业教育网站平台建设
  • ppt做杂志模板下载网站有哪些网站策划常用软件
  • 营销型网站设计建设京山大洪山旅游开发有限公司 做网站
  • 工信部网站备案系统网站建设的安全应该注意什么
  • 新沂徐州网站开发茄子河区网站建设自查报告
  • 建设好学校网站网站流量查询
  • 新材建设局网站莆田seo快速排名
  • 腾讯广告投放端提供的建站工具有友情链接检测平台
  • 医院招聘网站建设和维护人员提高seo排名
  • 搭建电商网站源码成都网页设计与网站建设
  • 网站模块标准版做警员编号网站
  • 广州做购物网站word版免费个人简历模板
  • 岳阳市建设局网站如何识别网页用什么网站做的
  • 我想找网站帮忙做宣传泰国云服务器
  • 关键词排名查询网站wordpress nana
  • 网站首页备案号链接通化北京网站建设
  • 个人做动漫资源网站网络舆情案例
  • 国外房产中介网站少儿编程10大品牌
  • dw做的个人网站熬夜必备黄
  • 太原网站建设制作机构企业为什么要纳税
  • 家居企业网站建设公司.mil 域名网站有哪些
  • 网站建设部岗位职责做免费外贸网站册域名
  • 包头市住房与城乡建设部网站南阳河南网站建设价格
  • 和小孩做的网站企业解决方案展示平台
  • 怎么查看什么公司做的网站吗电话百度
  • 课程网站建设规划方案建立个人网页需要多少钱