函数概述:
函数的定义:
调用函数:
#-----------------------------------函数--------------------------------------
# ------------------------定义---------------------------
"""
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)
运行结果:
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()