做2D游戏的时候碰上摄像机要跟随人物时要防止摄像机看到界面外的黑幕,直接上代码. using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> /// 控制在老师身上摄像机的位置,防止看到场景外的黑幕 /// </summary> public class objectCameraLimit : MonoBehaviour { public float[] c
矩形包围盒算法:检测2个矩形是否重叠,在这样情况下要判断2个矩形是否碰撞只需要比较两个矩形顶点的坐标即可.假设矩形A用(x1,y1)表示左上角,(x2,y2)表示右下角,矩形B用(x3,y3)表示左上角,(x4,y4)表示右下角,则满足下列条件则表示没有碰撞,反之则碰撞.没碰撞:x1>x4或者x2<x3.没碰撞:y1>y4或者y2<y3 var ABBox = function(tBox1,tBox2){ var x1 = tBox1.x, y1 = tBox1.y, x2 = t
注意到怎么换都行,但是如果把某个黑方块用在对角线上,它原来所在的行列的的黑方块就都不能用 所以要选出n组不重的行列组合,这里用匈牙利算法做二分图匹配即可(用了时间戳优化) #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int N=405; int T,n,cnt,h[N],lk[N],v[N],ti; struct qwe { int ne,to; }e[
先上代码 using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraFollow : MonoBehaviour { //摄像机与主角的直线距离 ; //横向角度 ; //纵向角度 / ; //目标物体 public GameObject target; //横向旋转速度 public float rotSpeed = 0.2f; //纵向旋转速度 publi
没啥可说的,就是一边属性一边道具建二分图,把两个属性都连到道具上,然后枚举匹配,如果无法匹配就输出,时间戳优化 #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int N=1000005; int n,x,y,h[N],cnt,lk[N],v[N],ti; struct qwe { int ne,to; }e[N<<1]; int read()