猫史档案馆


爱因斯坦的弟子

爱因斯坦的弟子

Lv.1

隐退

获赞:260收藏:152浏览:12327作品收藏:292

签名:物竞党,努力学习微积分

回复帖子评论
上一页2 页 / 共 6下一页

Python【编程小讲堂】第十期 Tkinter高级实战 中回复

https://shequ.codemao.cn/community/192143

https://shequ.codemao.cn/community/192145

https://shequ.codemao.cn/community/192149

2019-08-20T12:10:10 点赞:0

Python【编程小讲堂】第十期 Tkinter高级实战2 中回复

本期链接集合(高中函数)

https://shequ.codemao.cn/community/192143

https://shequ.codemao.cn/community/192145

https://shequ.codemao.cn/community/192149

2019-08-20T12:11:01 点赞:0

Python【编程小讲堂】第十期 Tkinter高级实战3 中回复

本期链接集合(高中函数)

https://shequ.codemao.cn/community/192143

https://shequ.codemao.cn/community/192145

https://shequ.codemao.cn/community/192149

2019-08-20T12:11:30 点赞:0

【CJW python小讲堂】tkinter深度讲解(上) 中回复

科科

2019-08-20T12:45:51 点赞:0

【CJW python小讲堂 第九期】高深的UI设计排布,快来看一看! 中回复

已收录

2019-08-20T12:58:47 点赞:0

Python【编程小讲堂】第十期 Tkinter高级实战3 中回复

第一期: https://shequ.codemao.cn/community/178600
第二期: https://shequ.codemao.cn/community/184311
第三期: https://shequ.codemao.cn/community/185418
第四期: https://shequ.codemao.cn/community/188747
第五期: https://shequ.codemao.cn/community/189560
第六期: https://shequ.codemao.cn/community/190290
第七期: https://shequ.codemao.cn/community/191070

第八期: https://shequ.codemao.cn/community/191319

              https://shequ.codemao.cn/community/191320

第九期:https://shequ.codemao.cn/community/191456

第十期:

https://shequ.codemao.cn/community/192143

https://shequ.codemao.cn/community/192145

https://shequ.codemao.cn/community/192149

 

2019-08-20T13:00:44 点赞:0

【笨笨熊工作室】雷电猴在家嘛?我等你好久了! 中回复

永远等不到

2019-08-20T16:02:58 点赞:0

【笨笨熊工作室】我的自我介绍 中回复

……

2019-08-20T16:03:56 点赞:0

(工作室申诉)关于笨笨熊抄袭诸多作品 中回复

看到了

2019-08-20T16:05:32 点赞:0

【Python作品分享】清华大学的录取题目(共五道)【作品秀】 中回复

……

2019-08-21T10:04:10 点赞:0

CJW c++萌新指南【第一期】初识Dev-c++ 中回复

怎么下载

叫我

我换电脑了

忘了

2019-08-21T10:05:13 点赞:0

您好,大家好 中回复

大家哈喽

我是爱因斯坦的弟子

今天我们来讲高难度的飞机大战

萌新请慎入!!

温馨提示:本文很长,请分天看完

主要标签:pygame

游戏的基本设定:

敌方共有大中小3款飞机,分为高中低三种速度;

子弹的射程并非全屏,而大概是屏幕长度的80%;

消灭小飞机需要 1 发子弹,中飞机需要 8 发,大飞机需要 20 发子弹;

每消灭一架小飞机得1000分,中飞机6000分,大飞机10000分;

每个30秒有一个随机的道具补给,分为两种道具,全屏喵和双倍子弹;

全屏喵最多只能存放 3 枚,双倍子弹可以维持 18 秒钟的效果;

游戏将根据分数来逐步提高难度,难度的提高表现为 飞机数量的增多以及速度的加快;

为中飞机和大飞机增加了血槽的显示,这样我们可以直观的知道敌机快被消灭了没有;

我方有三次机会,每次被敌人消灭,新诞生的飞机会有 3 秒钟的安全期;

游戏结束后会显示历史最高分数。
main.py:就是主程序;

bullet.py:就是子弹,子弹有两种,单发和双发;

enemy.py:就是敌机,共有大中小三种,并且都有不同的属性;

myplane.py:就是我的飞机;

supply.py:就是补给和装备;

record.txt:保存的最高分;

三个文件夹就是需要的素材。

第一部分:

开始编辑代码:

main部分:(主程序)

import pygame
import sys
import traceback #为了更好地退出

from pygame.locals import *

pygame.init()
pygame.mixer.init() #混音器初始化

bg_size = width, height = 480, 700
screen = pygame.display.set_mode(bg_size)
pygame.display.set_caption("飞机大战 -- Python Demo")

background = pygame.image.load("images/background.png").convert()

# 载入游戏音乐
pygame.mixer.music.load("sound/game_music.ogg")
pygame.mixer.music.set_volume(0.2)
bullet_sound = pygame.mixer.Sound("sound/bullet.wav")
bullet_sound.set_volume(0.2)
bomb_sound = pygame.mixer.Sound("sound/use_bomb.wav")
bomb_sound.set_volume(0.2)
supply_sound = pygame.mixer.Sound("sound/supply.wav")
supply_sound.set_volume(0.2)
get_bomb_sound = pygame.mixer.Sound("sound/get_bomb.wav")
get_bomb_sound.set_volume(0.2)
get_bullet_sound = pygame.mixer.Sound("sound/get_bullet.wav")
get_bullet_sound.set_volume(0.2)
upgrade_sound = pygame.mixer.Sound("sound/upgrade.wav")
upgrade_sound.set_volume(0.2)
enemy3_fly_sound = pygame.mixer.Sound("sound/enemy3_flying.wav")
enemy3_fly_sound.set_volume(0.2)
enemy1_down_sound = pygame.mixer.Sound("sound/enemy1_down.wav")
enemy1_down_sound.set_volume(0.2)
enemy2_down_sound = pygame.mixer.Sound("sound/enemy2_down.wav")
enemy2_down_sound.set_volume(0.2)
enemy3_down_sound = pygame.mixer.Sound("sound/enemy3_down.wav")
enemy3_down_sound.set_volume(0.5)
me_down_sound = pygame.mixer.Sound("sound/me_down.wav")
me_down_sound.set_volume(0.2)

def main():
    pygame.mixer.music.play(-1)

    clock = pygame.time.Clock()

    running = True

    while running:
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()

        screen.blit(background, (0, 0))

        pygame.display.flip()

        clock.tick(60)

if __name__ == "__main__":
    try:
        main()
    except SystemExit:
        pass
    except:
        traceback.print_exc()
        pygame.quit()
        input()

萌新:看起来真晕啊!

爱因斯坦的弟子:别急,我来讲一讲!

先导入这几个库,pygame就是专门制作游戏的库

sys库:该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数。它始终可用。

导入traceback是能更好地方便程序退出

pygame.init()就是初始化pygame


pygame.mixer.init() 也就是混音器初始化

bg_size = width, height = 480, 700  设定屏幕的大小,长和宽的值
screen = pygame.display.set_mode(bg_size)将我们设定的这个值带入这里,设定屏幕的大小
pygame.display.set_caption("飞机大战 -- Python Demo")设置游戏标题“飞机大战 -- Python Demo”

background = pygame.image.load("images/background.png").convert()添加背景图片

# 载入游戏音乐
pygame.mixer.music.load("sound/game_music.ogg")我们使用混合器载入音乐,在平时我们也可以使用频道来加载音乐,之后会提到
pygame.mixer.music.set_volume(0.2)
bullet_sound = pygame.mixer.Sound("sound/bullet.wav")wav是音乐格式的一种后缀名
bullet_sound.set_volume(0.2)
bomb_sound = pygame.mixer.Sound("sound/use_bomb.wav")
bomb_sound.set_volume(0.2)
supply_sound = pygame.mixer.Sound("sound/supply.wav")
supply_sound.set_volume(0.2)
get_bomb_sound = pygame.mixer.Sound("sound/get_bomb.wav")
get_bomb_sound.set_volume(0.2)
get_bullet_sound = pygame.mixer.Sound("sound/get_bullet.wav")
get_bullet_sound.set_volume(0.2)
upgrade_sound = pygame.mixer.Sound("sound/upgrade.wav")
upgrade_sound.set_volume(0.2)
enemy3_fly_sound = pygame.mixer.Sound("sound/enemy3_flying.wav")
enemy3_fly_sound.set_volume(0.2)
enemy1_down_sound = pygame.mixer.Sound("sound/enemy1_down.wav")
enemy1_down_sound.set_volume(0.2)
enemy2_down_sound = pygame.mixer.Sound("sound/enemy2_down.wav")
enemy2_down_sound.set_volume(0.2)
enemy3_down_sound = pygame.mixer.Sound("sound/enemy3_down.wav")
enemy3_down_sound.set_volume(0.5)
me_down_sound = pygame.mixer.Sound("sound/me_down.wav")
me_down_sound.set_volume(0.2)

def main():##这里缩进不方便,看上面的代码。定义main
pygame.mixer.music.play(-1)用混合器play(-1)

clock = pygame.time.Clock()启用计时器

running = True当奔跑状态时成功时

while running: 当奔跑时
for event in pygame.event.get(): 用侦测鼠标
if event.type == QUIT:
pygame.quit()
sys.exit()

screen.blit(background, (0, 0))

pygame.display.flip()

clock.tick(60)

if __name__ == "__main__":
try:
main()
except SystemExit:
pass
except:
traceback.print_exc()
pygame.quit()
input()

 

2019-08-21T12:08:21 点赞:0

您好,大家好 中回复

大家哈喽emotion_星能猫_hi

我是爱因斯坦的弟子

今天我们来讲高难度的飞机大战

速收藏!!!

萌新请慎入!!

里面包含爱弟的讲解视频,独家珍藏啊!

温馨提示(1):本文很长,请分天看完

温馨提示(2):所有代码为本人分析,敲代码,请勿盗取,若需转载,请附上本问

主要标签:pygame

游戏的基本设定:

敌方共有大中小3款飞机,分为高中低三种速度;

子弹的射程并非全屏,而大概是屏幕长度的80%;

消灭小飞机需要 1 发子弹,中飞机需要 8 发,大飞机需要 20 发子弹;

每消灭一架小飞机得1000分,中飞机6000分,大飞机10000分;

每个30秒有一个随机的道具补给,分为两种道具,全屏喵和双倍子弹;

全屏喵最多只能存放 3 枚,双倍子弹可以维持 18 秒钟的效果;

游戏将根据分数来逐步提高难度,难度的提高表现为 飞机数量的增多以及速度的加快;

为中飞机和大飞机增加了血槽的显示,这样我们可以直观的知道敌机快被消灭了没有;

我方有三次机会,每次被敌人消灭,新诞生的飞机会有 3 秒钟的安全期;

游戏结束后会显示历史最高分数。
main.py:就是主程序;

bullet.py:就是子弹,子弹有两种,单发和双发;

enemy.py:就是敌机,共有大中小三种,并且都有不同的属性;

myplane.py:就是我的飞机;

supply.py:就是补给和装备;

record.txt:保存的最高分;

三个文件夹就是需要的素材。

第一部分:

开始编辑代码:

main部分:(主程序)

import pygame
import sys
import traceback #为了更好地退出

from pygame.locals import *

pygame.init()
pygame.mixer.init() #混音器初始化

bg_size = width, height = 480, 700
screen = pygame.display.set_mode(bg_size)
pygame.display.set_caption("飞机大战 -- Python Demo")

background = pygame.image.load("images/background.png").convert()

# 载入游戏音乐
pygame.mixer.music.load("sound/game_music.ogg")
pygame.mixer.music.set_volume(0.2)
bullet_sound = pygame.mixer.Sound("sound/bullet.wav")
bullet_sound.set_volume(0.2)
bomb_sound = pygame.mixer.Sound("sound/use_bomb.wav")
bomb_sound.set_volume(0.2)
supply_sound = pygame.mixer.Sound("sound/supply.wav")
supply_sound.set_volume(0.2)
get_bomb_sound = pygame.mixer.Sound("sound/get_bomb.wav")
get_bomb_sound.set_volume(0.2)
get_bullet_sound = pygame.mixer.Sound("sound/get_bullet.wav")
get_bullet_sound.set_volume(0.2)
upgrade_sound = pygame.mixer.Sound("sound/upgrade.wav")
upgrade_sound.set_volume(0.2)
enemy3_fly_sound = pygame.mixer.Sound("sound/enemy3_flying.wav")
enemy3_fly_sound.set_volume(0.2)
enemy1_down_sound = pygame.mixer.Sound("sound/enemy1_down.wav")
enemy1_down_sound.set_volume(0.2)
enemy2_down_sound = pygame.mixer.Sound("sound/enemy2_down.wav")
enemy2_down_sound.set_volume(0.2)
enemy3_down_sound = pygame.mixer.Sound("sound/enemy3_down.wav")
enemy3_down_sound.set_volume(0.5)
me_down_sound = pygame.mixer.Sound("sound/me_down.wav")
me_down_sound.set_volume(0.2)

def main():
    pygame.mixer.music.play(-1)

    clock = pygame.time.Clock()

    running = True

    while running:
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()

        screen.blit(background, (0, 0))

        pygame.display.flip()

        clock.tick(60)

if __name__ == "__main__":
    try:
        main()
    except SystemExit:
        pass
    except:
        traceback.print_exc()
        pygame.quit()
        input()

萌新:看起来真晕啊!

爱因斯坦的弟子:别急,我来讲一讲!

先导入这几个库,pygame就是专门制作游戏的库

sys库:该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数。它始终可用。

导入traceback是能更好地方便程序退出

pygame.init()就是初始化pygame


pygame.mixer.init() 也就是混音器初始化

bg_size = width, height = 480, 700  设定屏幕的大小,长和宽的值
screen = pygame.display.set_mode(bg_size)将我们设定的这个值带入这里,设定屏幕的大小
pygame.display.set_caption("飞机大战 -- Python Demo")设置游戏标题“飞机大战 -- Python Demo”

background = pygame.image.load("images/background.png").convert()添加背景图片

# 载入游戏音乐
pygame.mixer.music.load("sound/game_music.ogg")我们使用混合器载入音乐,在平时我们也可以使用频道来加载音乐,之后会提到
pygame.mixer.music.set_volume(0.2)
bullet_sound = pygame.mixer.Sound("sound/bullet.wav")wav是音乐格式的一种后缀名
bullet_sound.set_volume(0.2)
bomb_sound = pygame.mixer.Sound("sound/use_bomb.wav")pygame提供了两个加载音乐文件的方法 pygame.mixer.Sound,主要加载ogg和wav音频文件。 pygame.mixer.music,主要加载mp3音频文件。
bomb_sound.set_volume(0.2)
supply_sound = pygame.mixer.Sound("sound/supply.wav")
supply_sound.set_volume(0.2)
get_bomb_sound = pygame.mixer.Sound("sound/get_bomb.wav")
get_bomb_sound.set_volume(0.2)
get_bullet_sound = pygame.mixer.Sound("sound/get_bullet.wav")
get_bullet_sound.set_volume(0.2)
upgrade_sound = pygame.mixer.Sound("sound/upgrade.wav")
upgrade_sound.set_volume(0.2)
enemy3_fly_sound = pygame.mixer.Sound("sound/enemy3_flying.wav")
enemy3_fly_sound.set_volume(0.2)
enemy1_down_sound = pygame.mixer.Sound("sound/enemy1_down.wav")
enemy1_down_sound.set_volume(0.2)
enemy2_down_sound = pygame.mixer.Sound("sound/enemy2_down.wav")
enemy2_down_sound.set_volume(0.2)
enemy3_down_sound = pygame.mixer.Sound("sound/enemy3_down.wav")
enemy3_down_sound.set_volume(0.5)
me_down_sound = pygame.mixer.Sound("sound/me_down.wav")
me_down_sound.set_volume(0.2)

def main():##这里缩进不方便,看上面的代码。定义main
pygame.mixer.music.play(-1)用混合器play(-1),见上文

clock = pygame.time.Clock()启用计时器

running = True当奔跑状态时成功时

while running: 当奔跑时
for event in pygame.event.get(): 用侦测鼠标的方法
if event.type == QUIT:可以侦测到鼠标、键盘的操作事件(可以是多个事件)
pygame.quit()确定对事件的反馈,QUIT代表关闭窗口
sys.exit()直接退出主循环。结束所有进程

screen.blit(background, (0, 0))绘制到屏幕

pygame.display.flip()更新整个显示的内容

clock.tick(60)时间60毫秒

if __name__ == "__main__":这通常是一个模拟的程序入口
try:尝试
main()main是程序的主入口,代码是从住方法上开始执行的。写法是固定的。定义一个类中使用。如果一个类需要独立运行的时候,就需要main方法。

except SystemExit:除了系统exit之外

pass
except:除了
traceback.print_exc()print_exc()则直接给打印出来,还可以接受file参数直接写入到一个文件。
pygame.quit()
input()

补充:

try:

     do something

except:

      handleexcept

 

2019-08-21T18:57:41 点赞:0

【诚信之约 】scratch作品搬运注意事项! 中回复

怎么搬运

2019-08-22T19:02:05 点赞:0

c++萌新教程暂时停更通知 中回复

……

2019-08-23T12:29:55 点赞:0

【电阻の小铺】免费抠图!(实际是抢生意刷存在) 中回复

哈哈,我也……会

2019-08-27T18:29:49 点赞:0

CJW老年喵工作室申请(已同意,重发一遍) 中回复

由于个别人说本人不是CJW成员,本人在这里重发一遍

2019-08-27T18:34:59 点赞:0

【首届青少年故宫宫廷创意编程大赛】我在故宫玩编程正式开赛!! 中回复

代本人回答下:可以用编程语言创作吗

2019-09-06T19:19:23 点赞:0

【首届青少年故宫宫廷创意编程大赛】我在故宫玩编程正式开赛!! 中回复

不过需要素材

2019-09-06T19:19:32 点赞:0

【首届青少年故宫宫廷创意编程大赛】我在故宫玩编程正式开赛!! 中回复

我用pygame

2019-09-06T19:19:41 点赞:0

【8月优秀工作室】我在思考一个喵进来的标题 中回复

。为什么只有前四名

2019-09-06T19:22:16 点赞:0

【8月优秀工作室】我在思考一个喵进来的标题 中回复

我们是多语言

2019-09-06T19:22:23 点赞:0

【8月优秀工作室】我在思考一个喵进来的标题 中回复

我就说猴大大什么意思啊,人家为了项目,抓紧时间写作业,还得保证质量,六点整从学校飞奔回家,加速学习,5G速度,结果……

2019-09-06T22:37:53 点赞:4

【闲聊】认为自己是大佬的举个手 中回复

...

 

2019-09-07T08:11:31 点赞:0

【闲聊】认为自己是大佬的举个手 中回复

3.喵9793238462喵33832795028841971

2019-09-07T08:11:51 点赞:0

【无聊灌水】你觉得编程猫的默认头像哪个最漂亮? 中回复

我的头像

2019-09-08T07:27:48 点赞:0

谁想要免费建网站的教程?这个帖子满500回复就考虑发布 ! 中回复

不需要emotion_星能猫_hi

2019-09-13T20:17:54 点赞:0

【0成本建网站】【第一期】注册账号 中回复

。。。

2019-09-15T08:08:07 点赞:0

【少院士讲堂】来自大佬们的干货大礼包 请查收! 中回复

非少院士可以  给你们    干点啥   前提是  我没有参加过任何计算机比赛,,,童创未来我妈不让参加emotion_编程猫_搓头,家长那个不支持,你说我学的各种语言好像都白费了

2019-09-15T08:58:25 点赞:1

大家帮忙点赞哦 中回复

快一点哈

2019-09-16T06:29:49 点赞:0