Scanvenger游戏制作笔记(二)控制玩家操作

本文介绍了如何在Unity3D中为Scavenger游戏创建Rigidbody2D控制玩家移动,并通过BOXCollider2D实现碰撞检测。作者详细步骤包括设置刚体、脚本编写与参数调整。


前言

本文章是我学习SIKI学院Scanvenger项目所做笔记,原视频请自行搜索,
材质等相关资源请微信搜索SIKI学院公众号,回复120获取。源码也在里面。
游戏引擎:Unity3D2020.3
之前的Prefabs内容请提取源码中的prefabs

一、创建一个Rigidbody2D

因为不需要重力,所以选择

在这里插入图片描述

二、再创建一个刚体2D BOX Coliider2D,检测碰撞

在这里插入图片描述
设置Size为 0.9 ,0.9,保证相邻的两个格子不会发生碰撞

在这里插入图片描述

三、创建脚本

public class Player : MonoBehaviour
{
    // Start is called before the first frame update

    public float smoothing = 1; // 移动平滑度
    public float restTime = 1; // 休息时间,保证不会一直移动

    public float restTimer = 0; // 计时器


    // 当前位置
    private Vector2 targetPos = new Vector2(1, 1);

    // 得到刚体
    private Rigidbody2D rigidbody;

    void Start()
    {
        rigidbody = GetComponent<Rigidbody2D>();
    }

    // Update is called once per frame
    void Update()
    {
        // 控制刚体移动
        // vector2.lerp(初始位置,目标位置,移动速度)
        rigidbody.MovePosition(Vector2.Lerp(transform.position, targetPos, smoothing * Time.deltaTime));

        restTimer += Time.deltaTime;
        if (restTimer < restTime) return;  // 如果移动时间大于休息时间,则不会移动

        float h = Input.GetAxisRaw("Horizontal");  // 上下移动
        float v = Input.GetAxisRaw("Vertical"); // 水平移动
        // 保证同时只能向上下移动或者向左右移动
        if (h > 0)
        {
            v = 0;
        }

    

        if(h != 0 || v!= 0)  // 当移动后才会出现休息时间
        {
        targetPos += new Vector2(h, v);
        restTimer = 0; // 重新计时
        }
        

    }

四、修改玩家的移动平滑度和休息时间

在这里插入图片描述
最终我将smoothing设置为100,,restTime设置为1

系列链接

Scanvenger游戏制作笔记(一)Unity3D状态机转换
Scanvenger游戏制作笔记(二)控制玩家操作
Scanvenger游戏制作笔记(三)Unity3D创建对墙体的攻击
Scanvenger游戏制作笔记(四)Unity3D控制角色吃食物
Scanvenger游戏制作笔记(五)控制敌人的移动
Scanvenger游戏制作笔记(六)Unity3D创建游戏UI的显示
Scanvenger游戏制作笔记(七)Unity3D控制游戏的失败
Scanvenger游戏制作笔记(八)Unity3D关卡胜利条件的判断
Scanvenger游戏制作笔记(九)Unity3D创建声音

基于蒙特卡洛法的规模化电动车有序充放电及负荷预测(Python&Matlab实现)内容概要:本文围绕“基于蒙特卡洛法的规模化电动车有序充放电及负荷预测”展开,结合Python和Matlab编程实现,重点研究大规模电动汽车在电网中的充放电行为建模与负荷预测方法。通过蒙特卡洛模拟技术,对电动车用户的出行规律、充电需求、接入时间与电量消耗等不确定性因素进行统计建模,进而实现有序充放电策略的优化设计与未来负荷曲线的精准预测。文中提供了完整的算法流程与代码实现,涵盖数据采样、概率分布拟合、充电负荷聚合、场景仿真及结果可视化等关键环节,有效支撑电网侧对电动车负荷的科学管理与调度决策。; 适合人群:具备一定电力系统基础知识和编程能力(Python/Matlab),从事新能源、智能电网、交通电气化等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究大规模电动车接入对配电网负荷特性的影响;②设计有序充电策略以平抑负荷波动;③实现基于概率模拟的短期或长期负荷预测;④为电网规划、储能配置与需求响应提供数据支持和技术方案。; 阅读建议:建议结合文中提供的代码实例,逐步运行并理解蒙特卡洛模拟的实现逻辑,重点关注输入参数的概率分布设定与多场景仿真的聚合方法,同时可扩展加入分时电价、用户行为偏好等实际约束条件以提升模型实用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值