sunnychen 发表于 2024-4-7 17:06

Python编写小游戏——抓青蛙

本帖最后由 sunnychen 于 2024-4-9 11:26 编辑

通过Python 编写小游戏,让学习变得有趣。通过练习逐步掌握 Python 编程的基本概念和技能,也能给学习者带来成就感和乐趣。
在开发游戏时,主要用到Pygame库,用于处理游戏中的图形、音频、事件等。
抓青蛙游戏是一种有趣的反应游戏,主要用到Python的游戏循环、随机数生成和鼠标事件处理。
import pygame
import random

pygame.init()

window_width = 800
window_height = 600
window = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption('抓青蛙游戏')

white = (255, 255, 255)
black = (0, 0, 0)
green = (0, 128, 0)

mole_radius = 20
mole_x = random.randint(mole_radius, window_width - mole_radius)
mole_y = random.randint(mole_radius + 100, window_height - mole_radius)
ear_radius = 5

score = 0
clock = pygame.time.Clock()
spawn_timer = 0
spawn_delay = 1500# 1.5秒

# 显示得分
def show_score():
    font = pygame.font.SysFont(None, 36)
    score_text = font.render(f'Score: {score}', True, black)
    window.blit(score_text, (10, 10))

# 绘制青蛙
def draw_mole():
    pygame.draw.circle(window, green, (mole_x, mole_y), mole_radius)
    pygame.draw.circle(window, black, (mole_x - mole_radius//2, mole_y - mole_radius//2 - ear_radius), ear_radius)
    pygame.draw.circle(window, black, (mole_x + mole_radius//2, mole_y - mole_radius//2 - ear_radius), ear_radius)

# 显示青蛙
def show_objects():
    window.fill(white)
    draw_mole()
    pygame.draw.circle(window, black, pygame.mouse.get_pos(), 20)
    show_score()
    pygame.display.update()

# 绘制锤子
def draw_hammer(position):
    pygame.draw.circle(window, hammer_color, position, hammer_radius, 3)

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

    spawn_timer += clock.get_time()
    if spawn_timer >= spawn_delay:
      mole_x = random.randint(mole_radius, window_width - mole_radius)
      mole_y = random.randint(mole_radius + 100, window_height - mole_radius)
      spawn_timer = 0

    mouse_x, mouse_y = pygame.mouse.get_pos()
    if pygame.mouse.get_pressed():
      if (mole_x - mouse_x)**2 + (mole_y - mouse_y)**2 <= mole_radius**2:
            score += 1
            mole_x = random.randint(mole_radius, window_width - mole_radius)
            mole_y = random.randint(mole_radius + 100, window_height - mole_radius)

    show_objects()
    clock.tick(60)

pygame.quit()

silenter6speake 发表于 2024-4-8 15:40

很久以前就像研究python来做简单的小游戏,书都买了。各种原因,都是没有沉下心学习和实践。
只能偶尔看看 这样的代码。

{:301_999:}

adewangluo 发表于 2024-4-7 18:18

正在学习Python,可以研究下~!感谢

booluo 发表于 2024-4-7 18:52

之前学习Python的时候写过一个2048的小游戏,挺有意思的,楼主可以试试

shengforever 发表于 2024-4-7 19:01

太牛了 学习下

bluepeb 发表于 2024-4-7 19:22

大神,闲暇时玩几把。

52bojie 发表于 2024-4-7 21:18

学习了,谢谢分享

zhmsun 发表于 2024-4-7 23:03

学python中,感谢分享,{:1_921:}

877 发表于 2024-4-8 00:11

不错哦,玩玩试试

tnancy2kk 发表于 2024-4-8 08:30

不错,边玩,边学习一下思路吧

Ming4444 发表于 2024-4-8 12:47

不错哦,玩玩试试
页: [1] 2
查看完整版本: Python编写小游戏——抓青蛙