Python

38 阅读2分钟

函数概述:

image.png

函数的定义:

image.png

调用函数:

image.png

#-----------------------------------函数--------------------------------------
# ------------------------定义---------------------------
"""
def 函数名([参数列表]):
    ['''w文档字符串‘’‘]
    函数体
    [return语句]
"""
def add():
    result = 11 + 22
    print(result)


def add_2(a,b):
    result = a + b
    print(result)

def add_3(a, b):
    result = a + b
    print(result)
    return result


# c = a       函数内参数不能在外部使用

# 2、调用练习
# 函数定义以后不会运行,调用才会运行
add()
add_2(a=5,b=9)
add_2(5,9)
add_2(b=10,a=2)

re_3 = add_3(10,3)

运行结果:

image.png

image.png

import pygame
import sys

# --- 游戏初始化 ---
pygame.init()
SCREEN = pygame.display.set_mode((800, 400))
pygame.display.set_caption("L1: 函数的诞生 - 火球术实战")
CLOCK = pygame.time.Clock()
FONT = pygame.font.SysFont("SimHei", 20)  # 此时需要系统支持中文或用Arial

# 加载图片
IMG_HERO = pygame.image.load("hero.png")
IMG_HERO = pygame.transform.scale(IMG_HERO, (64, 64))
IMG_MONSTER = pygame.image.load("monster.png")
IMG_MONSTER = pygame.transform.scale(IMG_MONSTER, (64, 64))
IMG_FIRE = pygame.image.load("fireball.png")
IMG_FIRE = pygame.transform.scale(IMG_FIRE, (32, 32))

# 全局游戏数据
hero_mp = 100
monster_hp = 200
fireballs = []  # 存储飞行的火球


# ==========================================
# ▼▼▼ 在这里写代码 (STUDENT AREA) ▼▼▼
# ==========================================
def cast_fireball():
    """
    定义火球术:
    1.检查蓝量是否足够
    2.扣除20点蓝量
    3,。创建火球
    """
    global hero_mp

    if hero_mp>=20:
        print("释放火球")
        hero_mp -= 20
        # 创建火球{"x":位置,"y":位置,"damage":伤害}
        new_fireball ={"x":100,"y":200,"damage":50}
        fireballs.append(new_fireball)
    else:
        print("蓝量不足")

# ==========================================
# ▲▲▲ 代码结束 (END STUDENT AREA) ▲▲▲
# ==========================================

def game_loop():
    global monster_hp, hero_mp

    while True:
        SCREEN.fill((30, 30, 30))  # 深色背景

        # 1. 事件处理
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit();
                sys.exit()
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_SPACE:
                    # 当按下空格键,调用写的函数
                    cast_fireball()

        # 2. 更新火球位置
        for fb in fireballs[:]:
            fb['x'] += 10  # 火球向右飞
            # 碰撞检测
            if fb['x'] > 600:  # 假设怪物在 x=600
                monster_hp -= fb['damage']
                fireballs.remove(fb)
                print(f"💥 命中!怪物剩余HP: {monster_hp}")

        # 3. 绘制画面
        SCREEN.blit(IMG_HERO, (50, 180))  # 画英雄
        SCREEN.blit(IMG_MONSTER, (600, 180))  # 画怪物

        # 画火球
        for fb in fireballs:
            SCREEN.blit(IMG_FIRE, (fb['x'], fb['y']))

        # 画UI文字
        text_mp = FONT.render(f"英雄 MP: {hero_mp}/100 (按空格释放)", True, (100, 200, 255))
        text_hp = FONT.render(f"怪物 HP: {monster_hp}/200", True, (255, 100, 100))
        SCREEN.blit(text_mp, (20, 20))
        SCREEN.blit(text_hp, (600, 20))

        pygame.display.update()
        CLOCK.tick(60)


if __name__ == "__main__":
    game_loop()

image.png