一直学习一样东西,学久了就可以尝试归纳总结,整理成笔记或者写成教程,这是一种很好的学习策略。(当然更好的方法是从学的时候就开始整理)
最近教学生做游戏,根据过往的经验,我把游戏中常用的方法都提取出来了,形成了一份笔记。
比如游戏中的最简单框架,绘图,加载图片,背景音乐加载播放,音效加载播放,鼠标移动或者按下检测,按键检测,区域检测,相对移动,角色碰撞检测,角色移动,角色旋转,角色跳跃,连续跳跃等。
有了这份笔记,做一般的游戏就非常快了,构思好思路,到里面挑选代码块拼凑即可(前提自己要理解原本的代码块),类似拼积木一样。
比如之前两次的游戏也是用类似的思路实现了,仔细观察,会发现很多代码一样的。
遇到没碰到过的问题,可以将其添加进去,这样就有了积累,随着时间的变化,这份笔记就成为了你的代码库,忘记不会查一查就可以了。
比如做了一个小demo--flappy bird,除了找素材处理素材;实际编写,调试10分钟左右就搞定啦。
只实现了按空格键上下飞行,管道随机出现并移动,碰撞检测以及飞出界外还没设定。
视频上传审核麻烦,录了个动图。
# 导入库
import pygame
import sys
import random
# 初始化
pygame.init()
pygame.mixer.init()
# 设置窗口大小
screen = pygame.display.set_mode((600, 600))
# 设置标题
pygame.display.set_caption("flappy bird")
# 管道
pipe_list = []
for i in range(1,3):
pipe = pygame.image.load(f"pipe{i}.png")
pipe_list.append(pipe)
random.shuffle(pipe_list)
pipe_pos = [[700,0],[700,600-pipe_list[1].get_height()]]
# crow
crow_list = []
for i in range(1, 3):
temp = pygame.image.load(f"crow{i}.png")
new_temp = pygame.transform.flip(temp,True,False)
crow_rect = new_temp.get_rect()
crow_list.append(new_temp)
crow_rect.x, crow_rect.y = 50, 300
crow_index = 0
# 设置y轴上的初速度为0
y_speed = 0
# 起跳初速度
jumpSpeed = -10
# 模拟重力
gravity = 1
# 地面移动速度与距离
pipe_speed = 10
pipe_move_distance = 0
# 时钟
clock = pygame.time.Clock()
# 循环显示
while True:
# 每秒30次
clock.tick(30)
# 事件侦测
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# 空格键侦测
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
y_speed = jumpSpeed
# 跳跃
crow_rect.y += y_speed # 更新y坐标
y_speed += gravity # 重力作用下改变速度
# 管道移动
pipe_move_distance += pipe_speed
pipe_pos[0][0] = 600-pipe_move_distance
pipe_pos[1][0] = 600-pipe_move_distance
# 管道出界重新选择管道
if pipe_move_distance >= 600:
pipe_move_distance = 0
random.shuffle(pipe_list)
pipe_pos = [[700, 0], [700, 600-pipe_list[1].get_height()]]
# crow图片索引加 1
crow_index += 1
# 设置背景色
screen.fill((87, 250, 255))
# 绘制管道
screen.blit(pipe_list[0], pipe_pos[0])
screen.blit(pipe_list[1], pipe_pos[1])
# 绘制crow
screen.blit(crow_list[crow_index % 2], crow_rect)
pygame.display.update()
需要素材的可以留言。
最近除了做案例,写课程,还研究了一些教(教学)与学(学习)的相关理论。主要关于如何教别人学习和如何自己学习。
比如教学中有哪些基本过程,环节,教学的基本原则,教学策略还有常见的一些教学法,教学内容组织以及评价。
学习主要看了主流的一些学习理论,学习策略,学习动机以及学习迁移相关方法的内容。
等弄的差不多,后面有时间结合案例分享出来。
(全文完)