using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;public class GameRoot : MonoBehaviour
{//第一帧的时候跳转到开始场景private void Start(){SceneManager.LoadScene(1);}}
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Serialization;public class UIManage : MonoBehaviour
{//UIManage单例public static UIManage Instance;//存放UI脚本的栈public Stack<UIBase> _uiStack=new Stack<UIBase>();//存放UI预设体的字典private Dictionary<string,GameObject> _uiObject=new Dictionary<string, GameObject>();//存UI脚本的字典public Dictionary<string,UIBase> uiBases=new Dictionary<string, UIBase>();//UI预设体所在文件夹名称public string resourcesUiPrefabDir = "UIPre";private void Awake(){//单例Instance = this;//加载场景不销毁DontDestroyOnLoad(gameObject);}/// <summary>/// 入栈-显示UI脚本/// </summary>/// <param name="uiName"></param>public void PushUiPanel(string uiName){//如果栈里面的数量大于零if (_uiStack.Count>0){//拿到原来的栈顶元素UIBase oldTopUi= _uiStack.Peek();//将栈顶的元素暂停oldTopUi.DoOnPause();}//得到新的UI面板UIBase newTopUi= GetUiBase(uiName);//让新的的UI进入游戏newTopUi.DoOnEnter();//入栈_uiStack.Push(newTopUi);}/// <summary>/// 出栈-弹出UI脚本/// </summary>public void PopUipanel(){//如果栈中没元素直接返回if (_uiStack.Count==0) return;//如果有元素,拿到栈顶的元素UIBase oldTopUi = _uiStack.Pop();//将栈顶的元素退出oldTopUi.DoOnExit();//如果栈中的数量大于零if (_uiStack.Count>0){//如果一个UI出栈以后,下面还有UI,需要将UI状态恢复//弹出栈最上面的UI面板UIBase newTopUi = _uiStack.Peek();//将最上面的面板的UI状态恢复newTopUi.DoOnRestart();}}/// <summary>/// 根据名字得到UI面板/// </summary>/// <param name="uiName"></param>private UIBase GetUiBase(string uiName){//如果脚本字典里包含这个名字if (uiBases.ContainsKey(uiName)){//返回这个ui名字return uiBases[uiName];}//如果预设体字典中不包含该ui面板的预设体if (!_uiObject.ContainsKey(uiName)){//获得这个新ui面板的资源路径string uiPath = resourcesUiPrefabDir + "/" + uiName;//加载出来这个新的ui面板GameObject uiPrefab= Resources.Load<GameObject>(uiPath);//如果这个ui面板不为空if (uiPrefab!=null){//将其存入字典中_uiObject[uiName] = uiPrefab;}else{//否则返回 Debug.Log("没这个资源");return null;}}//根据从字典中取出的预设体生成UI面板对象GameObject uiObj= Instantiate(_uiObject[uiName]);//将要获取的脚本的名字赋给这个UI面板uiObj.name = uiName;//取当前对象的脚本组件UIBase uiBase= uiObj.GetComponent<UIBase>();//将脚本存到脚本字典中uiBases[uiName] = uiBase;//返回这个脚本return uiBase;}/// <summary>/// 进行清空/// </summary>public void Clear(){_uiStack.Clear();uiBases.Clear();}}
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class SoundManage : MonoBehaviour
{//单例public static SoundManage Instance;//音乐播放器组件private AudioSource _audioSource;//显示音乐名字public string musicShowName;//音乐文件位置public string ResourcesMusicDir="Audio";//音乐常量public const string MUSICMUTE = "MusicMute";//音效常量public const string AUDIOMUTE = "AudioMute";//声音大小常量public const string VOLUME = "Volume";//音效大小常量public const string AUDIOVOLUME = "AudioVolume";private void Awake(){Instance = this;//场景加载时不销毁DontDestroyOnLoad(gameObject);//获取Audiosource组件_audioSource = GetComponent<AudioSource>();//初始设置循环打开_audioSource.loop = true;//初始位置开局唤醒关闭_audioSource.playOnAwake = false;//如果存储里面有MusicMute字段if (PlayerPrefs.HasKey(MUSICMUTE)){//音乐是否静音就获取存储字段的bool值MusicMute = PlayerPrefs.GetInt(MUSICMUTE)==0?false:true;}//如果AudioMute这个字段if (PlayerPrefs.HasKey(AUDIOMUTE)){//音效是否静音就获取存储字段的bool值AudioMute = PlayerPrefs.GetInt(AUDIOMUTE) ==0?false:true;}//如果里面有Volume这个字段if (PlayerPrefs.HasKey(VOLUME)){//声音大小就为获取存储这个字段的值Volume = PlayerPrefs.GetFloat(VOLUME,Volume);}//如果里面有AudioVolume这个字段if (PlayerPrefs.HasKey(AUDIOVOLUME)){//音效大小就为这个字段的值AudioVolume = PlayerPrefs.GetFloat(AUDIOVOLUME, AudioVolume);}}/// <summary>/// 播放音乐/// </summary>/// <param name="musicName"></param>public void PlayBgm(string musicName){//获取路径字段string path = ResourcesMusicDir + "/" + musicName;//通过路径加载出来音乐片段_audioSource.clip= Resources.Load<AudioClip>(path);//显示名字musicShowName = musicName;//播放音乐_audioSource.Play();}/// <summary>/// 停止播放/// </summary>public void StopBgm(){//让音乐片段为null_audioSource.clip = null;//停止播放音乐_audioSource.Stop();}/// <summary>/// 音乐是否静音/// </summary>public bool MusicMute{get{return _audioSource.mute;}set{_audioSource.mute = value;}}/// <summary>/// 音效是否静音/// </summary>public bool AudioMute{get;set;}/// <summary>/// 音效的音量/// </summary>public float AudioVolume{get;set;}/// <summary>/// 播放音效/// </summary>/// <param name="audioName"></param>/// <param name="playPoint"></param>/// <param name="_audioVolume"></param>public void PlayAudio(string audioName,Vector2 playPoint,float _audioVolume){_audioVolume = AudioVolume;//当静音静音开关打开的时候直接返回不播放音效if (AudioMute) return;//获取游戏路径string path = ResourcesMusicDir + "/" + audioName;//加载播放路径获得播放的音乐AudioClip ac= Resources.Load<AudioClip>(path);//进行播放AudioSource.PlayClipAtPoint(ac,playPoint,_audioVolume);}/// <summary>/// 音量/// </summary>public float Volume{get{//返回audiosource的音量值return _audioSource.volume;}set{//控制audiosource的音量值_audioSource.volume = value;}}}
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using Random = UnityEngine.Random;public class UIPlaying : MonoBehaviour
{//所有音乐文件的名字public string[] AllMusicName;//定义按钮private Button btn;//显示音乐名字private Text musicText;//播放到的第几个音乐private int musicId;//音量toggleprivate Toggle _musicToggle;//音乐声音大小private Slider _musicSlider;//女生的坐标public Transform girl;public Transform player;private float a;private void Start(){//获取button组件btn =transform.Find("Back").GetComponent<Button>();//获取音乐文本组件musicText = transform.GetChild(2).GetChild(0).GetComponent<Text>();//获取控制音乐音量的滑动条_musicSlider = transform.GetChild(2).Find("Slider").GetComponent<Slider>();//获取按钮_musicToggle = transform.GetChild(2).Find("Toggle").GetComponent<Toggle>();//注册点击事件_musicToggle.onValueChanged.AddListener(MusicToggleOnChange);//根据播放器更改按钮状态_musicToggle.isOn = !SoundManage.Instance.MusicMute;//给滑动条的值赋给音乐音量_musicSlider.value = SoundManage.Instance.Volume;//存储音乐AllMusicName = new[] {"柳泓泽 - Unstoppable", "柳泓泽 - 漫步人生路", "柳泓泽 - 野狼disco", "柳泓泽 - 不如"};//播放bgmSoundManage.Instance.PlayBgm(AllMusicName[musicId]);//显示音乐名字musicText.text = SoundManage.Instance.musicShowName;//按钮点击事件btn.onClick.AddListener(() =>{LoadScene();});}private void Update(){a = Vector2.Distance(player.position, girl.position);//当人物坐标小于-10if (PlayerController2D.Instance.rig.position.y< -10){//记录人物的坐标PlayerPrefs.SetFloat(PlayerController2D.CURRENTTF_X,PlayerController2D.Instance.CurrentTf_X-10);PlayerPrefs.SetFloat(PlayerController2D.CURRENTTF_Y,8);//记录人物的力和速度if (PlayerController2D.Instance.rig.position.x>25) {PlayerPrefs.SetFloat(PlayerController2D.MOVESPEED,PlayerController2D.Instance.moveSpeed);}else{PlayerPrefs.SetFloat(PlayerController2D.MOVESPEED,2);}if (PlayerController2D.Instance.rig.position.x>50){PlayerPrefs.SetFloat(PlayerController2D.ADDFORCE,PlayerController2D.Instance.addForce);}else{PlayerPrefs.SetFloat(PlayerController2D.ADDFORCE,3200);}//播放音效SoundManage.Instance.PlayAudio("Audio_boos", new Vector2(PlayerController2D.Instance.transform.position.x,0.5f), 1);//激活界面UIManage.Instance.PushUiPanel("UILose");}//当人物坐标大于59if (a<1){//记录人物的坐标PlayerPrefs.SetFloat(PlayerController2D.CURRENTTF_X,-37f);PlayerPrefs.SetFloat(PlayerController2D.CURRENTTF_Y,-0.5f);//记录人物的力和速度PlayerPrefs.SetFloat(PlayerController2D.MOVESPEED,2);PlayerPrefs.SetFloat(PlayerController2D.ADDFORCE,3200);//播放音效SoundManage.Instance.PlayAudio("Audio_congratulations",PlayerController2D.Instance.transform.position,1);//激活界面Invoke("LoadWin",4);}//调节滑动条的值控制声音音量大小SoundManage.Instance.Volume = _musicSlider.value;}public void LoadWin(){UIManage.Instance.PushUiPanel("UIWin");}public void LoadScene(){//加载场景SceneManager.LoadScene(1);}/// <summary>/// 下一首/// </summary>public void PlayerNextMusic(){musicId++;if (musicId>AllMusicName.Length-1){musicId = 0;}//播放音乐SoundManage.Instance.PlayBgm(AllMusicName[musicId]);//显示名字musicText.text = AllMusicName[musicId];}/// <summary>/// 上一首/// </summary>public void PlayerLastMusic(){musicId--;if (musicId<0){musicId = AllMusicName.Length-1;}//播放音乐SoundManage.Instance.PlayBgm(AllMusicName[musicId]);//显示名字musicText.text = AllMusicName[musicId];}/// <summary>/// 音乐开关/// </summary>/// <param name="value"></param>private void MusicToggleOnChange(bool value){SoundManage.Instance.MusicMute = !value;}public void Quit(){//退出Application.Quit();}private void OnApplicationQuit(){Debug.Log("退出游戏");//保留当前的设置PlayerPrefs.SetInt(SoundManage.MUSICMUTE,SoundManage.Instance.MusicMute?1:0);PlayerPrefs.SetInt(SoundManage.AUDIOMUTE,SoundManage.Instance.AudioMute?1:0);PlayerPrefs.SetFloat(SoundManage.VOLUME,SoundManage.Instance.Volume);PlayerPrefs.SetFloat(SoundManage.AUDIOVOLUME,SoundManage.Instance.AudioVolume);PlayerPrefs.SetFloat(PlayerController2D.CURRENTTF_X,PlayerController2D.Instance.CurrentTf_X);PlayerPrefs.SetFloat(PlayerController2D.CURRENTTF_Y,PlayerController2D.Instance.CurrentTf_Y);PlayerPrefs.SetFloat(PlayerController2D.MOVESPEED,PlayerController2D.Instance.moveSpeed);PlayerPrefs.SetFloat(PlayerController2D.ADDFORCE,PlayerController2D.Instance.addForce);}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class UIBase : MonoBehaviour
{/// <summary>/// 进入游戏/// </summary>public virtual void DoOnEnter(){}/// <summary>/// 暂停游戏/// </summary>public virtual void DoOnPause(){}/// <summary>/// 恢复游戏/// </summary>public virtual void DoOnRestart(){}/// <summary>/// 退出游戏/// </summary>public virtual void DoOnExit(){}
}
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;public class UIStart : UIBase
{//获取button组件private Button btn;public override void DoOnEnter(){gameObject.SetActive(true);}public override void DoOnPause(){gameObject.SetActive(false);}public override void DoOnRestart(){gameObject.SetActive(true);//返回的时候播放bgm5SoundManage.Instance.PlayBgm("Audio_bgm_5");}public override void DoOnExit(){gameObject.SetActive(false);}private void Start(){btn = GameObject.Find("StartBtn").GetComponent<Button>();//开始的时候播放bgm5SoundManage.Instance.PlayBgm("Audio_bgm_5");//将其上面加一个主摄像机gameObject.GetComponent<Canvas>().worldCamera= Camera.main;//按钮点击事件btn.onClick.AddListener(() =>{LoadScene();});}public void LoadScene(){//离开去下一个场景的时候清空栈的脚本字典UIManage.Instance.Clear();SceneManager.LoadScene(2);}/// <summary>/// 选项 按钮点击的事件/// </summary>public void GoToOption(){//播放音效SoundManage.Instance.PlayAudio("Audio_misc_4",transform.position,SoundManage.Instance.AudioVolume);//显示ui脚本UIManage.Instance.PushUiPanel("UIOption");}/// <summary>/// 关于 按钮点击的事件/// </summary>public void GoToAbout(){//播放音效SoundManage.Instance.PlayAudio("Audio_misc_4",transform.position,SoundManage.Instance.AudioVolume);//显示ui脚本UIManage.Instance.PushUiPanel("UIAbout");}}
using UnityEngine;
using UnityEngine.UI;public class UIOption : UIBase
{//音乐声音大小private Slider _musicSlider;//音量toggleprivate Toggle _musicToggle;//音效toggleprivate Toggle _audioToggle;//音效声音大小private Slider _audioSlider;private void Awake(){//获取按钮_musicToggle = transform.GetChild(0).GetChild(0).Find("Toggle_Music").GetComponent<Toggle>();_audioToggle = transform.GetChild(0).GetChild(0).Find("Toggle_Audio").GetComponent<Toggle>();//注册点击事件_musicToggle.onValueChanged.AddListener(MusicToggleOnChange);_audioToggle.onValueChanged.AddListener(AudioToggleOnChange);//根据播放器更改按钮状态_musicToggle.isOn = !SoundManage.Instance.MusicMute;_audioToggle.isOn = !SoundManage.Instance.AudioMute;}private void Start(){//获取控制音乐音量的滑动条_musicSlider = GameObject.Find("MusicSlider").GetComponent<Slider>();//给滑动条的值赋给音乐音量_musicSlider.value = SoundManage.Instance.Volume;//获取控制音效音量的滑动条_audioSlider = GameObject.Find("AudioSlider").GetComponent<Slider>();//播放bgm6SoundManage.Instance.PlayBgm("Audio_bgm_6");//给其添加主摄像机gameObject.GetComponent<Canvas>().worldCamera= Camera.main;}public override void DoOnEnter(){gameObject.SetActive(true);}public override void DoOnPause(){gameObject.SetActive(false);}public override void DoOnRestart(){gameObject.SetActive(true);}public override void DoOnExit(){gameObject.SetActive(false);}private void Update(){//调节滑动条的值控制声音音量大小SoundManage.Instance.Volume = _musicSlider.value;//调节滑动条的值控制音效音量大小SoundManage.Instance.AudioVolume = _audioSlider.value;}/// <summary>/// 设置界面返回按钮的点击事件/// </summary>public void GoBack(){//播放音效SoundManage.Instance.PlayAudio("Audio_misc_4",transform.position,SoundManage.Instance.AudioVolume);//返回的时候直接弹出这个界面UIManage.Instance.PopUipanel();}/// <summary>/// 音乐开关/// </summary>/// <param name="value"></param>private void MusicToggleOnChange(bool value){//播放音效SoundManage.Instance.PlayAudio("Audio_misc_4",transform.position,SoundManage.Instance.AudioVolume);SoundManage.Instance.MusicMute = !value;}/// <summary>/// 音效开关/// </summary>/// <param name="value"></param>private void AudioToggleOnChange(bool value){//播放音效SoundManage.Instance.PlayAudio("Audio_misc_4",transform.position,SoundManage.Instance.AudioVolume);SoundManage.Instance.AudioMute = !value;}
}
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class UIAbout :UIBase
{private void Start(){//播放bgm8SoundManage.Instance.PlayBgm("Audio_bgm_8");//给其添加主摄像机gameObject.GetComponent<Canvas>().worldCamera= Camera.main;}public override void DoOnEnter(){gameObject.SetActive(true);}public override void DoOnPause(){gameObject.SetActive(false);}public override void DoOnRestart(){gameObject.SetActive(true);}public override void DoOnExit(){gameObject.SetActive(false);}/// <summary>/// 设置界面返回按钮的点击事件/// </summary>public void GoBack(){//播放音效SoundManage.Instance.PlayAudio("Audio_misc_4",transform.position,SoundManage.Instance.AudioVolume);//返回的时候直接弹出这个界面UIManage.Instance.PopUipanel();}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;public class UILose :UIBase
{public void LoadStart(){UIManage.Instance.PopUipanel();//UIManage.Instance.Clear();SceneManager.LoadScene(1);}
}using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;public class UIWin:UIBase
{public void LoadScene(){UIManage.Instance.PopUipanel();SceneManager.LoadScene(1);}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class QuitGame : MonoBehaviour
{public void Quit(){//退出Application.Quit();}private void OnApplicationQuit(){//保留当前的设置Debug.Log("退出游戏");//保留最后音乐是否静音PlayerPrefs.SetInt(SoundManage.MUSICMUTE,SoundManage.Instance.MusicMute?1:0);//保留最后音效是否静音PlayerPrefs.SetInt(SoundManage.AUDIOMUTE,SoundManage.Instance.AudioMute?1:0);//保留音量的大小PlayerPrefs.SetFloat(SoundManage.VOLUME,SoundManage.Instance.Volume);//保留音效的大小PlayerPrefs.SetFloat(SoundManage.AUDIOVOLUME,SoundManage.Instance.AudioVolume);//保留中途退出最后人物坐标的x值PlayerPrefs.SetFloat(PlayerController2D.CURRENTTF_X,PlayerController2D.Instance.CurrentTf_X);//保留中途退出最后人物坐标的y值PlayerPrefs.SetFloat(PlayerController2D.CURRENTTF_Y,PlayerController2D.Instance.CurrentTf_Y);//保留人物中途退出最后的速度PlayerPrefs.SetFloat(PlayerController2D.MOVESPEED,PlayerController2D.Instance.moveSpeed);//保留人物中途退出跳跃的高度PlayerPrefs.SetFloat(PlayerController2D.ADDFORCE,PlayerController2D.Instance.addForce);}
}
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Serialization;public class ColliderEvents : MonoBehaviour
{//事件public UnityEvent OnColliderHander;public bool HasHead;public bool isSave;public bool isDie;private void OnCollisionEnter2D(Collision2D other){ //当标签为Player时,注册事件if (!other.gameObject.CompareTag("Player")) return;if (HasHead && !PlayerController2D.Instance.isHead){return;}  OnColliderHander.Invoke();Debug.Log(HasHead+"hashead");Debug.Log(PlayerController2D.Instance.isHead+"PlayerController2D.Instance.头");Debug.Log(PlayerController2D.Instance.isGround+"PlayerController2D.Instance.地");}
}
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;public class M_SceneManager : MonoBehaviour
{public static M_SceneManager instance;private void Awake(){instance = this;DontDestroyOnLoad(gameObject);}private void Start(){// PlayerController2D.Instance.gameObject.SetActive(false);SceneManager.sceneLoaded += SceneManger_SceneLoaded;}private void SceneManger_SceneLoaded(Scene arg0, LoadSceneMode arg1){//if (arg0.name=="UIPlaying")//{//PlayerController2D.Instance.gameObject.SetActive(true);//}}/// <summary>/// 当前脚本不可用是/// </summary>private void OnDisable(){SceneManager.sceneLoaded -= SceneManger_SceneLoaded;}
}

UI2D项目代码框架-拯救妹妹相关推荐

  1. 白色flash模块代码_适用于MCU项目的代码框架BabyOS,工程师的好助手!

    来源:码云+嵌入式云IOT技术圈 一个好的代码架构直接影响项目的质量,今天为大家分享的是一个管理功能模块和外设驱动的框架:BabyOS. BabyOS是什么? BabyOS适用于MCU项目,它是一套管 ...

  2. 十九.激光和惯导LIO-SLAM框架学习之项目工程代码介绍---代码框架和一些文件解释

    专栏系列文章如下: 一:Tixiao Shan最新力作LVI-SAM(Lio-SAM+Vins-Mono),基于视觉-激光-惯导里程计的SLAM框架,环境搭建和跑通过程_goldqiu的博客-CSDN ...

  3. 优秀的 Java 项目代码都是如何分层的?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://rrd.me/ej56f 1.背景 2.如何进 ...

  4. 如何阅读一份深度学习项目代码?

    犹豫很久要不要把读代码这个事情专门挑出来写成一篇推文.毕竟读代码嘛,大家可能都会读.而且笔者个人读的和写的代码量也并不足以到指导大家读代码的程度.但笔者还是决定大胆地写一点:就当是给自己设立今后读代码 ...

  5. 深度学习项目代码阅读建议

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|机器学习实验室 犹豫很久要不要把读代码这个事情专门挑出来写 ...

  6. 怎么看懂别人写的单片机项目代码?

    记得刚开始接触代码的时候,总觉得很神秘,也好奇到底是怎样的牛人,才能把这么多复杂的"天书"写出来去. 当时多希望自己一夜之间也拥有这种能力,能自己写代码去把自己的想法通过技术的手段 ...

  7. ICRA2022 | OPV2V: 首个大型自动驾驶协同感知数据集+代码框架已开源

    作者丨叶小飞 编辑丨极市平台 导读 本篇文章提出了首个大型自动驾驶协同感知数据集, 并提供了多达16个模型的综合Benchmark以及一套完整的代码框架,为协同感知这个新领域提供了基准. OPV2V: ...

  8. 如何看懂一个深度学习的项目代码

    搞深度学习的人,两大必备日常除了读论文之外就是读代码. 深度学习项目代码,小到几百行的测试demo,大到成千万行的开源项目,读起来方法肯定各有不同. 如下图Mask R-CNN项目代码和PyTorch ...

  9. 如何学习Python开源项目代码

    2019独角兽企业重金招聘Python工程师标准>>> 阅读Python开源项目代码主要有如下三个原因: 1. 在工作过程中遇到一些问题,Google和StackOverFlow等网 ...

最新文章

  1. Redis之跳跃表(面试重点容易考)
  2. Aurora — 一个在 MSOffice 内输入 LaTeX 公式的很好用插件
  3. 基于BISS0001构成的热释电红外延时照明控制器电路图
  4. format 函数包含_Python成为专业人士笔记-高级对象Format格式化
  5. 计算机教学的弊端,信息技术在教学中的利弊及解决对策
  6. 计算机固态硬盘序列号,固态硬盘检测工具ssdlife pro 2安装教程(附序列号)
  7. 软考软件设计师(知识产权)
  8. Shopee数据获取逻辑
  9. JS中动态创建元素的三种方法
  10. 医疗健康大数据:应用实例与系统分析
  11. 【CodeVS3100】蜗牛
  12. tf 设置多显卡_让显卡再次危机,《孤岛危机》重置版能否找回当年的感动
  13. 水利水电之水利工程测量第二章
  14. PHP之ThinkPHP框架
  15. 抖店无货源如何上架商品?抖店上货教程标题
  16. python初始化二维矩阵
  17. 20、30、40岁女人创业故事
  18. 应用案例 | 不用学PS,属于程序员的修图方式来了!
  19. UE材质编辑器使用自定义ush及函数
  20. priority_queue删除

热门文章

  1. linux支行压缩的文件系统,Linux第八章:文件,文件系统的压缩,打包备份
  2. 通过IP地址和掩码计算地址范围(ipv4/ipv6)
  3. 【2006-3】【分装瓶子】
  4. C语言 getline函数实现
  5. 滑雪在日本 之 新泻篇 2
  6. 基于Java的String字符串基本用法总结
  7. warning C4996: 'strcpy'解决方法
  8. python多线程详解(超详细)
  9. spring boot整合shiro+jjwt
  10. jQuery阻止事件冒泡