首页 > 编程语言 >python代码实现老鹰抓小鸡游戏

python代码实现老鹰抓小鸡游戏

时间:2024-08-11 12:59:28浏览次数:10  
标签:eagle python pos 小鸡 老鹰 pygame chick speed size

import pygame
import random

# 初始化pygame
pygame.init()

# 设置屏幕尺寸和颜色
WIDTH, HEIGHT = 800, 600
BACKGROUND_COLOR = (255, 255, 255)
EAGLE_COLOR = (0, 0, 255)
CHICK_COLOR = (255, 255, 0)
FPS = 30

# 创建游戏窗口
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("老鹰抓小鸡")

# 创建游戏对象
eagle_size = 50
chick_size = 30

eagle_pos = [WIDTH // 2, HEIGHT // 2]
chick_pos = [random.randint(0, WIDTH - chick_size), random.randint(0, HEIGHT - chick_size)]

# 设置移动速度
eagle_speed = 5
chick_speed = 3

clock = pygame.time.Clock()

def move_eagle(keys):
    if keys[pygame.K_LEFT]:
        eagle_pos[0] -= eagle_speed
    if keys[pygame.K_RIGHT]:
        eagle_pos[0] += eagle_speed
    if keys[pygame.K_UP]:
        eagle_pos[1] -= eagle_speed
    if keys[pygame.K_DOWN]:
        eagle_pos[1] += eagle_speed

    # 防止老鹰走出屏幕边界
    eagle_pos[0] = max(0, min(eagle_pos[0], WIDTH - eagle_size))
    eagle_pos[1] = max(0, min(eagle_pos[1], HEIGHT - eagle_size))

def move_chick():
    direction = random.choice(['left', 'right', 'up', 'down'])
    if direction == 'left':
        chick_pos[0] -= chick_speed
    elif direction == 'right':
        chick_pos[0] += chick_speed
    elif direction == 'up':
        chick_pos[1] -= chick_speed
    elif direction == 'down':
        chick_pos[1] += chick_speed

    # 防止小鸡走出屏幕边界
    chick_pos[0] = max(0, min(chick_pos[0], WIDTH - chick_size))
    chick_pos[1] = max(0, min(chick_pos[1], HEIGHT - chick_size))

def check_collision():
    return (eagle_pos[0] < chick_pos[0] + chick_size and
            eagle_pos[0] + eagle_size > chick_pos[0] and
            eagle_pos[1] < chick_pos[1] + chick_size and
            eagle_pos[1] + eagle_size > chick_pos[1])

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    keys = pygame.key.get_pressed()
    move_eagle(keys)
    move_chick()

    if check_collision():
        print("老鹰抓到小鸡了!")
        chick_pos = [random.randint(0, WIDTH - chick_size), random.randint(0, HEIGHT - chick_size)]

    screen.fill(BACKGROUND_COLOR)
    pygame.draw.rect(screen, EAGLE_COLOR, (*eagle_pos, eagle_size, eagle_size))
    pygame.draw.rect(screen, CHICK_COLOR, (*chick_pos, chick_size, chick_size))

    pygame.display.flip()
    clock.tick(FPS)

pygame.quit()
 

标签:eagle,python,pos,小鸡,老鹰,pygame,chick,speed,size
From: https://blog.csdn.net/AGVX58074/article/details/141104285

相关文章

  • python代码实现挑棍游戏
    importrandomdefprint_sticks(sticks):  """打印当前的棍子状态"""  print("当前棍子状态:",''.join(str(i)foriinrange(1,sticks+1)))defplayer_turn(sticks):  """处理玩家的回合"""  ......
  • 【Python蓝屏程序(管理员)】
    说明:该程序为临摹(......
  • BUUCTF 81题吹着贝斯的二维码详解(包含各类工具和python脚本)
    在网上看了很多类似解题步骤和说明,感觉对小白都不友好,于是决定搜集整理下,做个详尽的解题步骤:压缩包解压得到36个无后缀名文件和一个flag.zip压缩包再看压缩包,解压发现有压缩密码,用winhex查看是不是伪加密,在末尾发现一串可疑字符串,拷贝下来留用:GNATOMJVIQZUKNJXGRCTGNRTG......
  • python asyncio grpc
    1.准备环境python3.11-mvenvvenvsourcevenv/*/activatepipinstallgrpcio-tools#包含了grpcio和protobufpipinstalltypes-protobufgrpc-stubs#可选安装,用于mypy静态检查2.编写msg.protosyntax="proto3";//这是注释,同时也是类文档serviceMsgService{......
  • Python和多线程(multi-threading)
    在Python中,实现并行处理的方法有几种,但由于Python的全局解释器锁(GIL,GlobalInterpreterLock)的存在,传统意义上的多线程(使用threading模块)并不总能有效利用多核CPU来实现真正的并行计算。GIL确保任何时候只有一个线程在执行Python字节码。不过,仍然有几种方法可以绕过这个限制,......
  • Python基础知识:奠定坚实的编程基础
    Python,作为一种备受欢迎的高级编程语言,凭借其简洁的语法、强大的标准库和丰富的第三方模块,赢得了广泛的赞誉和应用。无论你是编程新手还是资深开发者,Python都能提供丰富的学习机会和实际应用场景。本文旨在深入探讨Python的基础知识,涵盖字面量、变量、数据类型、注释、类型......
  • python图片压缩大小及设置图片像素大小120乘160
    python图片压缩大小及设置图片像素大小120乘1601.在pycharm中安装pillow库的步骤:打开设置并转到“项目”页面。选择“python解释器”并单击“+”按钮。搜索“pillow”,选中包并单击“安装包”。1.打开PyCharm设置Windows:File>Settings2.转到“项目”页面在左侧导航栏中,单......
  • Python之赋值语句(多重赋值和交换赋值)
    这是《Python入门经典以解决计算问题为导向的Python编程实践》73-74页关于赋值的内容。讲了Python中几种赋值方式。赋值语句1、最简单的赋值:a=b2、多重赋值:a,b,c=1,2,33、交换:a,b=b,a1、最简单的赋值:a=bb可以是数字、字符串,也可以是一个表达式。a必须是一个对象,不......
  • Python使用PyCharm创建一个简单的Qt Quick应用程序-hello_world_quick.py(读取qml文件
    """CreateaSimpleQuickApplication"""importsysfrompathlibimportPathfromPySide6.QtGuiimportQGuiApplicationfromPySide6.QtQmlimportQQmlApplicationEngine#打开文件,读取文件,并返回文件内容defread_file(file_path):"......
  • Python使用PyCharm创建一个简单的Qt Widgets应用程序-hello_world.py
    """CreateaSimpleQtWidgetsApplication"""importrandomimportsysfromPySide6importQtCore,QtWidgets#MainClassclassMyWidget(QtWidgets.QWidget):def__init__(self):super().__init__()self......