作业#

作业一:在上次作业的基础上,完成小球的斜线碰撞模拟。不考虑重力和能量损耗。

作业二:在作业一中引入重力因素(重力加速度自行指定),完成小球的碰撞模拟。不考虑能量损耗。 gravity

作业三:运行示例程序paddlemove: https://replit.com/@scls-cs/paddlemove#main.py

回答如下问题:

  1. 结合move中按键操纵的内容,指出白色边框,以及球拍初始位置的四个顶点的坐标。

  2. 假如球拍的初始位置如图所示,请问paddle_x和paddle_y应该如何修改?要求写成Square properties和Paddle properties的函数形式。

paddle_pos

  1. 哪些指令实现了键盘操纵球拍水平运动?

  2. 目前球拍移动会超出白色边框。请指出原因,并说明应该如何修改代码使得球拍只在白色边框内部移动。

  3. 如果希望球拍除了水平运动以外,还可以上下移动,应该如何修改代码?

作业四:

设计游戏:

球拍初始位置:球拍中心位于白色边框中轴线上,球拍下方离白色边框为10个像素距离。

球拍运动范围:如蓝色部分所示。

range

小球在白色边框内部做斜线碰撞,碰到球拍后会反弹。不考虑重力和能量损耗。小球如果碰到白色边框底部,游戏失败。

bounce

【附加题】 有一个小恶魔在白色边框中随机出现,你的任务是尽可能多的击中它。如果小球击中它,游戏加一分。游戏如图所示:

score

提交#

其中作业一、二、四提交在main.py中,作业二和附加题提交在homework.txt里。

提交链接:https://replit.com/team/SCLS-CS2022/Game-II

作业答案#

作业一:https://replit.com/@scls-cs/ballcollision?v=1

作业二:https://replit.com/@scls-cs/gravity?v=1

作业四和五:https://replit.com/@scls-cs/ball-with-paddle?v=1