public static void MyDrawPage() { MyDraw = MyMenu.AddSubMenu("Draw settings", "Draw"); MyDraw.AddGroupLabel("Draw Settings:"); MyDraw.Add("nodraw", new CheckBox("No Display Drawing", false)); MyDraw.Add("onlyReady", new CheckBox("Display only Ready", true)); MyDraw.AddSeparator(); MyDraw.Add("draw.Q", new CheckBox("Draw Tentacle Smash Range (Q Spell)", true)); MyDraw.Add("draw.W", new CheckBox("Draw Harsh Lesson Range (W Spell)", true)); MyDraw.Add("draw.E", new CheckBox("Draw Test of Spirit Range (E Spell)", true)); MyDraw.Add("draw.R", new CheckBox("Draw Leap of Faith Range (R Spell)", true)); MyDraw.AddSeparator(); MyDraw.AddLabel("Informations About the allies:"); MyDraw.Add("allyhp", new CheckBox("Draw HP info")); MyDraw.AddSeparator(); MyDraw.AddGroupLabel("Pro Tips"); MyDraw.AddLabel(" - Uncheck the boxeses if you wish to dont see a specific draw"); }
void OnDrawGizmos() { if (player && DEBUG) { // Final position MyDraw.DrawCircle(finalPosition - Vector3.up * finalPosition.y, 2, Color.yellow); // Draw camera Position MyDraw.DrawCross(transform.position - Vector3.up * transform.position.y, 1, Color.yellow); // Forward attractor MyDraw.DrawSquare(forwardAttractor, 0.5f, Color.green); Debug.DrawLine(player.position, forwardAttractor, Color.green); // // Snake body attractor // Gizmos.color = Color.red; // Gizmos.DrawWireCube( snakeBodyAttractor, Vector3.one ); // // Influence range // Gizmos.DrawWireSphere( transform.position - Vector3.up * transform.position.y, outerRing ); // Gizmos.DrawWireSphere( transform.position - Vector3.up * transform.position.y, innerRing ); // Gizmos.color = Color.red; // Gizmos.DrawWireSphere( worldPos, 1f ); } }
/// <summary> /// 判定の描画 /// </summary> /// <returns></returns> public override bool Draw() { if (_endmillis < now.millis) { return(false); } int x = datacalc.ScreenCenterLine; if (now.millis - _startmillis < 100) { MyDraw.SetDrawBlendMode(DX.DX_BLENDMODE_ALPHA, (int)((now.millis - _startmillis) * 2.5)); if (_lr == CdjData.Left) { x -= (int)((100 - now.millis + _startmillis) * 2); } else { x += (int)((100 - now.millis + _startmillis) * 2); } } MyDraw.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0); if (_endmillis - now.millis < 250) { MyDraw.SetDrawBlendMode(DX.DX_BLENDMODE_ALPHA, (int)((_endmillis - now.millis))); } GraphicObject o = GraphicObject.GetGraphicObject(enumgraphic); MyDraw.DrawZoomRotate(enumgraphic, new MyDraw.DrawZoomParam(x, (int)(datacalc.JudgeLineY - 20 - o.height * _zoom), _zoom, 0, EnumPriority.JudgeObject)); //if(drawobj != null) //{ // drawobj.DrawZoomRotate(x, (int)(datacalc.JudgeLineY - 20 - drawobj.height * _zoom), _zoom, 0); //} MyDraw.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0); return(true); }
public float Wander(Transform transform) { Vector3 circleCenter = transform.position + transform.forward * Mathf.Sqrt(2) * strength; // Change wander direction // if( Time.frameCount%3 == 0 ) directionAngle += Random.Range(-rate, rate); // Find location to steer towards Vector3 directionVector = transform.forward * strength; directionVector = Quaternion.Euler(0, directionAngle, 0) * directionVector; // DEBUG // MyDraw.DrawCircle( circleCenter, 1, Color.black ); MyDraw.DrawCircle(circleCenter, strength, Color.white * 0.6f); Debug.DrawRay(circleCenter, directionVector, Color.white * 0.6f); if (Time.frameCount % 10 == 0) { // Steer towards wander location return(SteerToTarget(transform, circleCenter + directionVector)); } else { return(0); } }
// DEBUG /////////////////////////////////////////////////////////////// void OnDrawGizmos() { if (CameraSystem.DEBUG) { MyDraw.DrawCircle(transform.position, innerRange, Color.white); MyDraw.DrawCircle(transform.position, outerRange, Color.white); } }
public static void Draw() { MyDraw.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0); MyDraw.Draw(EnumGraphic.FRAME, new MyDraw.DrawParam(0, datacalc.JudgeLineY, EnumPriority.Frame)); MyDraw.DrawModi(EnumGraphic.LINEJUDGE, new MyDraw.DrawModiParam(0, datacalc.JudgeLineY, datacalc.ScreenWidth, 2, EnumPriority.Frame)); //_frame.Draw(0, datacalc.JudgeLineY); ////_rainbow.DrawModi(0, datacalc.JudgeLineY,datacalc.ScreenWidth,2,rcount++); //rcount = rcount % 8; //DX.DrawGraph(0, datacalc.JudgeLineY, GHframe, DX.TRUE); }
/// <summary> /// 左上、右上、右下、左下を指定してそこに変形描画 /// </summary> /// <param name="p1"></param> /// <param name="p2"></param> /// <param name="p3"></param> /// <param name="p4"></param> private static void DrawModi(EnumGraphic enumgraphic, Point p1, Point p2, Point p3, Point p4, int num, EnumPriority priority, EnumBLEND blend, int blendparam) { GraphicObject o = GraphicObject.GetGraphicObject(enumgraphic); MyDraw.DrawModiGraph( p1.X, p1.Y, p2.X, p2.Y, p3.X, p3.Y, p4.X, p4.Y, o.GHandle(frame, num), priority, blend, blendparam); }
protected override Phase update() { MyDraw.DrawScreen(DX.GetColor(100, 255, 100)); DX.DrawString(0, 0, "東風戦", DX.GetColor(0, 0, 0)); if (key.IsPressed(DX.KEY_INPUT_RETURN)) { return(new EastWindPhase()); } return(this); }
/// <summary> /// レコード消失エフェクトの描画 /// </summary> /// <returns></returns> public override bool Draw() { if (_endmillis < now.millis) { return(false); } double zoom = (1 - ((double)(now.millis - _startmillis) / (_endmillis - _startmillis))); MyDraw.SetDrawBlendMode(DX.DX_BLENDMODE_ADD, (int)(zoom * 180)); MyDraw.DrawZoomRotate(enumgraphic, new MyDraw.DrawZoomParam(_x, _y, zoom * 2.5, 0, EnumPriority.Particle)); //drawobj.DrawZoomRotate(_x, _y, zoom * 2.5, 0); MyDraw.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0); return(true); }
/// <summary> /// 配列版の描画Align指定付き /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="num"></param> /// <param name="tmpalign"></param> private static void Draw(EnumGraphic enumgraphic, int x, int y, int num, EnumAlign tmpalign, EnumPriority priority, EnumBLEND blend, int blendparam) { int dx, dy; GraphicObject o = GraphicObject.GetGraphicObject(enumgraphic); if (tmpalign == EnumAlign.NONE) { dx = o.dx; dy = o.dy; } else { o.GetAlignDeltaXY(tmpalign, out dx, out dy); } MyDraw.DrawGraph(x + dx, y + dy, o.GHandle(frame, num), priority, blend, blendparam); }
//////////////////////////////////////////////////////// EO GET DATA ALONG SKELETON // // DEBUG METHODS //////////////////////////////////////////////////////// // Draw joints and bones of skeleton data for debugging pursposes public void Draw(bool drawBones = true, bool drawJoints = true) { if (joints.Count > 0) { // Draw first, head point Vector3 a; Vector3 b; // Debug.Log( joints[0] ); if (drawJoints) { // MyDraw.DrawLineThroughPoint( joints[ joints.Count-1 ], Color.green ); // draw last joint MyDraw.DrawLineThroughPoint(joints[0], Vector3.forward, Color.green); // draw first joint } for (int i = 0; i < joints.Count - 1; i++) { // Get current and next joint a = joints[i]; b = joints[i + 1]; // Draw bones if (drawBones) { Debug.DrawLine(a, b, Color.red); } // Draw joints if (drawJoints) { MyDraw.DrawLineThroughPoint(b, Vector3.forward, Color.blue); } } } // // Draw unit markers // float alreadyMarkedDistance = 0; // while( alreadyMarkedDistance < length ) { // SkeletonPointData data = GetPointOnSkeleton( alreadyMarkedDistance ); // MyDraw.DrawLine( data.point, Color.blue, r/3) ; // alreadyMarkedDistance += 1; // } }
public static void MyDrawPage() { MyDraw = MyMenu.AddSubMenu("Draw settings", "Draw"); MyDraw.AddGroupLabel("Draw Settings:"); MyDraw.Add("nodraw", new CheckBox("No Display Drawing", false)); MyDraw.Add("onlyReady", new CheckBox("Display only Ready", true)); MyDraw.AddSeparator(); MyDraw.Add("draw.Q", new CheckBox("Draw Death Sentence Range (Q Spell)", true)); MyDraw.Add("draw.W", new CheckBox("Draw Dark Passage Range (W Spell)", true)); MyDraw.Add("draw.E", new CheckBox("Draw Flay Range (E Spell)", true)); MyDraw.Add("draw.R", new CheckBox("Draw The Box Range (R Spell)", true)); MyDraw.AddSeparator(); MyDraw.AddLabel("Informations About the allies:"); MyDraw.Add("allyhp", new CheckBox("Draw HP info")); MyDraw.AddSeparator(); MyDraw.AddGroupLabel("Pro Tips"); MyDraw.AddLabel(" - Uncheck the boxes if you wish to dont see a specific draw"); }
public static void MyDrawPage() { MyDraw = MyMenu.AddSubMenu("Draw settings", "Draw"); MyDraw.AddGroupLabel("Draw Settings:"); MyDraw.Add("nodraw", new CheckBox("No Display Drawing", false)); MyDraw.Add("onlyReady", new CheckBox("Display only Ready", true)); MyDraw.AddSeparator(); MyDraw.Add("draw.Q", new CheckBox("Draw Arctic Assault Range (Q Spell)", true)); MyDraw.Add("draw.W", new CheckBox("Draw Flail of the Northern Winds Range (W Spell)", true)); MyDraw.Add("draw.E", new CheckBox("Draw Permafrost Range (E Spell)", true)); MyDraw.Add("draw.R", new CheckBox("Draw Glacial Prison Range (R Spell)", true)); MyDraw.AddSeparator(); MyDraw.AddLabel("Informations About the allies:"); MyDraw.Add("allyhp", new CheckBox("Draw HP info", false)); MyDraw.AddSeparator(); MyDraw.AddGroupLabel("Pro Tips"); MyDraw.AddLabel(" - Uncheck the boxeses if you wish to dont see a specific draw"); }
public static void MyDrawPage() { MyDraw = MyMenu.AddSubMenu("Draw settings", "Draw"); MyDraw.AddGroupLabel("Draw Settings:"); MyDraw.Add("nodraw", new CheckBox("No Display Drawing", false)); MyDraw.Add("onlyReady", new CheckBox("Display only Ready", true)); MyDraw.AddSeparator(); MyDraw.Add("draw.Q", new CheckBox("Draw Lay Waste Range (Q Spell)", true)); MyDraw.Add("draw.W", new CheckBox("Draw Wall of Pain Range (W Spell)", true)); MyDraw.Add("draw.E", new CheckBox("Draw Defile Range (E Spell)", true)); MyDraw.Add("draw.R", new CheckBox("Draw Requiem Range (R Spell)", true)); MyDraw.AddSeparator(); MyDraw.AddLabel("Informations About the enemies:"); MyDraw.Add("alert.R", new CheckBox("Draw R Notification when Ult can kill a Enemy")); MyDraw.AddSeparator(); MyDraw.AddGroupLabel("Pro Tips"); MyDraw.AddLabel(" - Uncheck the boxes if you wish to dont see a specific draw"); }
public override bool Draw() { //double deltasec = -0.1; double sec = (double)(now.millis - this._startmillis) / 100; double millis = now.millis - this._startmillis; if (now.millis > this._endmillis) { return(false); } { if (sec > 0) { int y = (int)(_y + sec * _vy + G * sec * sec); int x = (int)(_x + sec * _vx); if (x > 0 && x < datacalc.ScreenWidth && y > 0 && y < datacalc.ScreenHeight) { int toumei = (int)((this._endmillis - now.millis) * 2); if (toumei > 250) { MyDraw.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0); } else { MyDraw.SetDrawBlendMode(DX.DX_BLENDMODE_ADD, (int)(toumei)); } MyDraw.DrawZoomRotate(EnumGraphic.PARTICLESTARGREEN, new MyDraw.DrawZoomParam(x, y, 1, (int)((millis * _angle / 60) % 360), EnumPriority.Particle)); //particle.DrawZoomRotate(x, y, 1, (int)((millis * _angle / 60) % 360), (int)((millis / 50) % 3)); return(true); } else { return(false); } } else { return(true); } } }
void OnDrawGizmos() { // ITEM SLOTS DEBUG /////////////////////////////////////////////////////////////// if (cellList != null) { foreach (SnakeBodyCell cell in cellList) { if (cell == firstEmptyCell) { MyDraw.DrawCircle(cell.transform.position, 0.5f, Color.blue); } if (cell == currentItemCell) { MyDraw.DrawCircle(cell.transform.position, 0.3f, Color.red); } } } //////////////////////////////////////////////////////////// EO ITEM SLOTS DEBUG // }
//////////////////////////////////////////////////////////// EO SPAWNER CONTROLS // // DEBUG /////////////////////////////////////////////////////////////// // Draw spawner area range void OnDrawGizmos() { if (area) { // Draw invisible layer to enable interactive selection in editor Gizmos.color = new Color(1, 0, 0, 0f); Gizmos.DrawSphere(transform.position, range); // Draw wireframe // Gizmos.color = Color.red; // Gizmos.DrawWireSphere( transform.position, range ); MyDraw.DrawCircle(transform.position, range, Color.red); } else { // Draw invisible layer to enable interactive selection in editor Gizmos.color = new Color(1, 0, 0, 0f); Gizmos.DrawCube(transform.position, Vector3.one); // Draw wireframe Gizmos.color = Color.red; Gizmos.DrawWireCube(transform.position, Vector3.one); } }
/// <summary> /// リストに溜め込んだものを全て描画してリストをクリア /// 毎フレーム呼ぶ /// </summary> public static void Flush() { DX.ClearDrawScreen(); EnumBLEND preblend = EnumBLEND.NOBLEND; int preblendvalue = -1; lstDrawObject.Sort(new DrawItem()); foreach (DrawItem obj in lstDrawObject) { if (preblend != obj.blend || preblendvalue != obj.blendparam) { MyDraw.SetDrawBlendMode((int)obj.blend, obj.blendparam); } switch (obj.drawmode) { case EnumDraw.DrawGraph: DX.DrawGraph(obj.xy.X, obj.xy.Y, obj.gh, DX.TRUE); break; case EnumDraw.DrawModiGraph: DX.DrawModiGraph(obj.xy.X, obj.xy.Y, obj.xy2.X, obj.xy2.Y, obj.xy3.X, obj.xy3.Y, obj.xy4.X, obj.xy4.Y, obj.gh, DX.TRUE); break; case EnumDraw.DrawRectGraph: DX.DrawRectGraph(obj.xy.X, obj.xy.Y, obj.xy2.X, obj.xy2.Y, obj.wh.X, obj.wh.Y, obj.gh, DX.TRUE, DX.FALSE); break; case EnumDraw.DrawRotaGraph: DX.DrawRotaGraph(obj.xy.X, obj.xy.Y, obj.zoom, obj.angle, obj.gh, DX.TRUE); break; } } DX.ScreenFlip(); lstDrawObject.Clear(); frame++; // 画面をクリア }
private static void MyDrawPage() { MyDraw = MyMenu.AddSubMenu("Draw settings", "Draw"); MyDraw.AddGroupLabel("Draw Settings:"); MyDraw.Add("nodraw", new CheckBox("No Display Drawing", false)); MyDraw.Add("onlyReady", new CheckBox("Display only Ready")); MyDraw.AddSeparator(); MyDraw.Add("draw.Q", new CheckBox("Draw Rapid Fire Range (Q Spell)")); MyDraw.Add("draw.W", new CheckBox("Draw Rocket Jump Range (W Spell)")); MyDraw.Add("draw.E", new CheckBox("Draw Explosive Charge Range (E Spell)")); MyDraw.Add("draw.R", new CheckBox("Draw Buster Shot Range (R Spell)")); MyDraw.Add("draw.T", new CheckBox("Draw Wards Position")); MyDraw.AddSeparator(); MyDraw.AddGroupLabel("Pro Tips"); MyDraw.AddLabel(" - Uncheck the boxeses if you wish to dont see a specific draw"); }
private static void MyDrawPage() { MyDraw = MyMenu.AddSubMenu("Draw settings", "Draw"); MyDraw.AddGroupLabel("Draw Settings:"); MyDraw.Add("nodraw", new CheckBox("No Display Drawing", false)); MyDraw.Add("onlyReady", new CheckBox("Display only Ready")); MyDraw.AddSeparator(); MyDraw.Add("draw.Q", new CheckBox("Draw Terrify Range (Q Spell)")); MyDraw.Add("draw.W", new CheckBox("Draw Drain Range (W Spell)")); MyDraw.Add("draw.E", new CheckBox("Draw Dark Wind Range (E Spell)")); MyDraw.Add("draw.R", new CheckBox("Draw Crowstorm Range (R Spell)")); MyDraw.Add("draw.T", new CheckBox("Draw Wards Position")); MyDraw.AddSeparator(); MyDraw.AddGroupLabel("Pro Tips"); MyDraw.AddLabel(" - Uncheck the boxeses if you wish to dont see a specific draw"); }
private static void MyDrawPage() { MyDraw = MyMenu.AddSubMenu("Draw settings", "Draw"); MyDraw.AddGroupLabel("Draw Settings:"); MyDraw.Add("nodraw", new CheckBox("No Display Drawing", false)); MyDraw.Add("onlyReady", new CheckBox("Display only Ready")); MyDraw.AddSeparator(); MyDraw.Add("draw.Q", new CheckBox("Draw Duskbringer Range (Q Spell)")); MyDraw.Add("draw.W", new CheckBox("Draw Shroud of Darkness Range (W Spell)")); MyDraw.Add("draw.E", new CheckBox("Draw Unspeakable Horror Range (E Spell)")); MyDraw.Add("draw.R", new CheckBox("Draw Paranoia Range (R Spell)")); MyDraw.Add("draw.T", new CheckBox("Draw Wards Position")); MyDraw.AddSeparator(); MyDraw.AddGroupLabel("Pro Tips"); MyDraw.AddLabel(" - Uncheck the boxeses if you wish to dont see a specific draw"); }
private static void MyDrawPage() { MyDraw = MyMenu.AddSubMenu("Draw settings", "Draw"); MyDraw.AddGroupLabel("Draw Settings:"); MyDraw.Add("nodraw", new CheckBox("No Display Drawing", false)); MyDraw.Add("onlyReady", new CheckBox("Display only Ready")); MyDraw.AddSeparator(); MyDraw.Add("draw.Q", new CheckBox("Draw Dance of arrows Range (Q Spell)")); MyDraw.Add("draw.W", new CheckBox("Draw Wolf's Frenzy Range (W Spell)")); MyDraw.Add("draw.E", new CheckBox("Draw Mounting Dread Range (E Spell)")); MyDraw.Add("draw.R", new CheckBox("Draw Lamb's Respite Range (R Spell)")); MyDraw.Add("draw.T", new CheckBox("Draw Wards Position")); MyDraw.AddSeparator(); MyDraw.AddGroupLabel("Pro Tips"); MyDraw.AddLabel(" - Uncheck the boxeses if you wish to dont see a specific draw"); }
private static void MyDrawPage() { MyDraw = MyMenu.AddSubMenu("Draw settings", "Draw"); MyDraw.AddGroupLabel("Göster Ayarlarý:"); MyDraw.Add("nodraw", new CheckBox("Gösterme hiçbirþey", false)); MyDraw.Add("onlyReady", new CheckBox("Hazýrsa göster")); MyDraw.AddSeparator(); MyDraw.Add("draw.Q", new CheckBox("Q Göster")); MyDraw.Add("draw.W", new CheckBox("W Göster")); MyDraw.Add("draw.E", new CheckBox("E Göster")); MyDraw.Add("draw.R", new CheckBox("R Göster")); MyDraw.Add("draw.T", new CheckBox("Ward atýlan yerleri göster")); MyDraw.AddSeparator(); MyDraw.AddGroupLabel("Pro Tips"); MyDraw.AddLabel(" - Uncheck the boxeses if you wish to dont see a specific draw"); }
private static void MyDrawPage() { MyDraw = MyMenu.AddSubMenu("Draw settings", "Draw"); MyDraw.AddGroupLabel("Draw Settings:"); MyDraw.Add("nodraw", new CheckBox("No Display Drawing", false)); MyDraw.Add("onlyReady", new CheckBox("Display only Ready")); MyDraw.AddSeparator(); MyDraw.Add("draw.Q", new CheckBox("Draw Overload Range (Q Spell)")); MyDraw.Add("draw.W", new CheckBox("Draw Rune Prison Range (W Spell)")); MyDraw.Add("draw.E", new CheckBox("Draw Spell Flux Range (E Spell)")); MyDraw.Add("draw.R", new CheckBox("Draw Desperate Power Range (R Spell)")); MyDraw.Add("draw.T", new CheckBox("Draw Wards Position")); MyDraw.AddSeparator(); MyDraw.AddGroupLabel("Pro Tips"); MyDraw.AddLabel(" - Uncheck the boxeses if you wish to dont see a specific draw"); }
private static void MyDrawPage() { MyDraw = MyMenu.AddSubMenu("Draw settings", "Draw"); MyDraw.AddGroupLabel("Draw Settings:"); MyDraw.Add("nodraw", new CheckBox("No Display Drawing", false)); MyDraw.Add("onlyReady", new CheckBox("Display only Ready")); MyDraw.AddSeparator(); MyDraw.Add("draw.Q", new CheckBox("Draw Ice Shard Range (Q Spell)")); MyDraw.Add("draw.W", new CheckBox("Draw Ring of Frost Range (W Spell)")); MyDraw.Add("draw.E", new CheckBox("Draw Glacial Path Range (E Spell)")); MyDraw.Add("draw.R", new CheckBox("Draw Frozen Tomb Range (R Spell)")); MyDraw.Add("draw.T", new CheckBox("Draw Wards Position")); MyDraw.AddSeparator(); MyDraw.AddGroupLabel("Pro Tips"); MyDraw.AddLabel(" - Uncheck the boxeses if you wish to dont see a specific draw"); }
public static void Draw() { int y = (int)(now.judgementlinestep / datacalc.beatresolution); for (int n = 0; n < 5; n++) { if ((y + n) % 4 == 0) { if (now.dot % 2 == 1) { MyDraw.DrawModi(EnumGraphic.LINEMEASURE, new MyDraw.DrawModiParam(0, datacalc.realtimey(now.dot, (y + n) * datacalc.beatresolution), datacalc.ScreenWidth, 2, EnumPriority.Frame)); } //_measure.DrawModi(0, datacalc.realtimey(now.dot, (y + n) * datacalc.beatresolution), datacalc.ScreenWidth, 2); } else { if (now.dot % 2 == 0) { MyDraw.DrawModi(EnumGraphic.LINEBEAT, new MyDraw.DrawModiParam(0, datacalc.realtimey(now.dot, (y + n) * datacalc.beatresolution), datacalc.ScreenWidth, 2, EnumPriority.Frame)); } //_beat.DrawModi(0, datacalc.realtimey(now.dot, (y + n) * datacalc.beatresolution), datacalc.ScreenWidth, 2); } } }
//////////////////////////////////////////////////////////// EO ADD/REMOVE ATTRATORS FROM LIST // public static Vector3 GetAttractorsVector(Vector3 playerPos, Vector3 forwardPos) { Vector3 sumVector = Vector3.zero; int count = 0; // Loop trough all attractors foreach (CameraAttractor attractor in attractors) { Color color = Color.white * 2 / 3; Vector3 targetVector = playerPos; Vector3 targetHalf = playerPos; Vector3 forwardHalf = playerPos; float dis = (playerPos - attractor.transform.position).magnitude; float influence = 0; // Calculate influence value from distance of target from center of attractor // 1) Out of range if (dis > attractor.outerRange) { influence = 0; } else { // 2) Outer ring area if (dis < attractor.outerRange && dis > attractor.innerRange) { influence = 1 - (dis - attractor.innerRange) / (attractor.outerRange - attractor.innerRange); } // 3) Inner area else if (dis < attractor.innerRange) { influence = 1; targetVector = attractor.transform.position; } // Half point between player and its forward vector forwardHalf = Vector3.Lerp(playerPos, forwardPos, 1 - influence); if (CameraSystem.DEBUG) { MyDraw.DrawCircle(forwardHalf, 0.5f / 2, Color.green); } // Get point on line between target and attractor (with influence) targetVector = Vector3.Lerp(forwardHalf, attractor.transform.position, influence); if (CameraSystem.DEBUG) { MyDraw.DrawSquare(targetVector, 0.5f, color); } // Half point between player and target vector targetHalf = Vector3.Lerp(forwardHalf, targetVector, influence); if (CameraSystem.DEBUG) { MyDraw.DrawCircle(targetHalf, 0.5f / 2, Color.white * 2 / 3); } // DRAW DEBUG if (CameraSystem.DEBUG) { Debug.DrawLine(forwardHalf, attractor.transform.position, color); } // Add vector to sum of attractor vectors // and count how many have been added (for averaging purposes) sumVector += targetHalf; count++; } } // Return average vector of all attractors if (count == 0) { return(forwardPos); } return(sumVector / count); }
/// <summary> /// 拡大、回転表示(x,y)が中心座標になるのでalignのDelta(dx,dy)値は無視 /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="zoom">1で元のまま</param> /// <param name="angle">0で元のままラジアン指定</param> private static void DrawZoomRotate(EnumGraphic enumgraphic, int x, int y, double zoom, double angle, int num, EnumPriority priority, EnumBLEND blend, int blendparam) { GraphicObject o = GraphicObject.GetGraphicObject(enumgraphic); MyDraw.DrawRotaGraph(x, y, zoom, angle, o.GHandle(frame, num), priority, blend, blendparam); }
/// <summary> /// 配列版の描画(上一部分だけ描画 /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="num">配列番号</param> private static void DrawUpperRect(EnumGraphic enumgraphic, int x, int y, int num, int upperheight, EnumPriority priority, EnumBLEND blend, int blendparam) { GraphicObject o = GraphicObject.GetGraphicObject(enumgraphic); MyDraw.DrawRectGraph(x + o.dx, y + o.dy, 0, 0, o.width, upperheight, o.GHandle(frame, num), priority, blend, blendparam); }