摘要:今天在项目中看到了“点到线段最短距离”的函数:float GetDistanceToLine(Vector2 point, Vector2 p0, Vector2 p1){ //2D Vector2 v = p1 - p0; Vector2 w = point - p0; float c1 = Vector2.Dot(w,v); if ( c1 <= 0 ) return w.Length(); float c2 = Vector2.Dot(v); if ( c2 <= c1 ) return Vector2.Distance(p...
阅读全文
摘要:通常我们使用的随机函数是返回一个32位的取值范围为[0,0x7FFFFFFF) /*2147483647*/的随机数。因为目前我们所使用的随机数生成都是伪随机数(伪随机数是以相同的概率从一组有限的数字中选取的,所选数字并不具有完全的随机性。),所以会造成分布不均的情况。但是,如果生成的随机数能均匀分布的话(0~0x7FFFFFFF出现的概率一样),问题就解决了吗?先看下面代码: class Random { int index = 0; int []array; public Random(int len) { ...
阅读全文
摘要:在做简单2D RPG游戏时,可能会遇到NPC与玩家对话的情况。如何判定NPC能否和玩家对话,一般有两个条件:1. NPC在玩家附近(地图中相邻的格子中)2. NPC和玩家面对面通常会写如下代码: 1 enum SpriteDirection 2 { 3 UP, 4 DOWN, 5 LEFT, 6 RIGHT, 7 } 8 9 public bool CanTalk(NPC npc)10 {11 return Nearest(npc) && FaceToFace(npc);12 }13 14 public bool Nearest(npc)15 {16 ...
阅读全文