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

湖州长兴建设局网站网站排名掉了怎么办

湖州长兴建设局网站,网站排名掉了怎么办,百度排名点击器,沧州商城网站建设目录 1. 打砖块游戏 2. 初始化 Pygame 和设置屏幕 3. 定义游戏对象 3.1 定义玩家操作的paddle 3.2 定义球(Ball) 3.3 砖块(Bricks) 4. 游戏主循环 4.1 事件处理 4.2 板子移动 4.3 球移动和碰撞检测 4.4 绘制游戏对象 …

目录

1. 打砖块游戏

2. 初始化 Pygame 和设置屏幕

3. 定义游戏对象

3.1 定义玩家操作的paddle

3.2 定义球(Ball)

3.3 砖块(Bricks)

4. 游戏主循环

4.1 事件处理

4.2 板子移动

4.3 球移动和碰撞检测

4.4 绘制游戏对象

4.5 退出游戏

5. 完整代码


1. 打砖块游戏

打砖块(Breakout)是一个经典的街机游戏

玩家通过控制一个板子来反弹球,击碎屏幕上的砖块

下面是一个使用 pygame 实现的简单打砖块游戏的代码示例。

代码说明

  1. 板子:玩家通过左右箭头键控制板子的移动。

  2. :球会在屏幕上反弹,当球碰到板子、墙壁或砖块时会改变方向。

  3. 砖块:砖块被球击中后会消失。

  4. 游戏结束:当球掉出屏幕底部时,游戏结束。

运行游戏

将上述代码保存为一个 Python 文件(例如 breakout.py),然后运行它即可开始游戏。

2. 初始化 Pygame 和设置屏幕

import pygame
import random# 初始化pygame
pygame.init()# 屏幕尺寸
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600# 颜色
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
BLACK = (0, 0, 0)
COLORS = [RED, GREEN, BLUE]  # 砖块颜色列表# 创建屏幕
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("打砖块")

代码模块:

  • pygame.init():初始化 Pygame 库,这是使用 Pygame 的必要步骤。

  • SCREEN_WIDTH 和 SCREEN_HEIGHT:定义游戏窗口的宽度和高度。

  • 颜色常量:定义一些常用的颜色(如白色、红色、绿色等),方便后续使用。

  • pygame.display.set_mode():创建游戏窗口,大小为 SCREEN_WIDTH x SCREEN_HEIGHT

  • pygame.display.set_caption():设置窗口标题为“打砖块”。

3. 定义游戏对象

3.1 定义玩家操作的paddle

# 板子
paddle_width = 100
paddle_height = 20
paddle_x = (SCREEN_WIDTH - paddle_width) // 2
paddle_y = SCREEN_HEIGHT - 50
paddle_speed = 10
  • paddle_width 和 paddle_height:定义板子的宽度和高度。

  • paddle_x 和 paddle_y:定义板子的初始位置,使其居中并靠近屏幕底部。

  • paddle_speed:定义板子的移动速度。

3.2 定义球(Ball)

# 球
ball_radius = 10
ball_x = SCREEN_WIDTH // 2
ball_y = SCREEN_HEIGHT // 2
ball_speed_x = 5
ball_speed_y = -5
  • ball_radius:定义球的半径。

  • ball_x 和 ball_y:定义球的初始位置,使其位于屏幕中央。

  • ball_speed_x 和 ball_speed_y:定义球在水平和垂直方向上的速度。

3.3 砖块(Bricks)

# 砖块
brick_width = 75
brick_height = 30
brick_rows = 5
brick_cols = SCREEN_WIDTH // brick_widthdef generate_bricks():"""随机生成砖块"""bricks = []for row in range(brick_rows):for col in range(brick_cols):# 随机决定是否生成砖块if random.random() > 0.3:  # 70% 的概率生成砖块brick_x = col * brick_widthbrick_y = row * brick_height + 50brick_color = random.choice(COLORS)  # 随机选择颜色bricks.append((pygame.Rect(brick_x, brick_y, brick_width, brick_height), brick_color))return bricks# 初始化砖块
bricks = generate_bricks()
  • brick_width 和 brick_height:定义砖块的宽度和高度。

  • brick_rows 和 brick_cols:定义砖块的行数和列数。

  • generate_bricks() 函数

    • 随机生成砖块,每个砖块有 70% 的概率生成。

    • 砖块的颜色从 COLORS 列表中随机选择。

    • 砖块的位置通过 row 和 col 计算得出。

    • 砖块存储为一个元组 (pygame.Rect, color),其中 pygame.Rect 表示砖块的位置和大小,color 表示砖块的颜色。

  • bricks:调用 generate_bricks() 函数生成初始砖块。

4. 游戏主循环

4.1 事件处理

# 游戏循环
clock = pygame.time.Clock()
running = Truewhile running:for event in pygame.event.get():if event.type == pygame.QUIT:running = False
  • pygame.event.get():获取所有的事件(如按键、鼠标点击等)。

  • event.type == pygame.QUIT:如果用户点击关闭按钮,则退出游戏。

4.2 板子移动

    # 移动板子keys = pygame.key.get_pressed()if keys[pygame.K_LEFT] and paddle_x > 0:paddle_x -= paddle_speedif keys[pygame.K_RIGHT] and paddle_x < SCREEN_WIDTH - paddle_width:paddle_x += paddle_speed
  • pygame.key.get_pressed():获取当前按下的键。

  • K_LEFT 和 K_RIGHT:如果按下左箭头或右箭头键,则移动板子。

  • 边界检测:确保板子不会移出屏幕。

4.3 球移动和碰撞检测

    # 移动球ball_x += ball_speed_xball_y += ball_speed_y# 球与墙的碰撞检测if ball_x <= 0 or ball_x >= SCREEN_WIDTH:ball_speed_x = -ball_speed_xif ball_y <= 0:ball_speed_y = -ball_speed_y# 球与板子的碰撞检测if (paddle_x < ball_x < paddle_x + paddle_width) and (paddle_y < ball_y + ball_radius < paddle_y + paddle_height):ball_speed_y = -ball_speed_y# 球与砖块的碰撞检测for brick, color in bricks[:]:if brick.collidepoint(ball_x, ball_y):bricks.remove((brick, color))ball_speed_y = -ball_speed_ybreak# 球掉出屏幕if ball_y > SCREEN_HEIGHT:running = False
  • 球移动:更新球的位置。

  • 墙的碰撞检测

    • 如果球碰到左右墙壁,则水平速度反向。

    • 如果球碰到顶部墙壁,则垂直速度反向。

  • 板子的碰撞检测

    • 如果球碰到板子,则垂直速度反向。

  • 砖块的碰撞检测

    • 如果球碰到砖块,则移除砖块并反向垂直速度。

  • 球掉出屏幕:如果球掉出屏幕底部,则游戏结束。

4.4 绘制游戏对象

    # 清屏screen.fill(BLACK)# 绘制板子pygame.draw.rect(screen, WHITE, (paddle_x, paddle_y, paddle_width, paddle_height))# 绘制球pygame.draw.circle(screen, RED, (ball_x, ball_y), ball_radius)# 绘制砖块for brick, color in bricks:pygame.draw.rect(screen, color, brick)# 更新屏幕pygame.display.flip()# 控制帧率clock.tick(60)
  • screen.fill(BLACK):清屏,用黑色填充背景。

  • pygame.draw.rect():绘制板子和砖块。

  • pygame.draw.circle():绘制球。

  • pygame.display.flip():更新屏幕显示。

  • clock.tick(60):控制游戏帧率为 60 FPS。

4.5 退出游戏

# 退出游戏
pygame.quit()
  • pygame.quit():退出 Pygame,释放资源。

5. 完整代码

这个打砖块游戏的代码分为以下几个部分:

  1. 初始化:设置屏幕、颜色和游戏对象(板子、球、砖块)。

  2. 砖块生成:随机生成砖块,增加游戏的多样性。

  3. 游戏主循环:处理事件、更新游戏状态、检测碰撞、绘制游戏对象。

  4. 退出游戏:释放资源。

import pygame
import random# 初始化pygame
pygame.init()# 屏幕尺寸
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600# 颜色
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
BLACK = (0, 0, 0)
COLORS = [RED, GREEN, BLUE]  # 砖块颜色列表# 创建屏幕
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("打砖块")# 板子
paddle_width = 100
paddle_height = 20
paddle_x = (SCREEN_WIDTH - paddle_width) // 2
paddle_y = SCREEN_HEIGHT - 50
paddle_speed = 10# 球
ball_radius = 10
ball_x = SCREEN_WIDTH // 2
ball_y = SCREEN_HEIGHT // 2
ball_speed_x = 5
ball_speed_y = -5# 砖块
brick_width = 75
brick_height = 30
brick_rows = 5
brick_cols = SCREEN_WIDTH // brick_widthdef generate_bricks():"""随机生成砖块"""bricks = []for row in range(brick_rows):for col in range(brick_cols):# 随机决定是否生成砖块if random.random() > 0.3:  # 70% 的概率生成砖块brick_x = col * brick_widthbrick_y = row * brick_height + 50brick_color = random.choice(COLORS)  # 随机选择颜色bricks.append((pygame.Rect(brick_x, brick_y, brick_width, brick_height), brick_color))return bricks# 初始化砖块
bricks = generate_bricks()# 游戏循环
clock = pygame.time.Clock()
running = Truewhile running:for event in pygame.event.get():if event.type == pygame.QUIT:running = False# 移动板子keys = pygame.key.get_pressed()if keys[pygame.K_LEFT] and paddle_x > 0:paddle_x -= paddle_speedif keys[pygame.K_RIGHT] and paddle_x < SCREEN_WIDTH - paddle_width:paddle_x += paddle_speed# 移动球ball_x += ball_speed_xball_y += ball_speed_y# 球与墙的碰撞检测if ball_x <= 0 or ball_x >= SCREEN_WIDTH:ball_speed_x = -ball_speed_xif ball_y <= 0:ball_speed_y = -ball_speed_y# 球与板子的碰撞检测if (paddle_x < ball_x < paddle_x + paddle_width) and (paddle_y < ball_y + ball_radius < paddle_y + paddle_height):ball_speed_y = -ball_speed_y# 球与砖块的碰撞检测for brick, color in bricks[:]:if brick.collidepoint(ball_x, ball_y):bricks.remove((brick, color))ball_speed_y = -ball_speed_ybreak# 球掉出屏幕if ball_y > SCREEN_HEIGHT:running = False# 清屏screen.fill(BLACK)# 绘制板子pygame.draw.rect(screen, WHITE, (paddle_x, paddle_y, paddle_width, paddle_height))# 绘制球pygame.draw.circle(screen, RED, (ball_x, ball_y), ball_radius)# 绘制砖块for brick, color in bricks:pygame.draw.rect(screen, color, brick)# 更新屏幕pygame.display.flip()# 控制帧率clock.tick(60)# 退出游戏
pygame.quit()

http://www.dtcms.com/a/397412.html

相关文章:

  • 国外用python做的网站内江手机网站建设
  • 网站建设时图片和文字市场营销策略有哪几种
  • 视频网站设计模板wordpress文章页怎么调用网站图片
  • 山东省个人网站备案企业网站页面
  • 如何做网站授权网址文山做女主播的在哪个网站
  • 惠州的企业网站建设项目推广方案怎么写
  • 大气蓝色律师网站phpcms模板wordpress 防注入广告
  • 个人做影视网站版权问题网站建设所要花费的资金
  • 阿里云怎么做静态网站淮安做网站 卓越凯欣
  • 网站除了做流量还需要什么可以看网站的手机浏览器
  • seo网站优化知识常用的网站打不开
  • 罗湖区网站建设多少钱重庆seo教程博客
  • 群晖nas可以做网站新手建站网址
  • 网站建设销售问答深圳珠宝网站设计
  • 申请个人网站外贸平台有哪些?
  • 门户网站建设招标公告电商公司网站建设流程
  • 福建已经宣布封城的城市网站代码优化多少钱
  • 鄱阳电商网站建设哪些外包公司比较好
  • 怎么让别人找你做网站做网站美工收费
  • 网站的结构类型公司做的网站访问很慢
  • 做网站免费吗上海 互联网公司
  • 网站建设自查情况网站维护与建设考试
  • 中小企业网站设计总结二级域名是什么
  • 网站建设数据库的选择龙华网站建设全包
  • 中山制作网站的公司吗医疗器械网站建设策划书
  • PHP+MySQL网站开发全程实例十堰网站制作公司
  • 网站建设实训心得php邢台哪里提供网站制作
  • 吴江城乡建设局网站如何看网站关键词
  • 黑龙江网站建站建设wordpress主页一个静态页面
  • 包装设计网站欣赏net域名网站