相关文件

想学Python的小伙伴可以关注小编的公众号【Python日志】
有很多的资源可以白嫖的哈,不定时会更新一下Python的小知识的哈!!
需要源码的小伙伴可以在公众号回复星球大战
Python源码、问题解答学习交流群:773162165

开发环境

Python版本:3.6.7
相关模块:
pygame
random
以及一些python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

效果展示

开始界面

游戏界面

代码实现

模块导入

import pygame
import random
from os import path

精灵类

class Player(pygame.sprite.Sprite):                                  #产生一个精灵def __init__(self):pygame.sprite.Sprite.__init__(self)self.image = pygame.transform.flip(player_img,False,True) #第一个参数是左右反转,第二个是上下翻转self.image = pygame.transform.scale(self.image,(53,40))     #缩放self.image.set_colorkey(BLACK)                           #用color_key方法除去方框周边的黑色部分self.rect = self.image.get_rect()self.radius = 20#pygame.draw.circle(self.image,(255,0,0),self.rect.center,self.radius)self.rect.centerx = WIDTH/2self.rect.bottom = HIGHTself.hp = 100self.lives = 3self.score = 0self.hidden = Falseself.hide_time = 0self.is_firing_missile = Falseself.start_missile_time = 0self.last_missile_time = 0def update(self):keystate = pygame.key.get_pressed()if keystate[pygame.K_LEFT]:self.rect.x -= 8if keystate[pygame.K_RIGHT]:self.rect.x += 8if keystate[pygame.K_UP]:self.rect.y -= 8if keystate[pygame.K_DOWN]:self.rect.y += 8if self.rect.right > WIDTH:self.rect.right = WIDTHif self.rect.left < 0:self.rect.left = 0if self.rect.bottom >HIGHT:self.rect.bottom = HIGHTnow = pygame.time.get_ticks()if self.hidden and now - self.hide_time>1000:            self.hidden = Falseself.rect.bottom = HIGHTself.rect.centerx = WIDTH/2if self.is_firing_missile:if now - self.start_missile_time <= MISSILE_LIFETIME:if now - self.last_missile_time >= MISIILE_INTERVAL:missile = Missile(self.rect.center)missiles.add(missile)self.last_missile_time = nowelse:self.is_firing_missile = Falsedef shoot(self):bullet = Bullet(self.rect.centerx,self.rect.centery)bullets.add(bullet)shoot_sound.play()def hide(self):                                     #出生后无敌时间self.hidden = Trueself.rect.y = -200self.hide_time = pygame.time.get_ticks()def fire_missile(self):self.is_firing_missile = Trueself.start_missile_time = pygame.time.get_ticks()

岩石类

 class Enemy(pygame.sprite.Sprite):"""docstring for Enemy"""def __init__(self):pygame.sprite.Sprite.__init__(self)img_width = random.randint(20,120)img_height = int(img_width*70/72)self.image = pygame.transform.scale(enemy_img,(img_width,img_height))self.image.set_colorkey(BLACK)self.image_origin = self.image.copy()self.rect = self.image.get_rect()self.radius = int(img_width/2)#pygame.draw.circle(self.image,(255,0,0),self.rect.center,self.radius)self.rect.x = random.randint(0,WIDTH-self.rect.w)self.rect.bottom = 0self.vx = random.randint(-2,2)self.vy = random.randint(2,10)self.last_time = 0self.rotate_speed = random.randint(-5,5)self.rotate_angle = 0def update(self):self.rect.x += self.vxself.rect.y += self.vyself.rotate()# if self.rect.left>WIDTH:#    self.kill()# if self.rect.right<0:#  self.kill()def rotate(self):                                                        #制作岩石的旋转now = pygame.time.get_ticks()if now - self.last_time>30:self.rotate_angle = (self.rotate_angle + self.rotate_speed) % 360self.image = pygame.transform.rotate(self.image_origin,self.rotate_angle)old_center = self.rect.centerself.rect = self.image.get_rect()self.rect.center = old_center

详细代码的话可以找小编领取的哟
公众号:Python日志
需要源码的小伙伴可以在公众号回复星球大战
Python源码、问题解答学习交流群:773162165

【Python游戏】Python实现一个星球大战的小游戏 | 附带源码相关推荐

  1. python写一个游戏多少代码-使用50行Python代码从零开始实现一个AI平衡小游戏

    集智导读: 本文会为大家展示机器学习专家 Mike Shi 如何用 50 行 Python 代码创建一个 AI,使用增强学习技术,玩耍一个保持杆子平衡的小游戏.所用环境为标准的 OpenAI Gym, ...

  2. 50行python游戏代码_使用50行Python代码从零开始实现一个AI平衡小游戏

    使用50行Python代码从零开始实现一个AI平衡小游戏 发布时间:2020-10-23 09:26:14 来源:脚本之家 阅读:74 集智导读: 本文会为大家展示机器学习专家 Mike Shi 如何 ...

  3. python画圣诞帽_使用Python给头像加上圣诞帽或圣诞老人小图标附源码

    随着圣诞的到来,想给给自己的头像加上一顶圣诞帽.如果不是头像,就加一个圣诞老人陪伴. 用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章:https://zhuanlan.zhi ...

  4. python画圣诞老人_使用Python给头像加上圣诞帽或圣诞老人小图标附源码

    随着圣诞的到来,想给给自己的头像加上一顶圣诞帽.如果不是头像,就加一个圣诞老人陪伴. 用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章:https://zhuanlan.zhi ...

  5. 用Python写一个双人对战足球小游戏,堪比国足的技术【附带源码】

    开发环境 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理介绍 这是一个 ...

  6. python50行小游戏_使用50行Python代码从零开始实现一个AI平衡小游戏

    集智导读: 本文会为大家展示机器学习专家 Mike Shi 如何用 50 行 Python 代码创建一个 AI,使用增强学习技术,玩耍一个保持杆子平衡的小游戏.所用环境为标准的 OpenAI Gym, ...

  7. 用python简单的写一个剪刀石头布的小游戏

    N=10 win=0 gg=0 same=0 no=0 for x in range(0,N,1):print("-"*20)print("石头剪刀布小游戏\n 0代表石 ...

  8. 实战 | 用Python和MediaPipe搭建一个嗜睡检测系统 (详细步骤 + 源码)

    导读 本文将使用Python和MediaPipe搭建一个嗜睡检测系统 (包含详细步骤 + 源码). 背景介绍 疲劳驾驶的危害不堪设想,据了解,21%的交通事故都因此而生,尤其是高速路上,大多数车辆都是 ...

  9. Python爬虫项目--爬取某宝男装信息 附带源码

    本次爬取用到的知识点有: 1. selenium 2. pymysql 3  pyquery 正文 1. 分析目标网站 1. 打开某宝首页, 输入"男装"后点击"搜索&q ...

最新文章

  1. Django web框架学习笔记
  2. 黄道十二宫杀手密码51年后被破解,来自两位程序员与数学家通力合作
  3. 设计模式解析学习(一)
  4. error: src refspec master does not match any. 错误处理办法
  5. Java面试题:JDK不同版本处理IO流异常的标准代码
  6. 7.3.8.1 - 并发多线程 死锁和递归锁 - 信号量
  7. spring boot入门学习---热部署
  8. laravel报错:MassAssignmentException
  9. [MSN谈话]专注、口碑和猎头
  10. round()函数的使用方法
  11. 如何做好Windows2003服务器安全策略
  12. 2017年大数据会是广告市场最后一根救命草吗?
  13. 小米5S_2015711_官方线刷包_救砖包_解账户锁
  14. 本地ASP.NET开发页面使用AzureAD(AAD)验证登录
  15. zzulioj 1055: 兔子繁殖问题
  16. 底量超顶量超级大黑马指标源码_求通达信顶底趋势指标源码
  17. 实习日志二--JDBC
  18. 微信程序开发之微信接入(详细开发)
  19. 【每天学点管理】——员工激励-参与策略
  20. UWB TDOA一维定位解算

热门文章

  1. 小爱同学+blinker+esp8266实现千里点灯
  2. 转:一个有钱人的家庭网络
  3. 编程练习:复数四则运算
  4. ssh远程登录协议和tcp wappers
  5. 搜索引擎蜘蛛爬虫 User Agent 一览(便于采集)
  6. 当初选了网络安全行业的人,后来怎么样了?
  7. 姓名格式处理,Last Name, First Name
  8. 真正认识到自己的身躯
  9. 使用do-while语句
  10. 微信中直接下载app的解决方法,如何解决微信中无法直接下载app的问题