我正在尝试编写一个2D游戏引擎,我正在尝试实现一个视口系统,这样当我在某个视口中绘图时,游戏坐标将转换为屏幕坐标,而无需手动进行转换.
我想要做的是创建一个Graphics2D添加setViewport方法的包装器.
我看到的方式有两种选择:
创建一个具有a实例Graphics2D并且具有与Graphics2Dplus 相同的方法的类,setViewport并且只调用Graphics2D实例上的相应方法.
子类Graphics2D,只需添加一个setViewport方法,然后只是转换Graphics2D为这个新类
我试过#2,因为#1似乎非常不切实际但遇到了一个ClassCastException.我无法演员Graphics或Graphics2D这个新班级.当我打印的图形对象投(之前Graphics或Graphics2D),两者出来的sun.java2d.SunGraphics2D.
尝试子类化和强制转换时,我做了一些根本错误的事情吗?如果没有,我该如何解决这个问题?