宇宙物演进程——外星人去哪了游戏代码(Python实现)(1)

这篇具有很好参考价值的文章主要介绍了宇宙物演进程——外星人去哪了游戏代码(Python实现)(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

import os

import sys

import cfg

import random

import pygame

from modules import *

#开始游戏

def startGame(screen):

clock = pygame.time.Clock()

加载字体

font = pygame.font.SysFont(‘arial’, 18)

if not os.path.isfile(‘score’):

f = open(‘score’, ‘w’)

f.write(‘0’)

f.close()

with open(‘score’, ‘r’) as f:

highest_score = int(f.read().strip())

敌方

enemies_group = pygame.sprite.Group()

for i in range(55):

if i < 11:

enemy = enemySprite(‘small’, i, cfg.WHITE, cfg.WHITE)

elif i < 33:

enemy = enemySprite(‘medium’, i, cfg.WHITE, cfg.WHITE)

else:

enemy = enemySprite(‘large’, i, cfg.WHITE, cfg.WHITE)

enemy.rect.x = 85 + (i % 11) * 50

enemy.rect.y = 120 + (i // 11) * 45

enemies_group.add(enemy)

boomed_enemies_group = pygame.sprite.Group()

en_bullets_group = pygame.sprite.Group()

ufo = ufoSprite(color=cfg.RED)

#====我方=

myaircraft = aircraftSprite(color=cfg.GREEN, bullet_color=cfg.WHITE)

my_bullets_group = pygame.sprite.Group()

#======用于控制敌方位置更新=

#=移动一行=

enemy_move_count = 24

enemy_move_interval = 24

enemy_move_flag = False

#改变移动方向(改变方向的同时集体下降一次)=

enemy_change_direction_count = 0

enemy_change_direction_interval = 60

enemy_need_down = False

enemy_move_right = True

enemy_need_move_row = 6

enemy_max_row = 5

#=用于控制敌方发射子弹=

enemy_shot_interval = 100

enemy_shot_count = 0

enemy_shot_flag = False

#=游戏进行中=

running = True

is_win = False

#=主循环======

while running:

screen.fill(cfg.BLACK)

for event in pygame.event.get():

#=点右上角的X或者按Esc键退出游戏===

if event.type == pygame.QUIT:

pygame.quit()

sys.exit()

if event.type == pygame.KEYDOWN:

if event.key == pygame.K_ESCAPE:

pygame.quit()

sys.exit()

#=射击=====

if event.type == pygame.MOUSEBUTTONDOWN:

my_bullet = myaircraft.shot()

if my_bullet:

my_bullets_group.add(my_bullet)

#我方子弹与敌方/UFO碰撞检测=========

for enemy in enemies_group:

if pygame.sprite.spritecollide(enemy, my_bullets_group, True, None):

boomed_enemies_group.add(enemy)

enemies_group.remove(enemy)

myaircraft.score += enemy.reward

if pygame.sprite.spritecollide(ufo, my_bullets_group, True, None):

ufo.is_dead = True

myaircraft.score += ufo.reward

#更新并画敌方==

#敌方子弹=

enemy_shot_count += 1

if enemy_shot_count > enemy_shot_interval:

enemy_shot_flag = True

enemies_survive_list = [enemy.number for enemy in enemies_group]

shot_number = random.choice(enemies_survive_list)

enemy_shot_count = 0

#敌方移动======

enemy_move_count += 1

if enemy_move_count > enemy_move_interval:

enemy_move_count = 0

enemy_move_flag = True

enemy_need_move_row -= 1

if enemy_need_move_row == 0:

enemy_need_move_row = enemy_max_row

enemy_change_direction_count += 1

if enemy_change_direction_count > enemy_change_direction_interval:

enemy_change_direction_count = 1

enemy_move_right = not enemy_move_right

enemy_need_down = True

#====每次下降提高移动和射击速度=

enemy_move_interval = max(15, enemy_move_interval-3)

enemy_shot_interval = max(50, enemy_move_interval-10)

#=遍历更新==========

for enemy in enemies_group:

if enemy_shot_flag:

if enemy.number == shot_number:

en_bullet = enemy.shot()

en_bullets_group.add(en_bullet)

if enemy_move_flag:

if enemy.number in range((enemy_need_move_row-1)11, enemy_need_move_row11):

if enemy_move_right:

enemy.update(‘right’, cfg.SCREENSIZE[1])

else:

enemy.update(‘left’, cfg.SCREENSIZE[1])

else:

enemy.update(None, cfg.SCREENSIZE[1])

if enemy_need_down:

if enemy.update(‘down’, cfg.SCREENSIZE[1]):

running = False

is_win = False

enemy.change_count -= 1

enemy.draw(screen)

enemy_move_flag = False

enemy_need_down = False

enemy_shot_flag = False

#==敌方爆炸特效=

for boomed_enemy in boomed_enemies_group:

if boomed_enemy.boom(screen):

boomed_enemies_group.remove(boomed_enemy)

del boomed_enemy

#==敌方子弹与我方飞船碰撞检测=

if not myaircraft.one_dead:

if pygame.sprite.spritecollide(myaircraft, en_bullets_group, True, None):

myaircraft.one_dead = True

if myaircraft.one_dead:

if myaircraft.boom(screen):

myaircraft.resetBoom()

myaircraft.num_life -= 1

if myaircraft.num_life < 1:

running = False

is_win = False

else:

#=更新飞船======

myaircraft.update(cfg.SCREENSIZE[0])

#画飞船=

myaircraft.draw(screen)

if (not ufo.has_boomed) and (ufo.is_dead):

if ufo.boom(screen):

ufo.has_boomed = True

else:

#=更新UFO=

ufo.update(cfg.SCREENSIZE[0])

#=画UFO=

ufo.draw(screen)

#=画我方飞船子弹=

for bullet in my_bullets_group:

if bullet.update():

my_bullets_group.remove(bullet)

del bullet

else:

bullet.draw(screen)

#=画敌方子弹=

for bullet in en_bullets_group:

if bullet.update(cfg.SCREENSIZE[1]):

en_bullets_group.remove(bullet)

del bullet

else:

bullet.draw(screen)

if myaircraft.score > highest_score:

highest_score = myaircraft.score

–得分每增加2000我方飞船增加一条生命

if (myaircraft.score % 2000 == 0) and (myaircraft.score > 0) and (myaircraft.score != myaircraft.old_score):

myaircraft.old_score = myaircraft.score

myaircraft.num_life = min(myaircraft.num_life + 1, myaircraft.max_num_life)

–敌人都死光了的话就胜利了

if len(enemies_group) < 1:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

宇宙物演进程——外星人去哪了游戏代码(Python实现)(1),程序员,python,游戏,pygame

宇宙物演进程——外星人去哪了游戏代码(Python实现)(1),程序员,python,游戏,pygame

宇宙物演进程——外星人去哪了游戏代码(Python实现)(1),程序员,python,游戏,pygame

宇宙物演进程——外星人去哪了游戏代码(Python实现)(1),程序员,python,游戏,pygame

宇宙物演进程——外星人去哪了游戏代码(Python实现)(1),程序员,python,游戏,pygame

宇宙物演进程——外星人去哪了游戏代码(Python实现)(1),程序员,python,游戏,pygame

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)文章来源地址https://www.toymoban.com/news/detail-858884.html

713215681382)]

宇宙物演进程——外星人去哪了游戏代码(Python实现)(1),程序员,python,游戏,pygame

宇宙物演进程——外星人去哪了游戏代码(Python实现)(1),程序员,python,游戏,pygame

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

宇宙物演进程——外星人去哪了游戏代码(Python实现)(1),程序员,python,游戏,pygame

到了这里,关于宇宙物演进程——外星人去哪了游戏代码(Python实现)(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 实践——外星人入侵小游戏(上)

    先查询python路径,然后在终端输入: 通过pip安装pygame: 新建一个python文档: 没报错就说明安装成功 注意: 名称不要叫pygame.py,他会覆盖真正的pygame pygame 开发游戏 sys 退出游戏 .get()检测事件 .display.flip() (flip快速翻动)随着操作改变,不断更新屏幕,以显示元素的新位置。

    2024年01月22日
    浏览(36)
  • python项目分享 - python外星人入侵小游戏

    🔥 Hi,各位同学好呀,这里是L学长! 🥇今天向大家分享一个今年(2022)最新完成的毕业设计项目作品 外星人入侵小游戏设计与实现 🥇 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分) 难度系数:3分 工作量:3分 创新点:4分 项目获取: https://gitee.com/sinonfin/s

    2024年02月03日
    浏览(39)
  • python毕设分享 python外星人入侵小游戏

    🔥 Hi,各位同学好呀,这里是L学长! 🥇今天向大家分享一个今年(2022)最新完成的毕业设计项目作品 外星人入侵小游戏设计与实现 🥇 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分) 难度系数:3分 工作量:3分 创新点:4分 项目获取: https://gitee.com/sinonfin/s

    2024年02月04日
    浏览(38)
  • python项目分享 外星人入侵小游戏设计与实现 (源码)

    🔥 Hi,各位同学好呀,这里是L学长! 🥇今天向大家分享一个今年(2022)最新完成的毕业设计项目作品 外星人入侵小游戏设计与实现 🥇 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分) 难度系数:3分 工作量:3分 创新点:4分 项目获取: https://gitee.com/sinonfin/s

    2024年01月18日
    浏览(43)
  • python毕设分享 外星人入侵小游戏设计与实现 (源码)

    🔥 Hi,各位同学好呀,这里是L学长! 🥇今天向大家分享一个今年(2022)最新完成的毕业设计项目作品 外星人入侵小游戏设计与实现 🥇 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分) 难度系数:3分 工作量:3分 创新点:4分 项目获取: https://gitee.com/sinonfin/s

    2024年02月05日
    浏览(43)
  • python实战【外星人入侵】游戏并改编为【梅西vsC罗】(球迷整活)——搭建环境、源码、读取最高分及生成可执行的.exe文件

    本篇文章将介绍python游戏【外星人入侵】代码的 环境安装 , 具体介绍如何将游戏的最高分写入文件并在下次启动时读取、生成 .exe可执行文件 、如何 趣味性的改变游戏 。游戏相关的所有源码已经在文章 游戏实现———————游戏源码 部分。 🎮游戏介绍: 玩家控制着一

    2024年02月11日
    浏览(35)
  • pygame外星人入侵

    ✅作者简介:大家好我是hacker707,大家可以叫我hacker,新星计划第三季python赛道Top1🥇🥇🥇 📃个人主页:hacker707的csdn博客 🔥系列专栏:python 💬推荐一款模拟面试、刷题神器👉点击跳转进入网站 最近在看一本《python:从入门到实践》,这本书是我看的第一本python书籍,也

    2024年02月03日
    浏览(38)
  • 外星人鼠标如何设置宏定义

    适用于Alienware Wired/Wireless Gaming Mouse | AW610M的支持 | 驱动程序和下载 | Dell 中国 下载应用程序 下载到默认位置 安装程序   与正常安装程序一样,   安装第二个程序俗称cmcc 我英文不好,知道这个干嘛的 打开安装程序 第一次要点上面FX按钮    点击宏  点击+ 创建自己的宏,

    2024年02月16日
    浏览(32)
  • 外星人笔记本键盘USB协议逆向

    前言 我朋友一台 dell g16 购买时直接安装了linux系统,但是linux上没有官方的键盘控制中心,所以无法控制键盘灯光,于是我就想着能不能逆向一下键盘的协议,然后自己写一个控制键盘灯光的程序。我自己的外星人笔记本是m16,所以我就先从m16开始逆向。 USB协议分析 通过

    2024年02月03日
    浏览(44)
  • Python Project- Alien_invasion(外星人入侵)

    目录 武装飞船 开始游戏项目 创建pygame窗口以及相应用户输入   初始化程序   创建surface对象   事件监听   游戏循环 设置背景色 创建设置类 添加飞船图像 创建ship类 pygame.image   get_rect( )   surface.blit( ) 在屏幕上绘制飞船 重构:模块game_functions 函数 check_events( ) 函数 update_

    2024年02月09日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包