Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有“简单”的方法来使用protobuf for JavaFX?_Java_Javafx_Protocol Buffers - Fatal编程技术网

有没有“简单”的方法来使用protobuf for JavaFX?

有没有“简单”的方法来使用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

我正在用JavaFX制作TCG游戏。我创建protobuf文件来表示各种游戏状态。下面是我写的protobuf的一些片段:

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