我正在创建一个Ludo游戏,每个玩家都有4个单独的棋子,每个棋子都使用
Graphics2D g2d = (Graphics2D)g;
g2d.drawRect(...);
我怎么能引用这些单独的片段,因为其中一些片段只能在特定时间移动。即每个人开始时都有一个计数器,但如果掷出1或6,就会有一个新的棋子进入游戏。
保留要绘制的对象的ArrayList。对象可能包含以下信息:
- 位置
- 尺寸
- 颜色
然后,保留对每个对象的引用,当更改3个属性中的一个时,重新绘制面板,所有对象都将使用对象的当前状态绘制。
作为开始的示例,请查看"自定义绘画方法"中的DrawOnComponent
示例。该示例显示了如何创建自定义对象并绘制ArrayList中的所有对象。将由您来管理每个对象的属性。
drawRect
不会创建一个稍后可以引用的矩形对象。它直接将矩形绘制到图形缓冲区,然后忘记它。
因此,如果你想拥有可以移动的矩形,你必须创建一个表示这些对象的类,并根据需要绘制它们。然后可以通过调用所有对象的绘制方法来移动它们并重新绘制整个场景。