算法常用结论
dfs算法中常用的无穷大量:0x3f3f3f3f在函数内声明的数组空间很有限pi = acos(-1.0);数组一般都要初始化,字符一般直接用memset,但是memset对整数只能初始化为0或-1
__gcd()求最大公约数sort()排序函数
bits/stdc++.h编译的时间比几个头文件的时间更长,如果没有很多头文件建议不使用万能头
int n;cin >> n >> k;
while(~–n)std::cout<<(k>>n&1);//把数字按照二进制输出
计算机组成原理1
有关计算机组成原理与门,或门,非门,异或门的电路组成方式逻辑门的构造方法:非门:往往与一个地线相连接或门:往往是并联结构的电路且门:往往是串联结构的电路表示和储存数字1是计算机的重要功能,但是真正的目标是计算,有意义的处理数字,比如把两个数字相加。这些操作由’计算机的算术逻辑单元‘ALU处理…理解了ALU就理解了现代计算机的基石。基本计算机其他所有的部件都使用到了它。ALU由算术单元和逻辑单元组成。可以用逻辑门来做出ALU,下面是用C模拟得到的用二进制的全加器构成的加法器:
#include<cstdio>
using namespace std;
int main(){
bool carrier = 0,sum[8],input1[8],input2[8];
int n1,n2;
printf("欢迎来到8位全加器,请输入两行8位2进制:\n") ;
scanf("%d%d",&n1,&n2);
for(int i = 0; i <= 7; i++){
input1[i] = n1%10;
n1/=10;
inp ...
输入输出
c++有两大输入输出方式,也就是分为流输入输出和格式化输入输出SCANF,PRINTF:优点:格式化输入输出,输入输出的速度比流输入输出更快支持c语言,不需要标准名字空间输入字符串比较方便缺点:使用较不方便(相对于用惯了流输入输出方式来说)使用时要指明数字类型
cin,cout:优点:使用时不用指明数字类型,较为方便缺点:默认为流输入输出,速度慢速度慢速度慢重要的事情说三遍!不容易处理夹杂在数据中的字符串、
那么,有没有什么方式可以挽救cin,cout的速度?答案是有在代码前输入以下命令:
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
算法(c++):快读输入速度 getchar(输入字符)>scanf(格式化输入)>cin(流输入)快读的模板:
int quickRead(){
int a = 0, f = 1;
char c = getchar();
while(c<'0'||c>'9'){
if(c=='-') f=-1;
c=getchar();
& ...
唐老师c#笔
只提供记忆使用
C#基础(选择性)1,枚举1枚举的命名规则一般在名字的前面加上E_2枚举一般申明在namespace下的级别中
3switch语句的贯穿特性合理使用可以将相同枚举类型执行相同的逻辑4字符串转枚举2,数组1new的数组默认值为02int[] arr = new int[] {1 , 2 , 3 , 4},int[] arr = {1 , 2 , 3 , 4},数组大小自动分配3数组的“搬家”4交错数组
3,函数
1值和引用类型
2string作为一个引用类型非常特殊,它具备了值类型的特征,他变我不变,当他重新赋值的时候,会在堆当中重新分配一个内存空间3params变长参数这种方式可以向函数里面传入数量不确定的参数,注意后面必须是数组,可以传入0个参数
C#核心面向对象编程:
封装类的基本概念类的实例化Person p;Person p2 = null;Person p3 = new Person();其中前两行代码只是在栈上申明了内存空间引用类型,并没有分配实际堆上的内存,而后面利用new关键字分配了堆上的内存
Person A; / ...
Unity景深效果
在unity中实现景深效果
让背景,中景,前景等的图片以不同的速度移动。
将下面的脚本放置到对象(背景)上,把cam设为camera来获取camera的坐标,然后进行坐标的操作。
public class Parallax : MonoBehaviour
{
public Transform cam; //获取摄像机的位置
public float moveRate; //跟随的幅度
public bool lockY = false; //是否锁定Y轴
private float startPointX, startPointY;
void Start()
{
startPointX = transform.position.x;
startPointY = transform.position.y;
}
void Update()
{
if (lockY)
{
...
Unity音效系统控制
unity可设置audiosource组件对象添加音源,通过audioClip来获取音效。
这是一个用来控制播放的soundmanager。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SoundManager : MonoBehaviour
{
public AudioSource efxSource;
public AudioSource musicSource;
public static SoundManager instance = null;
public float lowPitchRange = 0.95f;
public float highPitchRange = 1.05f;
void Start()
{
if (instance == null)
instance = this;
else ...
Unity与动画系统
animator搭好并调整角色的四肢,放在一个母对象下。在母对象下,使用animator动画器组件。资源菜单创建动画控制器,移到其动画组件上。用动画器可以调整游戏对象的行为,通过加号按钮可以增加参数,右键结点可以在结点里建立过渡。动画可以让你在灵活地调整动画对象的行为,可以导入动画或者在unity内自定义动画,可以对一个角色添加多个动画。Entry节点是Animator变为活动状态并且开始在这里评估状态机。黄色的节点是默认状态。
过度菜单有一个 Has Exit Time,这意味这,一旦我们到了原状态,一秒之后就结束,他将会自动转换。
blend tree创建过渡只能用Greater和less两个条件。blend tree可以使用区间。创建blend后双击,可以进入blend tree的检视菜单。到里面兴建运动域,然后把你的动画放上,可以调节动画播放的时间和过度效果blend tree有很多优点,详情可以查看官方文档。
Unity检测物体
OnCollisionEnter函数和OnTriggerEnter函数
这篇文章对这两种函数有很好的诠释:
作者:THE_ZERO来源:CSDN原文:https://blog.csdn.net/tianyao9hen/article/details/53141141
OnTriggerEnter和OnCollisionEnter的触发条件是不同的,需要在设计的过程中加以关注。
触发的共同要求碰撞的两个物体A,B,都要有碰撞体(collider),Box Collider,Sphere Collider,Capsule Collider等的任意一种
当A,B都添加刚体(Rigidbody)时OnCollisionEnter方法A和Bx相互碰撞时,无论是谁碰撞的谁,两者都能触发OnCollisionEnter方法,前提是两者都没有勾选isTrigger。OnTriggerEnter方法A或者B中有一个勾选isTrigger或者两者都勾选isTrigger后,A和B都可以触发OnTriggerEnter方法,但是不可进入OnCollisionEnter方法。注意:
OnCollision ...
unity 模拟简单血条
需要用到gui的slider组件。
首先我们需要一个用来作为血条的sprite,当然你可以多加一个sprite作为血条的背景。新建一个slider组件。
仅保留slider内的background组件,其余删除,看情况取舍。更改imageType为Filled,填充类型为horizontal。
将画好的图片拖到background的image中,然后将carvas的渲染模式改成WorldSpace。
调整大小,位置。
在background下添加脚本,如下void Update() { if (Input.GetKeyDown(KeyCode.J)) GetComponent().fillAmount -= 0.1; //按下J键,血条减少百分之10(在value为1的情况); }触发条件不一定是按键控制,按自己需要去弄
unity 实现简单场景控制
unity类里包含有很多场景控制的方法一般要包含 scenemanage 头文件
一些简单的指令:Application.Quit(); //退出游戏SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1); //移动到下标为buildIndex的场景,下标可以在buildSetting里设置。SceneManager.LoadScene(1); //加载下标为1的场景
一些效果的实现方法
加载游戏:在触发loadScene函数的时候激发loadUI就行。
实现全部游戏画面暂停: Time.timeScale = 0; //其实就是时停嘛Kora!