javafx - 在javafx中画一条带过渡的线
问题描述
我正在用 JavaFX 制作井字游戏,我想用过渡画一条胜利线。我在 youtube、StackOverflow 等上进行了搜索,但找不到解决方案。
这是drawline函数的代码
private void drawLine()
{
List<Integer> winningMoves;
if (getTurn() == player1) {
winningMoves = Result.getPlayer1moves();
} else {
winningMoves = Result.getPlayer2moves();
}
Collections.sort(winningMoves);
int startX = 35, startY = 35, endX = 35, endY = 35;
switch (winningMoves.get(0)) {
case 1:
startX += 50 + 15;
startY += 50 + 15 + 15;
switch (winningMoves.get(2)) {
case 3:
endX += 50 + 15 + 70 + 30 + 70 + 30;
endY += 50 + 15 + 15;
break;
case 7:
endX += 50 + 15;
endY += 50 + 15 + 15 + 70 + 30 + 70 + 30;
break;
case 9:
endX += 50 + 15 + 70 + 30 + 70 + 30;
endY += 50 + 15 + 15 + 70 + 30 + 70 + 30;
break;
}
break;
case 2:
startX += 50 + 15 + 70 + 30;
startY += 50 + 15 + 15;
endX += 50 + 15 + 70 + 30;
endY += 50 + 15 + 70 + 30 + 70 + 30 + 15;
break;
case 3:
startX += 50 + 15 + 70 + 30 + 70 + 30;
startY += 50 + 15 + 15;
switch (winningMoves.get(2)) {
case 7:
endX += 50 + 15;
endY += 50 + 15 + 15 + 70 + 30 + 70 + 30;
break;
case 9:
endX += 50 + 15 + 70 + 30 + 70 + 30;
endY += 50 + 15 + 15 + 70 + 30 + 70 + 30;
break;
}
break;
case 4:
startX += 50 + 15;
startY += 50 + 15 + 15 + 70 + 30 + 15;
endX += 50 + 15 + 70 + 30 + 70 + 30;
endY += 50 + 15 + 70 + 30 + 15;
break;
case 7:
startX += 50 + 15;
startY += 50 + 15 + 15 + 70 + 30 + 70 + 30;
endX += 50 + 15 + 70 + 30 + 70 + 30;
endY += 50 + 15 + 15 + 70 + 30 + 70 + 30;
break;
}
line.setStartX(startX);
line.setStartY(startY);
line.setEndX(endX);
line.setEndY(endY);
line.setStroke(Color.AQUA);
}
我想用一个过渡画这条线
GitHub上游戏的完整代码
解决方案
推荐阅读
- javascript - 使用 if 和括号符号理解 reduce 函数
- python - 2个列表/数组中每次迭代的函数
- angular - Web应用程序从后端重定向到前端的支付网关集成问题
- php - Whoops\Exception\ErrorException 声明 Gantry 必须兼容 Twig\TokenParser\TokenParserInterface
- c# - 覆盖重载 C#
- html - 剃刀语法值未在 TextBoxFor 中设置
- python - 如何解决此错误:AttributeError:'NoneType' 对象没有属性'_inbound_nodes'?
- javascript - 如何将 0 传递给 TypeScript 可选参数?
- mysql - 在 Superset 时间列中使用整数年份
- mysql - 带有简单游标的简单存储过程不会编译