@@ -2,6 +2,7 @@ import { getTextSize } from "../../../utils/font";
22import { appScale } from "../../../utils/platform" ;
33import { Color , mixColors } from "../../dataStruct/Color" ;
44import { Vector } from "../../dataStruct/Vector" ;
5+ import { CubicBezierCurve } from "../../dataStruct/shape/Curve" ;
56import { Rectangle } from "../../dataStruct/shape/Rectangle" ;
67import { Settings } from "../../service/Settings" ;
78import { MouseLocation } from "../../service/controlService/MouseLocation" ;
@@ -348,19 +349,55 @@ export namespace Renderer {
348349 for ( const selectedEntity of selectedEntities ) {
349350 const startLocation = selectedEntity . collisionBox . getRectangle ( ) . center ;
350351 const endLocation = Controller . mouseLocation ;
352+ const distance = startLocation . distance ( endLocation ) ;
353+ const height = distance / 2 ;
354+ // 影子
351355 CurveRenderer . renderGradientLine (
352356 transformWorld2View ( startLocation ) ,
353357 transformWorld2View ( endLocation ) ,
354358 Color . Transparent ,
355- Color . Green ,
356- 4 * Camera . currentScale ,
359+ new Color ( 0 , 0 , 0 , 0.2 ) ,
360+ 8 * Camera . currentScale ,
361+ ) ;
362+ CurveRenderer . renderGradientBezierCurve (
363+ new CubicBezierCurve (
364+ transformWorld2View ( startLocation ) ,
365+ transformWorld2View ( startLocation . add ( new Vector ( 0 , - height ) ) ) ,
366+ transformWorld2View ( endLocation . add ( new Vector ( 0 , - height ) ) ) ,
367+ transformWorld2View ( endLocation ) ,
368+ ) ,
369+ StageStyleManager . currentStyle . CollideBoxPreSelectedColor . toTransparent ( ) ,
370+ StageStyleManager . currentStyle . CollideBoxPreSelectedColor . toSolid ( ) ,
371+ 8 * Camera . currentScale ,
372+ ) ;
373+ // 画箭头
374+ const arrowLen = 10 + distance * 0.01 ;
375+ CurveRenderer . renderBezierCurve (
376+ new CubicBezierCurve (
377+ transformWorld2View ( endLocation ) ,
378+ transformWorld2View ( endLocation ) ,
379+ transformWorld2View ( endLocation ) ,
380+ transformWorld2View ( endLocation . add ( new Vector ( - arrowLen , - arrowLen * 2 ) ) ) ,
381+ ) ,
382+ StageStyleManager . currentStyle . CollideBoxPreSelectedColor . toSolid ( ) ,
383+ 8 * Camera . currentScale ,
384+ ) ;
385+ CurveRenderer . renderBezierCurve (
386+ new CubicBezierCurve (
387+ transformWorld2View ( endLocation ) ,
388+ transformWorld2View ( endLocation ) ,
389+ transformWorld2View ( endLocation ) ,
390+ transformWorld2View ( endLocation . add ( new Vector ( arrowLen , - arrowLen * 2 ) ) ) ,
391+ ) ,
392+ StageStyleManager . currentStyle . CollideBoxPreSelectedColor . toSolid ( ) ,
393+ 8 * Camera . currentScale ,
357394 ) ;
358395 }
359396 TextRenderer . renderTextFromCenter (
360397 "Jump To" ,
361- transformWorld2View ( Controller . mouseLocation ) . subtract ( new Vector ( 0 , 30 ) ) ,
398+ transformWorld2View ( Controller . mouseLocation ) . subtract ( new Vector ( 0 , - 30 ) ) ,
362399 16 ,
363- Color . Green ,
400+ StageStyleManager . currentStyle . CollideBoxPreSelectedColor . toSolid ( ) ,
364401 ) ;
365402 }
366403
0 commit comments