pygame实现的弹珠游戏源码


用pygame实现的2d弹珠游戏. 主要框架如下图所示: Client 程序入口,从这里开始游戏。 resource 图片字体等资源 GameCtrl Gamelogic 对游戏的数据进行控制,例如球的下一个位置,是否发生碰撞,速度如何。 主要接口: update():对游戏数据更新,下一次Section的回调就知道应该在什么位置绘图 logic_start(): 游戏开始或者重新开始的时候初始化数据。 logic_end(): 游戏重新开始的时候销毁以前数据 save () : 保存游戏数据到文件,下次可以继续接着玩 load(): 读取文件信息, 重新开始上次的游戏 主要类: Ball(): 对球的数据和操作封装 Brick(): 对砖的行为封装 CtrlBar(): 对玩家控制的Bar进行封装 BrickCreator(): 对砖块的生成进行封装 GameCtrl 对游戏输入,控制调用Section。 主要接口: add_section(): 加入新的section,绘制新的东西 goto_section():被触发,游戏转移到绘制另一个section中,例如在游戏中鼠标右键,触发到一个右键界面出现。 start_main_loop(): 游戏的主循环 Section GameSection(): 定义所有Section的超类 主要接口: handle_key(): 处理用户键盘输入接口 handle_mouse(): 处理用户鼠标输入接口 update(): 从logic中获取更新的数据,用来下一步的绘图 render(): 根据所拥有的image等资源,绘制图像 menu Section:从GameSection继承,定义进入游戏的界面及按键行为。 主要函数: Render(): 画出menu ball section(): 游戏的主要的Section,绘制游戏过程中的元素 主要函数: update(): 从Logic中获取数据,用来绘图 render(): 绘图 handle(): 处理用户输入。
资源截图
代码片段和文件信息
# -*- coding:gb2312 -*-
# -*- $Id: main.py 2211 2009-04-20 01:55:50Z dengzhifeng $ -*-


import sys
import os
import pygame
from pygame.locals import *
import gamectrl.const as const
from gamectrl.gamectrl import GameCtrl  GameSection
from section.menusection import MenuSection
from section.ballsection import BallSection
from section.oversection import OverSection
from logic.gamelogic import GameLogic



if __name__ == ‘__main__‘:
# 创建逻辑
game_logic = GameLogic()
game_ctrl = GameCtrl(game_logic)

# 创建游戏Section
menu_section = MenuSection()
ball_section = BallSection()
over_section = OverSection()

# 绑定Section
game_ctrl.add_section(menu_section const.MENU_SECTION)
game_ctrl.add_section(ball_section const.BALL_SECTION)
game_ctrl.add_section(over_section const.OVER_SECTION)

# 开始
game_ctrl.start_main_loop(const.MENU_SECTION)
#game_ctrl.start_main_loop(const.BALL_SECTION)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3774  2009-04-20 09:55  mini_srcfavicon.ico

     文件       4242  2009-04-20 09:38  mini_srcgamectrlconst.py

     文件       3559  2009-04-15 19:56  mini_srcgamectrlgamectrl.py

     文件          0  2009-04-03 16:55  mini_srcgamectrl\__init__.py

     文件      13115  2009-04-16 15:06  mini_srclogicall.py

     文件       5163  2009-04-17 16:43  mini_srclogicrickmanager.py

     文件       7360  2009-04-20 09:38  mini_srclogicctrlbar.py

     文件       5104  2009-04-16 17:32  mini_srclogicgamelogic.py

     文件       6962  2009-04-20 09:38  mini_srclogicitemmanager.py

     文件          0  2009-04-03 16:55  mini_srclogic\__init__.py

     文件        909  2009-04-20 09:55  mini_srcmain.py

     文件        882  2009-04-17 16:43  mini_srcmap_gen.py

     文件        645  2009-04-15 16:18  mini_srcmymaplv0.py

     文件        302  2009-04-17 16:43  mini_srcmymaplv1.py

     文件        434  2009-04-17 16:43  mini_srcmymaplv2.py

     文件        656  2009-04-17 16:43  mini_srcmymaplv3.py

     文件        728  2009-04-17 16:43  mini_srcmymaplv4.py

     文件        854  2009-04-17 16:43  mini_srcmymaplv5.py

     文件         55  2009-04-17 16:43  mini_srcmymap\__init__.py

     文件        793  2009-04-20 09:55  mini_srcmysetup.py

     文件        514  2009-04-20 09:55  mini_src
eadme.txt

     文件     165240  2009-04-15 22:52  mini_src
esallall_1.png

     文件     183440  2009-04-15 22:51  mini_src
esallall_2.png

     文件      92919  2009-04-15 22:52  mini_src
esallall_3.png

    ..A.SH.    106496  2009-04-16 10:23  mini_src
esallThumbs.db

     文件     137548  2009-04-17 11:30  mini_src
esggg.jpg

     文件      37357  2009-04-17 11:43  mini_src
esghelp.png

     文件      75721  2009-04-02 15:03  mini_src
esginfo.jpg

    ..A.SH.     10752  2009-04-17 11:51  mini_src
esgThumbs.db

     文件      17024  2009-04-09 15:24  mini_src
esrickrick_1.png

............此处省略96个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)