Games104作业四(含提高项)

Games104作业四的基础部分和提高部分,主要完成了以下两个内容:

  1. 在 motor.h 中增加 control_jump_with_height 和 m_jump_speed 两个属性,用于选择性地使用玩家跳跃时的初速度来控制玩家向上跳跃的高度,同时修改 editor_ui.cpp,确保增加的属性可以正确的显示在界面上;
  2. 修改 MotorComponent::calculatedDesiredVerticalMoveSpeed 函数,给跳跃的控制增加使用跳跃初速度的选项;

首先在 motor.h 中增加两个属性定义,如下图所示:

调试程序后,发现 bool 值并不能在 UI 上显示出来,查看 editor.cpp 发现其中并没有实现对 bool 类型的反射支持,仿照其他数据类型的写法,在 EditorUI::EditorUI() 增加以下代码实现对 bool 类型的反射支持。

// 增加对布尔类型的处理
m_editor_ui_creator["bool"] = [this](const std::string& name, void* value_ptr) -> void {
    if (g_node_depth == -1)
    {
        std::string label = "##" + name;
        ImGui::Text("%s", name.c_str());
        ImGui::SameLine();
        ImGui::Checkbox(label.c_str(), static_cast<bool*>(value_ptr));
    }
    else
    {
     
在课程 *Games202* 中,作业 3 通常涉及较为深入的图形学或游戏开发相关内容,具体可能包括但不限于:着色器编程、实时渲染技术、物理引擎集成、动画系统实现或游戏 AI 的设计与优化。此类作业旨在让学生将理论知识应用到实际目中,提高解决复杂问题的能力。 作业内容可能要求学生使用如 Unity 或 Unreal Engine 这样的游戏开发平台,或者基于自定义引擎完成特定功能的开发任务。例如,可能涉及实现一个简单的 AI 寻路系统[^1]、优化渲染管线中的某个模块[^2],或设计基于行为树的智能角色交互机制[^3]。 对于完成作业,建议关注以下几个方面: - **理解需求**:仔细阅读作业说明文档,确保完全理解每一任务目标。 - **模块化开发**:将整个作业拆解为多个小任务,逐一实现并测试,以降低整体复杂度。 - **性能优化**:如果涉及渲染或物理模拟,注意性能瓶颈的识别与优化,例如使用 GPU Profiling 工具分析瓶颈[^4]。 - **版本控制**:使用 Git 等工具管理代码,确保开发过程可追溯,避免数据丢失。 若需具体实现细节或代码示例,建议参考课程提供的实验指导材料或相关开源目。 ```python # 示例:简单 AI 寻路算法(基于 A* 算法) def a_star_search(graph, start, goal): frontier = PriorityQueue() frontier.put(start, 0) came_from = {} cost_so_far = {} came_from[start] = None cost_so_far[start] = 0 while not frontier.empty(): current = frontier.get() if current == goal: break for next in graph.neighbors(current): new_cost = cost_so_far[current] + graph.cost(current, next) if next not in cost_so_far or new_cost < cost_so_far[next]: cost_so_far[next] = new_cost priority = new_cost + heuristic(goal, next) frontier.put(next, priority) came_from[next] = current return came_from, cost_so_far ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值