有没有“简单”的方法来使用protobuf for JavaFX?
我正在用JavaFX制作TCG游戏。我创建protobuf文件来表示各种游戏状态。下面是我写的protobuf的一些片段:有没有“简单”的方法来使用protobuf for JavaFX?,java,javafx,protocol-buffers,Java,Javafx,Protocol Buffers,我正在用JavaFX制作TCG游戏。我创建protobuf文件来表示各种游戏状态。下面是我写的protobuf的一些片段: message Board { repeated GameObject mainDeck = 1; repeated GameObject hand = 2; repeated GameObject graveyard = 3; repeated GameObject exile = 4; repeated Character cha
message Board {
repeated GameObject mainDeck = 1;
repeated GameObject hand = 2;
repeated GameObject graveyard = 3;
repeated GameObject exile = 4;
repeated Character character = 5;
}
message Character {
optional GameObject character = 1;
repeated GameObject item = 2;
optional Position position = 3 [default = STAND];
}
JavaFX大量使用可观察的东西。例如,我编写了此代码以绑定字符图像及其状态:
private final ObjectProperty character=新的SimpleObject属性this,character,character.getDefaultInstance;
私有无效初始化{
//省略了其他初始化代码
ImageView img=新的ImageView;
StringBinding url=Bindings.selectcharacter,character,imageUrl;
img.imgProperty.bind->ImageCache.getImageurl.get,url;
ObjectBinding p=Bindings.selectcharacter,位置;
img.rotateProperty.bind
Bindings.createDoubleBinding->{
如果p.get==null{
返回0.0;
}
开关p.get{
案件其余部分:
回报率90.0;
大小写相反:
返回180.0;
违约:
返回0.0;
}
},p;
}
注意,我在这里使用的是不可变的protobuf对象
然而,正如您所知,TCG的游戏状态是高度动态的,可能会发生变化,或者整个角色都死了;角色和它拥有的所有物品都将进入坟墓场,或者一些强大的魔法分解一个物品;该物品将被送往流放区
对于不可变的protobuf对象,支持这种动态将是困难和/或低效的
但是,要使用可变protobuf object=builder,必须将每个字段包装为可观察字段,而不应使用原始的builder。这不是不可能的,但似乎太单调乏味了
是否有一些库或代码生成器?在JavaFX中轻松使用protobuf