当前位置: 首页 > article >正文

python炸鱼船

import pygame, random  # 加载库
from pygame.locals import *
pygame.init()
pygame.display.set_caption("炸渔船")
canvas = pygame.display.set_mode((700, 500))
bg=pygame.image.load("bg.png")
bg=pygame.transform.scale(bg,(700,500))class Hero(pygame.sprite.Sprite):def __init__(self):pygame.sprite.Sprite.__init__(self)#加载图片,修改大小,获取矩形,设置中心位置self.image=[pygame.image.load("hero1.png"),pygame.image.load("hero2.png")]# 列表的创建,列表元素的调用,列表的索引,列表切片self.image=[pygame.transform.scale(self.image[0],(100,100)),pygame.transform.scale(self.image[1],(100,100))]self.rect=self.image[0].get_rect()self.rect.center=350,135class Bullet(pygame.sprite.Sprite):def __init__(self):pygame.sprite.Sprite.__init__(self)self.image=pygame.image.load("bullet.png")self.image=pygame.transform.scale(self.image,(30,100))self.rect=self.image.get_rect()self.rect.center=100,100self.speed=[0,5]def xianshi(self):canvas.blit(self.image,self.rect)
danjia=pygame.sprite.Group()def handleEvent():  # 点叉叉关闭游戏界面for event in pygame.event.get():if event.type == QUIT:quit()
life=0
score=0
nnn=0
yuchuan=Hero()
while True:canvas.fill((255, 255, 255))canvas.blit(bg,(0,0))font=pygame.font.SysFont("kaiti",20)text=font.render("当前生命值:"+str(life)+"分数:"+str(score),True,(255,0,0))canvas.blit(text,(0,0))canvas.blit(yuchuan.image[nnn],yuchuan.rect)kkk=pygame.key.get_pressed()if kkk[K_LEFT]:nnn=1yuchuan.rect.left-=5if kkk[K_RIGHT]:nnn=0yuchuan.rect.left+=5if kkk[K_SPACE]:bullet=Bullet()bullet.rect.center=yuchuan.rect.left+50,yuchuan.rect.top+150danjia.add(bullet)for d in danjia:d.xianshi()d.rect=d.rect.move(d.speed)# d.rect.center=yuchuan.rect.center#类属性的调用handleEvent()pygame.display.update()import pygame
import random
import time# 初始化 Pygame
pygame.init()# 游戏窗口设置
WIDTH, HEIGHT = 640, 480
window = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("贪吃蛇")# 颜色定义
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)# 蛇与食物设置
SNAKE_SIZE = 20
snake = [[100, 100], [80, 100], [60, 100]]  # 初始蛇身坐标
food = [random.randrange(10, (WIDTH // SNAKE_SIZE)) * SNAKE_SIZE,random.randrange(10, (HEIGHT // SNAKE_SIZE)) * SNAKE_SIZE]
direction = "RIGHT"  # 初始方向
score = 10# 游戏主循环
clock = pygame.time.Clock()
running = True
game_over = Falsewhile running:clock.tick(5)  # 控制游戏速度# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.KEYDOWN:if event.key == pygame.K_UP and direction != "DOWN":direction = "UP"elif event.key == pygame.K_DOWN and direction != "UP":direction = "DOWN"elif event.key == pygame.K_LEFT and direction != "RIGHT":direction = "LEFT"elif event.key == pygame.K_RIGHT and direction != "LEFT":direction = "RIGHT"if not game_over:# 移动蛇头head = snake[0].copy()if direction == "UP":head[1] -= SNAKE_SIZEelif direction == "DOWN":head[1] += SNAKE_SIZEelif direction == "LEFT":head[0] -= SNAKE_SIZEelif direction == "RIGHT":head[0] += SNAKE_SIZE# 检测碰撞if (head[0] < 0 or head[0] >= WIDTH orhead[1] < 0 or head[1] >= HEIGHT orhead in snake[1:]):game_over = Truesnake.insert(0, head)# 吃食物逻辑if head == food:score += 10food = [random.randrange(1, (WIDTH // SNAKE_SIZE)) * SNAKE_SIZE,random.randrange(1, (HEIGHT // SNAKE_SIZE)) * SNAKE_SIZE]else:snake.pop()# 绘制画面window.fill(BLACK)# 绘制蛇身for pos in snake:pygame.draw.rect(window, GREEN, pygame.Rect(pos[0], pos[1], SNAKE_SIZE, SNAKE_SIZE))# 绘制食物pygame.draw.rect(window, RED, pygame.Rect(food[0], food[1], SNAKE_SIZE, SNAKE_SIZE))# 显示分数font = pygame.font.Font(None, 36)text = font.render(f"Score: {score}", True, WHITE)window.blit(text, (10, 10))# 游戏结束显示if game_over:font = pygame.font.Font(None, 72)text = font.render("GAME OVER!", True, RED)window.blit(text, (WIDTH // 2 - 140, HEIGHT // 2 - 40))pygame.display.flip()pygame.quit()

相关文章:

python炸鱼船

import pygame, random # 加载库 from pygame.locals import * pygame.init() pygame.display.set_caption("炸渔船") canvas pygame.display.set_mode((700, 500)) bgpygame.image.load("bg.png") bgpygame.transform.scale(bg,(700,500))class Hero(py…...

使用AutoKeras2.0的AutoModel进行结构化数据回归预测

1、First of All: Read The Fucking Source Code import autokeras as ak import numpy as np from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error# 生成数据集 np.random.seed(42) x np.random.rand(1000, 10) # 生成1…...

好用但不常用的Git配置

参考文章 文章目录 tag标签分支新仓库默认分支推送 代码合并冲突处理默认diff算法 tag标签 默认是以字母顺序排序&#xff0c;这会导致一些问题&#xff0c;比如0.5.101排在0.5.1000之后。为了解决这个问题&#xff0c;我们可以把默认排序改为数值排序 git config --global t…...

ULVAC VWR-400M/ERH 真空蒸发器 Compact Vacuum Evaporator DEPOX (VWR-400M/ERH)

ULVAC VWR-400M/ERH 真空蒸发器 Compact Vacuum Evaporator DEPOX (VWR-400M/ERH)...

P1068 [NOIP 2009 普及组] 分数线划定

题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才&#xff0c;A 市对所有报名的选手进行了笔试&#xff0c;笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的 150% 划定&#xff0c;即如果计划录取 m 名志愿者&#xf…...

PPT连同备注页(演讲者模式)一块转为PDF

首先&#xff0c;进入创建PDF/XPS&#xff1a; 然后进入选项&#xff1a; 发布选项-发布内容里选备注页&#xff1a; 导出的原始结果是这样的&#xff1a; 这个时候裁剪一下&#xff0c;范围为所有页面&#xff1a; 最终结果&#xff1a; 如果导出不选“备注页”而是只勾选“包…...

第三十二天打卡

作业&#xff1a;参考pdpbox官方文档中的其他类&#xff0c;绘制相应的图&#xff0c;任选即可 1. 安装并导入库 确保安装与文档版本一致的 pdpbox&#xff08;此处以 0.3.0 为例&#xff09;&#xff1a; bash 复制 下载 pip install pdpbox0.3.0 导入所需库&#xff1a…...

项目三 - 任务8:实现词频统计功能

本项目旨在实现一个词频统计功能&#xff0c;通过读取文本文件并利用Java编程技巧处理和分析文本数据。首先&#xff0c;使用BufferedReader逐行读取文件内容&#xff0c;然后通过String.split(" ")方法将每行文本分割成单词数组。接下来&#xff0c;采用HashMap来存…...

MongoDB 快速整合 SpringBoot 示例

1.添加依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spr…...

2025.05.22-得物春招机考真题解析-第二题

&#x1f4cc; 点击直达笔试专栏 &#x1f449;《大厂笔试突围》 &#x1f4bb; 春秋招笔试突围在线OJ &#x1f449; 笔试突围OJ 02. 魔法书页重排 问题描述 A先生是一位魔法师&#xff0c;他有一本古老的魔法书&#xff0c;书中有 n n n 页&#xff0c;每页都刻有一个魔…...

ollama list模型列表获取 接口代码

ollama list模型列表获取 接口代码 curl http://localhost:11434/v1/modelscoding package hcx.ollama;/*** ClassName DockerOllamaList* Description TODO* Author dell* Date 2025/5/26 11:31* Version 1.0**/import java.io.BufferedReader; import java.io.InputStreamR…...

OPC Client第5讲(wxwidgets):初始界面的事件处理;按照配置文件初始化界面的内容

接上一讲&#xff0c;即实现下述界面的事件处理代码&#xff1b;并且按照配置文件初始化界面的内容&#xff08;三、&#xff09; 事件处理的基础知识&#xff0c;见下述链接五、 OPC Client第3讲&#xff08;wxwidgets&#xff09;&#xff1a;wxFormBuilder&#xff1b;基础…...

什么是BFC,如何触发BFC,BFC有什么特性?

理解 BFC指的是块级格式化上下文,处于BFC内部的盒子与外界互不影响 触发条件 position:absolute/fixed都会产生bfcdisplay:inline-block,table,flex等float:left/right 浮动也会产生bfchtml根元素也是bfc bfc的特性 属于同一个BFC下的盒子会垂直排列属于同一个BFC下的两个…...

python做题日记(9)

第二十一题 第二十一题是合并两个有序链表&#xff0c;合并后的链表仍然需要保持有序&#xff0c;因为在合并之前已经是两个有序链表&#xff0c;因此在合并时只需要遍历比较两个链表中的下一结点数值&#xff0c;将其中较小的一个结点添加到新的列表中。如果有任何一个链表已经…...

Leetcode 3557. Find Maximum Number of Non Intersecting Substrings

Leetcode 3557. Find Maximum Number of Non Intersecting Substrings 1. 解题思路2. 代码实现 题目链接&#xff1a;3557. Find Maximum Number of Non Intersecting Substrings 1. 解题思路 这一题就是一个比较直接的动态规划的题目&#xff0c;我们只需要考察每一个位是否…...

【C++进阶篇】初识哈希

哈希表深度剖析&#xff1a;原理、冲突解决与C容器实战 一. 哈希1.1 哈希概念1.2 哈希思想1.3 常见的哈希函数1.3.1 直接定址法1.3.2 除留余数法1.3.3 乘法散列法&#xff08;了解&#xff09;1.3.4 平方取中法&#xff08;了解&#xff09; 1.4 哈希冲突1.4.1 冲突原因1.4.2 解…...

Spring Boot——自动配置

目录 1.bean加载方式 1.1XML方式声明bean 1.2 xml 注解方式声明bean 1.3通过Configuration和Bean 1.4使用Import注解 1.5使用上下文对象在容器初始化完毕后注入bean 1.6使用ImportSelector接口 1.7实现ImportBeanDefinitionRegistrar接口 1.8bean加载方式&#xff08;…...

免费轻量便携截图 录屏 OCR 翻译四合一!提升办公效率

各位软件小达人们&#xff0c;今天来给大伙唠唠VeryCapture这款软件&#xff01; 先说说它的核心功能。这软件有个超厉害的多模态屏幕捕捉系统&#xff0c;它就像个全能小能手&#xff0c;把截图、录屏、OCR文字识别、翻译这些功能全集成在一起啦&#xff01;截图有6种模式&a…...

使用 Vuex 实现用户注册与登录功能

引言 在构建具有用户认证功能的应用时&#xff0c;Vuex 可以用来管理用户的登录状态和相关信息。以下是如何使用 Vuex 来实现用户注册与登录功能的概述。 &#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端…...

进程通信(管道,共享内存实现)

01. 进程通信简介 进程通信工具分为数据传输工具和共享内存两类。这里我们讨论进程通信工具(IPC)里面的管道、system V和共享内存。在理解阶层通信之间&#xff0c;我们先了解用户空间缓冲区和内核空间缓冲区两个概念。 1.1 用户空间缓冲区 存在于用户态的进程用户空间&#…...

电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测

电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测 目录 电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测预测效果基本描述程序设计参考资料 预测效果 基本描述 电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测 运行环境Matlab2023b及以上&#xff0c;锂电池剩余寿…...

快速上手SHELL脚本常用命令

一、设置主机名称 1.修改文件方式 重启后生效 2.命令修改 重启shell后生效 二、网卡管理nmcli 1.查看网卡 2.设置网卡 详细配置&#xff1a;快速上手Linux联网管理-CSDN博客 三、简单处理字符 1.打印连续数字 2.设置字体颜色 \033[颜色代号m 3.反向打印文件内容 tac&a…...

【无标题】前端如何实现分页?

前端如何实现分页&#xff1f; 以下是对代码的逐条总结与解释&#xff0c;按 HTML、JavaScript、CSS 顺序分模块列出&#xff0c;每条代码单独说明&#xff1a; 一、HTML 代码解释 1. 表格容器 html <table class"table table-bordered table-hover">作用&…...

【自然语言处理与大模型】大模型Agent四大的组件

大模型Agent是基于大型语言模型构建的智能体&#xff0c;它们能够模拟独立思考过程&#xff0c;灵活调用各类工具&#xff0c;逐步达成预设目标。这类智能体的设计旨在通过感知、思考与行动三者的紧密结合来完成复杂任务。下面将从大模型大脑&#xff08;LLM&#xff09;、规划…...

小巧高效的目录索引生成软件

软件介绍 本文介绍的软件名为Snap2html&#xff0c;是一款树形目录索引生成工具。 软件大小与便捷性 Snap2html这款软件已完成汉化&#xff0c;其体积仅170kb&#xff0c;小巧无比&#xff0c;且无需安装&#xff0c;可直接投入使用。 软件使用方法 该软件操作简便&#xf…...

云原生架构设计相关原则

文章目录 前言云原生架构概述云原生架构的核心原则一切皆服务原则自动化原则韧性和容错原则可观测性原则 云原生架构原则的实践意义 前言 大家好&#xff0c;我是沛哥儿。今天想和大家深入探讨一下云原生架构的相关原则。在如今数字化飞速发展的时代&#xff0c;云原生架构已经…...

android实现使用RecyclerView详细

显示页面代码&#xff1a;activity_category_inventory.xml代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android" xmlns:app"http://schemas.and…...

华为云Flexus+DeepSeek征文 | Flexus X实例助力 Dify-LLM 一键部署:性能跃升与成本优化的革新实践

引言 在AI大模型应用快速普及的背景下&#xff0c;企业对低门槛部署、高性能算力与成本可控的需求日益迫切。华为云推出的Flexus X实例&#xff0c;作为专为AI工作负载优化的新一代算力底座&#xff0c;通过1.6倍算力提升、关键业务6倍加速、综合降本30%等核心优势&#xff0c…...

曼昆经济学原理第九版目录

格里高利曼昆的《经济学原理》&#xff08;Principles of Economics&#xff09;通常分为34章&#xff08;第9版&#xff0c;2024年英文版&#xff09;&#xff0c;分为微观经济学&#xff08;第1-18章&#xff09;和宏观经济学&#xff08;第19-34章&#xff09;两部分 第一部…...

数据库blog7_MySql的下载与配置准备

&#x1f33f;MySql下载 &#x1f342;1.应用版本选择 选择社区版&#xff0c;免费适合初学者 相关链接下载页面下载界面介绍 &#x1f342;2.OS版本选择 根据自己的OS类型&#xff08;Windows/Linux&#xff08;CentOS/Ubuntu …&#xff09;/macOS&#xff09;选择对应版本…...