【2023unity游戏制作-mango的冒险】-7.玩法实现

在这里插入图片描述


👨‍💻个人主页:@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏unity常用API
在这里插入图片描述


女神节专题篇


文章目录

    • 女神节专题篇
    • 🎶前言
    • 🎶(==A==)触发宝箱吃东西
    • 🎶(==火==)触发宝藏逻辑实现
    • 🎶(==土==)宝箱特效逻辑实现
    • 🎶(==木==)法球上下的移动效果
    • 🎶(==金==)炮管的旋转和发射
    • 🎶(==电==)人物的移动和法球的生成
    • 🎶(==水==)运动状态的跟随移动
    • 🎶(==霾==)人物的移动
    • ⭐相关文章⭐


🎶前言


🅰️ 让CSDN的浪漫弥漫女神节💕


🎶(A触发宝箱吃东西


在这里插入图片描述

请添加图片描述


🎶(触发宝藏逻辑实现


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//----------------------
//--作用: 宝箱触发宝藏
//----------------------
public class showApple : MonoBehaviour
{
    public Animator Colltor;
    private GameObject apple;
    void Start()
    {
        Colltor = GetComponent<Animator>();
    }
    void Update()
    {
        
    }
    private void OnTriggerEnter2D(Collider2D collision) //设置触发器
    {
      
        if(collision.transform .tag =="Palyer")
        {
            Colltor.SetBool("swtch", true);
            Invoke("CreatApple", 0.1f); //延时生成
        }
    }

    private void CreatApple()
    {
        //实例化Apple
        apple = Resources.Load<GameObject>(@"prefab1/apple");
        Instantiate<GameObject>(apple, new Vector3(-5.59f, -1.36f, 0), Quaternion.identity);

    }
}


🎶(宝箱特效逻辑实现


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//----------------------
//--作用: 宝箱特效
//----------------------
public class destory : MonoBehaviour
{
    public SpriteRenderer SRender;
    private bool Switch1;
    private float i = 20;
    private void Start()
    {
        SRender = GetComponent<SpriteRenderer>();  
    }
    void Update()
    {
        if(Switch1 == true ) //进行恶魔果实的特效变换
        {
            Apple();
        }
    }
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if(collision .name =="Mango")
        {
            print("触发了");
            Switch1 = true;
            BallMove B_switch = collision.GetComponent<BallMove>();   //脚本调用获得打开法球冲散开关
            B_switch.switchCrush = true;
            print("恶魔果实效果开启");
        }
        /*  }
          private void OnTriggerExit2D(Collider2D collision)
          {
              if (collision.name == "Mango")
              {  
                  Destroy(gameObject);
              }  */
    }

    private  void Apple()
    {
        SRender.sprite = Resources.Load<Sprite>(@"prefab1/wow1"); //特效替换
        SRender.sortingOrder = 1;
        SRender.transform.localScale += new Vector3(1, 1, 0) * Time.deltaTime;
        i = i - 0.1f;
        SRender.color = new Color(255 ,0, 0,i)*Time.deltaTime;
        if (i == 0) //当透明度alpha为0时销毁
        {
            Destroy(gameObject);
        }
    }
}

🎶(法球上下的移动效果


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//----------------------
//--作用:法球的上下效果晃动
//----------------------
public class BallShape : MonoBehaviour
{

    private float UpDown;//申明上下变化的数值
    private float YPell;
    private float endTime = 2;
    private Vector2 Ball;
    void Start()
    {
        YPell = transform.position.y; //将mango辅助点的位置作为初始值并固定
    }
    void FixedUpdate()
    {
        //运用了倒计时的作用
        endTime = Mathf.MoveTowards(endTime, 0, 0.1f);
        if (endTime == 0)
        {
            BallJump();
            endTime = 2;
        }
    }
    private void BallJump()
    {
        UpDown = Random.Range(-1, 1f) * 5;
        Ball = new Vector2(transform.position.x, YPell +UpDown );
        transform.position = Vector2.Lerp(transform.position, Ball, 0.05f);
    }
}


🎶(炮管的旋转和发射


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//----------------------
//--作用: 炮管旋转和发射
//----------------------
public class ShootRotation : MonoBehaviour
{
    private float Angle;

    private bool swtich;  //step1:设置使用开关(Bool)
    void Start()
    {
        
    }
    void Update()
    {
        if(swtich  == true  )
        {
            Angle = Input.mouseScrollDelta.y*5;
            
           transform.localRotation = new Quaternion(0, 0, Angle, 0);
           

        }
    }

    //step2:设置触发检测
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if(collision.transform.tag =="Player")
        {
            swtich = true;
        }
    }
}


🎶(人物的移动和法球的生成


using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.PlayerLoop;
using UnityEngine.UIElements;
//----------------------
//--作用:mango的移动和法球的生成
//----------------------
public class Movetowords : MonoBehaviour
{
    private GameObject point, profab;
    private Animator mangoAni;
    private Transform[] Allpoint = new Transform[8];
    private GameObject[] AllIea = new GameObject[4];
    private float time = 5;
    void Start()
    {
        point = GameObject.Find("add");
        profab = Resources.Load<GameObject>(@"prefab1/iea");
        mangoAni = GetComponent<Animator>();
        for (int i = 0; i < Allpoint .Length ; i++)
        {
            Allpoint[i] = GameObject.Find("Allpoint").transform.GetChild(i);

        }
        Invoke("Creatball", 5);
    }
    private void Update()
    {
        //当位置到达后,动画转为吟唱动画
        if (gameObject.transform.position.x == point.transform.position.x)
        {
            mangoAni.CrossFade("LookUp", 0f); //
        }
    }
    void FixedUpdate()
    {
        time = Mathf.MoveTowards(time, 0, 0.1f);//倒计时,相当于起到一个延时调用的作用
        if (time == 0)
        {
            gameObject.transform.position = Vector2.MoveTowards(gameObject.transform.position, point.transform.position, 0.1f);
        }
    }
    private void Creatball()  //创建法球
    {
        for (int i = 0; i < AllIea.Length ; i++)
        {
           //1.法球生成
            AllIea[i] = Instantiate<GameObject>(profab, Allpoint[i].position, Quaternion.identity);
            if (i == 3) //3.法球渲染层级设置
            {
                AllIea[i].GetComponent<SpriteRenderer>().sortingOrder = 3;
            }
            //2.实现法球移动效果
            IeaMove mation = AllIea[i].GetComponent<IeaMove>();//给实例化的物体添加上了脚本IeaMove
            mation.Pball  = Allpoint[i + 4] ; 
         }
    }
 
}


🎶(运动状态的跟随移动


using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.PlayerLoop;
using UnityEngine.Rendering;
//-----------------------
//--作用:运动状态法球的跟随移动(以及Crush情况)
//-----------------------

public class BallMove : MonoBehaviour
{
    // Start is called before the first frame update
    private GameObject fab1,fab2;                        //首先声明两个不同层级的法球预制体
    public Transform  [] emptyP =  new Transform[5];   //为储存四个辅助点的位置
    private GameObject [] Fball  = new GameObject[5];   //为生成四个实例化法球做载体
    private IeaMove[] BALL = new IeaMove[5] ;
    public Transform stopBall;   //声明恶魔效果散落位置的母体
    public bool switchCrush = false;
   
    void Start()
    {
        //使用资源加载的API
        fab1 = Resources.Load<GameObject>(@"prefab1/iea1");
        fab2 = Resources.Load<GameObject>(@"prefab1/iea2");
        for (int i = 1; i < emptyP.Length; i++)
        {
            emptyP[i] = transform.GetChild(i); 
        }
        creatMove();
    }
    private void Update()
    {
        if (switchCrush == true )
        {
            print("碰到恶魔果实!");
            CrushBall();
        }
    }
    private void creatMove()
    {
        for (int i = 1; i < emptyP.Length; i++)
        {
            //使用判断语句的目的就是分两部分实例化法球,高层及和低层级
            if (i < 3)
            {
                Fball[i] = Instantiate<GameObject>(fab1, emptyP[i].position, Quaternion.identity);
            }
            else if(i>=3)
            {
                Fball[i] = Instantiate<GameObject>(fab2, emptyP[i].position, Quaternion.identity);
            }

            BALL[i] = Fball[i].AddComponent<IeaMove>(); //给物体添加脚本
            BALL[i].Pball = emptyP[i];
     
        }

    }

    private  void CrushBall() // 更新法球停留的辅助点位置
    {
           for(int i = 1; i<BALL.Length; i++ )
        {
            //四散的效果         
            Fball[i].  transform.Translate(Fball[i].transform .position .x , -2, 0);
            BALL[i].Pball = stopBall.GetChild(i-1);
            BALL[i].speed = 0.1f;
            print("法球失散!");
            BALL[i].swtich = true;
            BALL[i].M_sprite = Resources.Load<Sprite>(@"prefab1/wow"+(i+1));

        }
        switchCrush = false;
    }
    

    }












🎶(人物的移动


using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using UnityEditor.Rendering;
using UnityEngine;

//-----------------------
//--作用:mango的移动
//-----------------------
public class mangoMove : MonoBehaviour
{
    // Start is called before the first frame update
    private float x;
    private float y;
    private Rigidbody2D Rmango;
    private Vector2 mangoMovex,mangoMovey;
    private float SpeedVauel = 5;
    public  float JumpSpeed = 5000;
    private  Animator MGanimator;
    private bool isGrounp,Switch1;
    private GameObject bow;

    void Start()
    {
        Rmango = GetComponent<Rigidbody2D>();
        MGanimator = GetComponent<Animator>();
    }

    private void Update()
    {
        x = Input.GetAxis("Horizontal"); // 按AD键获取类型为Float的数值作为系数范围为【-1,1】      
         AmationJump();
    }
    void FixedUpdate()
    {
        Move();
        closeShoot();
    }

    private void Move() //Mango的移动
    {
        //实现转向
        if (x > 0)       //当按下A的时候 x是负数 ,按下D的时候x是正数
        {
            transform.localScale = new Vector3(0.75f, 0.75f, 1);
        }
        else if (x < 0)
        {
            transform.localScale = new Vector3(-0.75f, 0.75f, 1);
        }
        //通过刚体组件实现物体的移动,我们只需要将刚体速度的大小和方向进行赋值即可
        //mangoMovex 和 mangoMoveY 都是vector2 类型的变量
        mangoMovex = Vector2.right * x * SpeedVauel;       //x轴的速度
        mangoMovey = new Vector2(0, Rmango.velocity.y);    //y轴的速度
        //速度向量的合成,有大小并且有方向的
        Rmango.velocity = mangoMovex + mangoMovey;
        MGanimator.SetFloat("Run", Mathf.Abs(Rmango .velocity .x));
    }

   

    private void AmationJump() //跳跃动画切换功能
    {

        //当按下空格键和 符合 在地面的条件时 
      
        if (Input.GetKeyDown(KeyCode.Space) && isGrounp == true )
        {
       
            Rmango.AddForce (Vector2 .up *JumpSpeed);
          
        }
    
      
    }

     private void closeShoot() //法炮发射功能
    {
        
            if (Input.GetKeyDown(KeyCode.K))
            {

            MGanimator.CrossFade("Attack", 0.2f);

            bow = Instantiate(Resources.Load<GameObject>(@"prefab1/bow"), transform.GetChild(6).position, Quaternion.identity);
            Rigidbody2D dd = new Rigidbody2D();
            dd = bow.AddComponent<Rigidbody2D>();
            dd.AddForce(new Vector2(transform.localScale.x * 5000, transform.position.y));
            MGanimator.SetBool("Attack", false);             
        }     
    }

    private void  damage(bool swtich) //Mango受伤动画的切换
    {
        print("来切换动画了");
        if(swtich == true)
         {
            MGanimator.SetBool("hurt", true);
        }
        else
        {
            MGanimator.SetBool("hurt", false);
        }
       
    }

    //碰撞器方法
    private void OnCollisionStay2D(Collision2D collision)
    {
        //接触的物体标签为Grounp的时候

        if (collision.contactCount == 1&& collision.transform.tag == "grounp" )
        {
            isGrounp = collision.gameObject.CompareTag("grounp");
            MGanimator.SetFloat("Jump", 0);
        }
        if (collision.transform.tag == "damage")
        {
            damage(true);
            print("注意,正在接触陷阱");
        }

    }
    private void OnCollisionExit2D(Collision2D collision) //也可以说是跳跃状态的时候
    {
    

        if (collision.transform.tag == "grounp" && collision.contactCount == 0)
        {
         
            MGanimator.SetFloat("Jump", 3);
           
        }
        isGrounp = false;
        if (collision.transform.tag == "damage")
        {
          
                damage(false);
            print("退出了");

        }
    }


}

⭐相关文章⭐

⭐【2023unity游戏制作-mango的冒险】-4.场景二的镜头和法球特效跟随

⭐【2023unity游戏制作-mango的冒险】-3.基础动作和动画API实现

⭐【2023unity游戏制作-mango的冒险】-2.始画面API制作

⭐【2023unity游戏制作-mango的冒险】-1.场景搭建

⭐“狂飙”游戏制作—游戏分类图鉴(网易游学)

⭐本站最全-unity常用API大全(万字详解),不信你不收藏



你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!
请添加图片描述
using System;
using System.Collections;
using System.Configuration;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Data;

///
///MYSQLHelper 的摘要说明
///
public abstract class MySqlHelper
{
//数据库连接字符串
public static string Conn = “Database=‘roomrentsystem’;Data Source=‘localhost’;User Id=‘root’;Password=‘123456’;charset=‘utf8’;pooling=true”;

// 用于缓存参数的HASH表
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());

/// <summary>
///  给定连接的数据库用假设参数执行一个sql命令(不返回数据集)
/// </summary>
/// <param name="connectionString">一个有效的连接字符串</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>执行命令所影响的行数</returns>
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{

    MySqlCommand cmd = new MySqlCommand();

    using (MySqlConnection conn = new MySqlConnection(connectionString))
    {
        PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
        int val = cmd.ExecuteNonQuery();
        cmd.Parameters.Clear();
        return val;
    }
}

/// <summary>
/// 用现有的数据库连接执行一个sql命令(不返回数据集)
/// </summary>
/// <param name="connection">一个现有的数据库连接</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>执行命令所影响的行数</returns>
public static int ExecuteNonQuery(MySqlConnection connection, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{

    MySqlCommand cmd = new MySqlCommand();

    PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
    int val = cmd.ExecuteNonQuery();
    cmd.Parameters.Clear();
    return val;
}

/// <summary>
///使用现有的SQL事务执行一个sql命令(不返回数据集)
/// </summary>
/// <remarks>
///举例:
///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="trans">一个现有的事务</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>执行命令所影响的行数</returns>
public static int ExecuteNonQuery(MySqlTransaction trans, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
    MySqlCommand cmd = new MySqlCommand();
    PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
    int val = cmd.ExecuteNonQuery();
    cmd.Parameters.Clear();
    return val;
}

/// <summary>
/// 用执行的数据库连接执行一个返回数据集的sql命令
/// </summary>
/// <remarks>
/// 举例:
///  MySqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connectionString">一个有效的连接字符串</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>包含结果的读取器</returns>
public static MySqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
    //创建一个MySqlCommand对象
    MySqlCommand cmd = new MySqlCommand();
    //创建一个MySqlConnection对象
    MySqlConnection conn = new MySqlConnection(connectionString);

    //在这里我们用一个try/catch结构执行sql文本命令/存储过程,因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在,
    //因此commandBehaviour.CloseConnection 就不会执行
    try
    {
        //调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数
        PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
        //调用 MySqlCommand  的 ExecuteReader 方法
        MySqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        //清除参数
        cmd.Parameters.Clear();
        return reader;
    }
    catch
    {
        //关闭连接,抛出异常
        conn.Close();
        throw;
    }
}

/// <summary>
/// 返回DataSet
/// </summary>
/// <param name="connectionString">一个有效的连接字符串</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns></returns>
public static DataSet GetDataSet(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
    //创建一个MySqlCommand对象
    MySqlCommand cmd = new MySqlCommand();
    //创建一个MySqlConnection对象
    MySqlConnection conn = new MySqlConnection(connectionString);

    //在这里我们用一个try/catch结构执行sql文本命令/存储过程,因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在,

    try
    {
        //调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数
        PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
        //调用 MySqlCommand  的 ExecuteReader 方法
        MySqlDataAdapter adapter = new MySqlDataAdapter();
        adapter.SelectCommand = cmd;
        DataSet ds = new DataSet();

        adapter.Fill(ds);
        //清除参数
        cmd.Parameters.Clear();
        conn.Close();
        return ds;
    }
    catch (Exception e)
    {
        throw e;
    }
}



/// <summary>
/// 用指定的数据库连接字符串执行一个命令并返回一个数据集的第一列
/// </summary>
/// <remarks>
///例如:
///  Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
///<param name="connectionString">一个有效的连接字符串</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>用 Convert.To{Type}把类型转换为想要的 </returns>
public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
    MySqlCommand cmd = new MySqlCommand();

    using (MySqlConnection connection = new MySqlConnection(connectionString))
    {
        PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
        object val = cmd.ExecuteScalar();
        cmd.Parameters.Clear();
        return val;
    }
}

/// <summary>
/// 用指定的数据库连接执行一个命令并返回一个数据集的第一列
/// </summary>
/// <remarks>
/// 例如:
///  Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connection">一个存在的数据库连接</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>用 Convert.To{Type}把类型转换为想要的 </returns>
public static object ExecuteScalar(MySqlConnection connection, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{

    MySqlCommand cmd = new MySqlCommand();

    PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
    object val = cmd.ExecuteScalar();
    cmd.Parameters.Clear();
    return val;
}

/// <summary>
/// 将参数集合添加到缓存
/// </summary>
/// <param name="cacheKey">添加到缓存的变量</param>
/// <param name="commandParameters">一个将要添加到缓存的sql参数集合</param>
public static void CacheParameters(string cacheKey, params MySqlParameter[] commandParameters)
{
    parmCache[cacheKey] = commandParameters;
}

/// <summary>
/// 找回缓存参数集合
/// </summary>
/// <param name="cacheKey">用于找回参数的关键字</param>
/// <returns>缓存的参数集合</returns>
public static MySqlParameter[] GetCachedParameters(string cacheKey)
{
    MySqlParameter[] cachedParms = (MySqlParameter[])parmCache[cacheKey];

    if (cachedParms == null)
        return null;

    MySqlParameter[] clonedParms = new MySqlParameter[cachedParms.Length];

    for (int i = 0, j = cachedParms.Length; i < j; i++)
        clonedParms[i] = (MySqlParameter)((ICloneable)cachedParms[i]).Clone();

    return clonedParms;
}

/// <summary>
/// 准备执行一个命令
/// </summary>
/// <param name="cmd">sql命令</param>
/// <param name="conn">OleDb连接</param>
/// <param name="trans">OleDb事务</param>
/// <param name="cmdType">命令类型例如 存储过程或者文本</param>
/// <param name="cmdText">命令文本,例如:Select * from Products</param>
/// <param name="cmdParms">执行命令的参数</param>
private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms)
{

    if (conn.State != ConnectionState.Open)
        conn.Open();

    cmd.Connection = conn;
    cmd.CommandText = cmdText;

    if (trans != null)
        cmd.Transaction = trans;

    cmd.CommandType = cmdType;

    if (cmdParms != null)
    {
        foreach (MySqlParameter parm in cmdParms)
            cmd.Parameters.Add(parm);
    }
}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/54274.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode257. 二叉树的所有路径

257. 二叉树的所有路径 文章目录 257. 二叉树的所有路径一、题目二、题解方法一&#xff1a;深度优先搜索递归方法二&#xff1a;迭代 一、题目 给你一个二叉树的根节点 root &#xff0c;按 任意顺序 &#xff0c;返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点…

xshell连接Windows中通过wsl安装的linux子系统-Ubuntu 22.04

xshell连接Windows中通过wsl安装的linux子系统-Ubuntu 22.04 一、安装linux子系统 1.1、 启动或关闭Windows功能-适用于Linux的Windows子系统 1.2 WSL 官方文档 使用 WSL 在 Windows 上安装 Linux //1-安装 WSL 命令 wsl --install//2-检查正在运行的 WSL 版本&#xff1a;…

计算机视觉:卷积层的参数量是多少?

本文重点 卷积核的参数量是卷积神经网络中一个重要的概念,它决定了网络的复杂度和计算量。在深度学习中,卷积操作是一种常用的操作,用于提取图像、语音等数据中的特征。卷积神经网络的优势点在于稀疏连接和权值共享,这使得卷积核的参数相较于传统的神经网络要少很多。 举例…

记一次Apache HTTP Client问题排查

现象 通过日志查看&#xff0c;存在两种异常情况。第一种&#xff1a;开始的时候HTTP请求会报超时异常。 762663363 [2023-07-21 06:04:25] [executor-64] ERROR - com.xxl.CucmTool - CucmTool|sendRisPortSoap error,url:https://xxxxxx/realtimeservice/services/RisPort o…

日常环境配置

pip install 使用代理 例&#xff1a;代理端口&#xff1a;10808 pip install akshare --proxyhttp://127.0.0.1:10808———— conda 虚拟环境安装pip包 查看虚拟环境地址 conda info --env #查看虚拟环境地址使用–taget 安装pip 包 pip install akshare --target &q…

QT学习之旅 - 一个QT的基本项目

文章目录 定时器(时间)位置信息QTableWidget用cellwidget添加控件隐藏QTableWidget的滚动条自动调整适应大小 UDPUDP ClientUDP ServerUDP udpSocket.readDatagram重要参数使用多线程udp 自定义信号和槽UDP服务端接收数据(全局变量) QWT设置标题数轴相关设置坐标轴范围设置坐标…

【LeetCode 75】第十六题(1004)最大连续1的个数

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码运行结果&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给一个只有0和1的数组&#xff0c;可以将K个0变成1&#xff0c;问最大能得到的全是1的子数组的长度是多少。 这算是很经典的滑动…

小研究 - 主动式微服务细粒度弹性缩放算法研究(二)

微服务架构已成为云数据中心的基本服务架构。但目前关于微服务系统弹性缩放的研究大多是基于服务或实例级别的水平缩放&#xff0c;忽略了能够充分利用单台服务器资源的细粒度垂直缩放&#xff0c;从而导致资源浪费。为此&#xff0c;本文设计了主动式微服务细粒度弹性缩放算法…

vscode设置远程登录和免密登录

首先&#xff0c;我们去官网下载VScode 安装过程比较简单&#xff0c;大家自行安装即可&#xff0c;注意建议安装在除C盘外的其他盘中。 安装完成后&#xff0c;打开我们下载好的VScode&#xff0c;点击左侧的Extensions选项&#xff0c;搜索Remote&#xff0c;Install第一项R…

初识Linux

今天简单了解了关于操作系统的发展史&#xff0c;学习了在Linux中如何远程连接云服务器的指令&#xff0c;以及在Linux中创建多个用户的指令。 1. ssh root 服务器远程地址 作用是用来连接XShell与云服务器&#xff0c;输入该指令后会自动生成输入密码的窗口&#xff0c;如…

MACOM EDI 需求分析

MACOM 是一家全球性半导体公司&#xff0c;专注于设计和制造高性能射频、微波和光电元件&#xff0c;其产品被广泛应用于通信、航空航天、国防、工业和医疗等领域。随着 MACOM 的不断发展&#xff0c;传统数据传输方式效率较低&#xff0c;无法满足 MACOM 的需求。为了提高企业…

玩转Tomcat:从安装到部署

文章目录 一、什么是 Tomcat二、Tomcat 的安装与使用2.1 下载安装2.2 目录结构2.3 启动 Tomcat 三、部署程序到 Tomcat3.1 Windows环境3.2 Linux环境 一、什么是 Tomcat 一看到 Tomcat&#xff0c;我们一般会想到什么&#xff1f;没错&#xff0c;就是他&#xff0c;童年的回忆…

web前端框架Javascript之JavaScript 异步编程史

早期的 Web 应用中&#xff0c;与后台进行交互时&#xff0c;需要进行 form 表单的提交&#xff0c;然后在页面刷新后给用户反馈结果。在页面刷新过程中&#xff0c;后台会重新返回一段 HTML 代码&#xff0c;这段 HTML 中的大部分内容与之前页面基本相同&#xff0c;这势必造成…

[ 华为云 ] 云计算中Region、VPC、AZ 是什么,他们又是什么关系,应该如何抉择

前几天看到一个问答帖&#xff0c;我回答完了才发现这个帖子居然是去年的也没人回复&#xff0c;其中他问了一些华为云的问题&#xff0c;对于其中的一些概念&#xff0c;这里来总结讲解一下&#xff0c;希望对学习华为云的小伙伴有所帮助。 文章目录 区域&#xff08;Region&a…

nodejs安装及多版本安装与TS环境搭建

nodejs安装及多版本安装与TS环境搭建 方法一&#xff1a; 普通安装nodejs,确定只能安装一个。网址&#xff1a;链接: 官网 不同系统下安装&#xff1a;不同系统下的nodejs 方法二&#xff1a; 借助工具nvm&#xff0c;安装多个nodejs&#xff0c;随时切换nodejs版本 什么是…

网络面试合集

传输层的数据结构是什么&#xff1f; 就是在问他的协议格式&#xff1a;UDP&TCP 2.1.1三次握手 通信前&#xff0c;要先建立连接&#xff0c;确保双方都是在线&#xff0c;具有数据收发的能力。 2.1.2四次挥手 通信结束后&#xff0c;会有一个断开连接的过程&#xff0…

Android水波纹按压效果(不按时透明)

按压后的效果&#xff08;左边"Cancle"是不按压的效果&#xff09; button_water_ripple_bg.xml <?xml version"1.0" encoding"utf-8"?> <ripple xmlns:android"http://schemas.android.com/apk/res/android"android:colo…

Java-API简析_java.io.FileReader类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意&#xff0c;谢绝转载&#xff01;&#xff08;请尊重原创&#xff0c;博主保留追究权&#xff09; https://blog.csdn.net/m0_69908381/article/details/132038537 出自【进步*于辰的博客】 因为我发现目前&#xff0c;我对Java-API的学习意识比较薄弱…

Appium+python自动化(三十五)- 命令启动appium之 appium服务命令行参数(超详解)

简介 前边介绍的都是通过按钮点击启动按钮来启动appium服务&#xff0c;有的小伙伴或者童鞋们乍一听可能不信&#xff0c;或者会问如何通过命令行启动appium服务呢&#xff1f;且听一一道来。 一睹为快 其实相当的简单&#xff0c;不看不知道&#xff0c;一看吓一跳&#xf…

linux_进程状态

目录 一. 概念铺设 状态是什么&#xff1f; 传统操作系统的状态转换图 二. 传统操作系统状态 1. 运行 2. 阻塞 3. 挂起 三. linux 中的进程状态 1. 总体介绍 2. R 3. S 4. D kill -9 D vs S 5. T kill T vs S 6. Z 什么是僵尸状态&#xff1f; 僵尸进程的危害 …