2015-10-24 2 views
0

В контексте сетевой, централизованной игры, которую я разрабатываю, лучше всего было бы выполнить обновление графического контекста на сервере и отправить клон объекта Graphics для клиентов, чтобы дисплей процесс прост; нет предварительных расчетов.Отправить графический объект по сети

Есть ли способ, которым я мог бы достичь именно того, что я описываю, или мне нужно изменить свой дизайн и придумать другой способ распространения данных?

+0

Уверен, вы можете прочитать мой ответ – hd1

ответ

0

Если вы используете Java с обеих сторон:

File tmp = File.createTempFile("test", ".xml"); 
XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(tmp))); 
e.writeObject(WIlopuGraphicsObject); 
e.close(); // there's now an XML representation of your graphic in the file named tmp.getName() 

Чтобы расшифровать его:

BufferedInputStream stream = new BufferedInputStream(new FileInputStream(tmp)); // tmp from above 
XMLDecoder d = new XMLDecoder(stream); 
WIlopuGraphicsObject graphic = (WIlopuGraphicsObject)d.readObject(); 
d.close(); 

Надежда, что помогает.

+0

Я думаю, что речь идет о объекте java.awt.Graphics, а не классе приложения. – VGR

+0

OPs предположительно использует обертку вокруг java.awt.Graphics, хотя [XMLEncoder создает архивы любых объектов Java - даже если они не следуют соглашениям JavaBeans] (http://www.oracle.com/technetwork/java/ persistence4-140124.html), поэтому я не уверен, почему вы делаете различие – hd1

+0

@ hd1: Спасибо hd1. Идея, которая на данный момент не включает класс оболочки вокруг Графики Java, но в случае необходимости, я думаю, я мог бы это сделать. Кроме того, не могли бы вы расширить этот «поток», который вы передаете конструктору XMLDecoder? Это мой первый опыт работы с XLM на Java. – WIlopu

Смежные вопросы