用一个实例介绍一下有关pygame中不同类之间的通信,
详细介绍在代码段有标注,感兴趣的可以复制代码试试:
 import pygame
import sys
# -------------------------围墙堆叠---------------------------
brickImage =r"../image/brick.png"
ironImage = r"../image/iron.png" pygame.init()
screen=pygame.display.set_mode([800,600])
# 砖块类
class Brick(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load(brickImage)
self.rect=self.image.get_rect() # 铁块类
class Iron(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load(ironImage)
self.rect=self.image.get_rect() class Map():
def __init__(self):
# 初始化砖块群组
self.brickGroup=pygame.sprite.Group()
# 初始化铁块群组
self.ironGroup=pygame.sprite.Group()
# 数字代表地图中的位置
# 画砖块
X1379 = [2, 3, 6, 7, 18, 19, 22, 23]
Y1379 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 17, 18, 19, 20, 21, 22, 23] X28 = [10, 11, 14, 15]
Y28 = [2, 3, 4, 5, 6, 7, 8, 11, 12, 15, 16, 17, 18, 19, 20] X46 = [4, 5, 6, 7, 18, 19, 20, 21]
Y46 = [13, 14] X5 = [12, 13]
Y5 = [16, 17]
X0Y0 = [(11, 23), (12, 23), (13, 23), (14, 23), (11, 24), (14, 24), (11, 25), (14, 25)]
for x in X1379:
for y in Y1379:
# 实例化砖块类对象
self.brick=Brick()
# 生砖块的位置
self.brick.rect.left,self.brick.rect.top=3+x*24,3+y*24         每循环一次自动将动画添加到精灵组(下同)
self.brickGroup.add(self.brick)
for x in X28:
for y in Y28:
self.brick=Brick()
self.brick.rect.left,self.brick.rect.top=3+x*24,3+y*24
self.brickGroup.add(self.brick)
for x in X46:
for y in Y46:
self.brick=Brick()
self.brick.rect.left,self.brick.rect.top=3+x*24,3+y*24
self.brickGroup.add(self.brick)
for x in X5:
for y in Y5:
self.brick=Brick()
self.brick.rect.left,self.brick.rect.top=3+x*24,3+y*24
self.brickGroup.add(self.brick)
# for item in X0Y0:
for x,y in X0Y0:
self.brick=Brick()
# self.brick.rect.left,self.brick.rect.top=3+item[0]*24,3+item[1]*24
self.brick.rect.left, self.brick.rect.top = 3 + x * 24, 3 + y * 24
self.brickGroup.add(self.brick)
for x, y in [(0, 14), (1, 14), (12, 6), (13, 6), (12, 7), (13, 7), (24, 14), (25, 14)]:
self.iron=Iron()
self.iron.rect.left,self.iron.rect.top=3+x*24,3+y*24
self.ironGroup.add(self.iron) while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
self.brickGroup.update()
self.ironGroup.update()
self.brickGroup.draw(screen)
self.ironGroup.draw(screen)
pygame.display.update() Map()
更多pygame知识可以关注博客:http://eyehere.net/2011/python-pygame-novice-professional-index/

pygame中多个class类之间的关系的更多相关文章

  1. 全面解释java中StringBuilder、StringBuffer、String类之间的关系

    StringBuilder.StringBuffer.String类之间的关系 java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,在上一篇博文中我 ...

  2. Java中接口与接口和类之间的关系

    接口和接口之间的关系 继承关系 可以多继承,并且可以多层继承 注意: 1.如果多个父接口中有同名的抽象方法,那么子接口只需要实现一次即可 2.如果多个父接口中有同名的默认方法,那么子接口必须重写默认方 ...

  3. AE中网络分析的实现 的各个类之间的关系

    原文AE中网络分析的实现 的各个类之间的关系 1.     创建网络数据集 在ArcCatalog中勾选网络分析模块,新建个人地理信息数据库—>新建要素数据集—>批量导入要素—>创建 ...

  4. 请解释ASP. NET中的web页面与隐藏类之间的关系

    请解释ASP.NET中的web页面与其隐藏类之间的关系 其实页面与其隐藏类之间就是一个部分类的关系,你在页面上放一个一个的控件就是在这个类中定义一个一个的属性, 因为是同一个类的部分类的关系,所以隐藏 ...

  5. Java 中类与类之间的关系

    在java中类和类之间的关系基本上有依赖.关联.聚合.组合等 一.继承关系     继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在J ...

  6. oc之封装与类之间的关系

    1. 面向对象的特征-封装? 封装: 现实生活中的封装: 将很多的小东西 塞在1个大口袋里面. 好处: a. 对外部屏蔽. b. 方便管理. 代码的封装: 函数/方法 就是1种封装的体现: 将一段代码 ...

  7. java 类与类之间的关系 及uml图

    类与接口之间的关系 : 继承 类与类之间的关系 :继承关系  包含关系 类与对象之间的关系 : 实例 UML 类图中类与类之间的关系: 泛化关系(generalization) 关联关系(associ ...

  8. 【47】java的类之间的关系:泛化、依赖、关联、实现、聚合、组合

    java的类之间的关系:泛化.依赖.关联.实现.聚合.组合 泛化: • 泛化关系(Generalization)也就是继承关系,也称为"is-a-kind-of"关系,泛化关系用于 ...

  9. python之路--类与类之间的关系

    类和类之间的关系 在我们的世界中事物和事物之间总会有一些联系. 在面向对象中. 类和类之间也可以产生相关的关系 1. 依赖关系 执行某个动作的时候. 需要xxx来帮助你完成这个操作. 此时的关系是最轻 ...

随机推荐

  1. jdk1.8 HashMap的扩容resize()方法详解

    /** * Initializes or doubles table size. If null, allocates in * accord with initial capacity target ...

  2. 读取excel思路

    1.输入地址 2.输入指定的sheet  通过sheet()[]方式指定 3.输入执行的单元位置 通过 .cell_value(x,y)方式指定 示例 data = xlrd.open_workboo ...

  3. day29 上周复习

    上周内容回顾 初始面向对象 class 类名(父类1,父类2): 静态属性 = "" # 静态属性,类方法 def __init__(self): # 初始化方法 def func ...

  4. Leetcode 7.反转整数 By Python

    给定一个 32 位有符号整数,将整数中的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假 ...

  5. 【Luogu3803】多项式乘法FFT(FFT)

    题目戳我 一道模板题 自己尝试证明了大部分... 剩下的还是没太证出来... 所以就是一个模板放在这里 以后再来补东西吧.... #include<iostream> #include&l ...

  6. oracle存储过程递归调用

    oracle存储过程递归调用,如果where子句使用的是传入的参数, 在以后的递归调用中参数就是第一次调用的参数值,解决办法是定义变量,使用自定义的变量问题可以解决.

  7. I/O多路复用详解

    要想完全理解I/O多路复用,需先要了解I/O模型: 一.五种I/O模型 1.阻塞I/O模型 最流行的I/O模型是阻塞I/O模型,缺省情形下,所有套接口都是阻塞的.我们以数据报套接口为例来讲解此模型(我 ...

  8. Linux网络基本网络配置

    Linux网络基本网络配置方法介绍 网络信息查看 设置网络地址: cat /etc/sysconfig/network-scripts/ifcfg-eth0 你将会看到: DEVICE=eth0 BO ...

  9. ajaxSubmit 提交form 表单

    $(document).on('click','#submit_title_btn',function(){ var title = $("#title").val(); if ( ...

  10. HDU1199 动态线段树 // 离散化

    附动态线段树AC代码 http://acm.hdu.edu.cn/showproblem.php?pid=1199 因为昨天做了一道动态线段树的缘故,今天遇到了这题没有限制范围的题就自然而然想到了动态 ...