资源简介
基于Python、pygame的微信打飞机小游戏,由于这个是我自己写的,象征性地要1个资源分。另外还上传了网友贡献的微信打飞机小游戏源码,如果不想花积分的话可以去下那个。
代码片段和文件信息
# -*- coding: utf-8 -*-
import pygame
from myGameRole import *
# 导入按键的检测
from pygame.locals import *
import time
import random
if __name__ == ‘__main__‘:
# pygame初始化
pygame.init()
# 载入效果音乐
bullet_sound = pygame.mixer.Sound(‘resources/sound/bullet.wav‘)
enemy_down_sound = pygame.mixer.Sound(‘resources/sound/enemy1_down.wav‘)
game_over_sound = pygame.mixer.Sound(‘resources/sound/game_over.wav‘)
bullet_sound.set_volume(0.3)
enemy_down_sound.set_volume(0.3)
game_over_sound.set_volume(0.3)
# 载入游戏音乐并循环播放
pygame.mixer.music.load(‘resources/sound/game_music.wav‘)
pygame.mixer.music.play(-1 0)
pygame.mixer.music.set_volume(0.25)
# 创建窗口
screen = pygame.display.set_mode((SCREEN_WIDTH SCREEN_HEIGHT))
# 读出背景图片
background = pygame.image.load(‘resources/image/background.png‘).convert()
# 创建对象
playerPlane = Player(screen)
# 敌机列表
enemyList = []
# 敌机产生频率
enemy_frequency = 0
running_control = True
gameOverFlag = False
# 1.显示背景
while running_control:
screen.blit(background(0 0))
# 产生敌方飞机
if enemy_frequency % 50 == 0:
num = random.randint(0 SCREEN_WIDTH - 51)
enemy = Enemy(screen num)
enemyList.append(enemy)
enemy_frequency += 1
if enemy_frequency >= 100:
enemy_frequency = 0
# 判断按键
for event in pygame.event.get():
if event.type == QUIT:
print(‘exit‘)
exit()
elif event.type == KEYDOWN:
if event.key == K_a or event.key == K_LEFT:
# print(‘left‘)
playerPlane.keyHandle(‘left‘)
elif event.key == K_d or event.key == K_RIGHT:
# print(‘right‘)
playerPlane.keyHandle(‘right‘)
elif event.key == K_w or event.key == K_UP:
# print(‘up‘)
playerPlane.keyHandle(‘up‘)
elif event.key == K_s or event.key == K_DOWN:
# print(‘down‘)
playerPlane.keyHandle(‘down‘)
elif event.key == K_SPACE:
# print(‘space‘)
playerPlane.keyHandle(‘space‘)
bullet_sound.play()
# print(len(playerPlane.bulletList))
# 这里只是用于检测敌机的状态,如果出界就直接移除,如果被子弹打中就执行爆炸效果随后与子弹一起移除
# 还有一点,图片刷新不能与此同时进行,会有一顿一顿的感觉,所以只在执行爆炸效果时进行刷新,最后统一刷新
for enemy in enemyList:
enemy.move()
if enemy.checkOut():
enemyList.remove(enemy)
continue
x1y1w1h1 = enemy.getPos()
for bullet in playerPlane.bulletList:
x2y2w2h2 = bullet.getPos()
if (x2 + w2 // 2) >= x1 and (x2 + w2 // 2) <= (x1 + w1):
if y2 <= (y1 + h1):
enemy.crash()
playerPlane.bulletList.remove(bullet)
enemyList.remove(enemy)
enemy.draw()
enemy_down_sound.play()
break
x3y3w3h3 = playerPlane.getPos()
if (x1 + w1 // 2) >= x3 and (x1 + w1 // 2) <= (x3 + w3):
if y3 <= (y1 + h1):
# playerPlane.crash()
# # 更新飞机图片
# playerPlane.draw()
# running_control = False
# break
gameOverFlag = True
for enemy in enemyList:
enemy.draw()
# 子弹移动,更新图片
for bullet in playerPlane.bulletList:
bullet.move()
bullet.draw()
# 清楚发射到顶部的子弹
playerPlane.bulletClear()
if gameOverFlag == True:
playerPlane.cra
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-06-19 22:28 MyPythonGame\
文件 3879 2017-06-19 07:10 MyPythonGame\myGame.py
文件 3583 2017-06-19 05:59 MyPythonGame\myGameRole.py
文件 6346 2017-06-19 06:05 MyPythonGame\myGameRole.pyc
目录 0 2017-06-19 22:28 MyPythonGame\resources\
目录 0 2017-06-19 22:28 MyPythonGame\resources\image\
文件 36620 2017-06-18 21:54 MyPythonGame\resources\image\background.png
文件 5570 2017-06-18 21:54 MyPythonGame\resources\image\bomb.png
文件 8944 2017-06-18 21:54 MyPythonGame\resources\image\btn_finish.png
文件 486 2017-06-18 21:54 MyPythonGame\resources\image\bullet1.png
文件 485 2017-06-18 21:54 MyPythonGame\resources\image\bullet2.png
文件 2968 2017-06-18 21:54 MyPythonGame\resources\image\enemy1.png
文件 3365 2017-06-18 21:54 MyPythonGame\resources\image\enemy1_down1.png
文件 3815 2017-06-18 21:54 MyPythonGame\resources\image\enemy1_down2.png
文件 5239 2017-06-18 21:54 MyPythonGame\resources\image\enemy1_down3.png
文件 1723 2017-06-18 21:54 MyPythonGame\resources\image\enemy1_down4.png
文件 8112 2017-06-18 21:54 MyPythonGame\resources\image\enemy2.png
文件 10408 2017-06-18 21:54 MyPythonGame\resources\image\enemy2_down1.png
文件 11562 2017-06-18 21:54 MyPythonGame\resources\image\enemy2_down2.png
文件 13310 2017-06-18 21:54 MyPythonGame\resources\image\enemy2_down3.png
文件 3356 2017-06-18 21:54 MyPythonGame\resources\image\enemy2_down4.png
文件 9126 2017-06-18 21:54 MyPythonGame\resources\image\enemy2_hit.png
文件 47800 2017-06-18 21:54 MyPythonGame\resources\image\enemy3_down1.png
文件 53349 2017-06-18 21:54 MyPythonGame\resources\image\enemy3_down2.png
文件 60269 2017-06-18 21:54 MyPythonGame\resources\image\enemy3_down3.png
文件 66517 2017-06-18 21:54 MyPythonGame\resources\image\enemy3_down4.png
文件 75014 2017-06-18 21:54 MyPythonGame\resources\image\enemy3_down5.png
文件 8722 2017-06-18 21:54 MyPythonGame\resources\image\enemy3_down6.png
文件 45497 2017-06-18 21:54 MyPythonGame\resources\image\enemy3_hit.png
文件 42482 2017-06-18 21:54 MyPythonGame\resources\image\enemy3_n1.png
文件 42572 2017-06-18 21:54 MyPythonGame\resources\image\enemy3_n2.png
............此处省略47个文件信息
相关资源
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
- python3.5.2.chm官方文档
评论
共有 条评论