2011-08-31 72 views
0

我正在做一个客户端,并与Windows服务器,C++发送控制信号?

设计是我决定的工作是

服务器只是发送什么客户都呈现取决于客户发送消息。

排序瓷砖和对象,图片,线条,矩形,圆形...的可以在客户端绘制

和客户端只是接收来自服务器的命令和渲染的东西

如果服务器发送一个消息如“draw picture.png srcX srcY width height destX destY”。 (picture.png在客户端) 然后客户端只是解析字符串,并做我想做的。

但是。 我想像发送控制信号以及

下面 “为(Y = 0; Y < 30; Y ++){对于(X = 0; X < 30; X ++){得出tile.png 0 0 16 16×16 * Y * 16}”

我意识到sending a function is not a good idea (对所有答复表示感谢。)

是有解决这个问题的任何好主意吗?

发送

“绘制tile.png 0 0 16 16 0 0”

“绘制tile.png 0 0 16 16 0 16”

“绘制tile.png 0 0 16 16 0 32"

“绘制tile.png 0 0 16 16 0 48”

“绘制tile.png 0 0 16 16 0 64”

“绘制tile.png 0 0 16 16 0 96”

“绘制tile.png 0 0 16 16 0 112”

“绘制tile.png 0 0 16 16 0 128”

“画tile.png 0 0 16 16 0 132"

... 30 * 30的时间将是矫枉过正

我在寻找有效的方式发送消息‘有什么客户端绘制’ 图是不仅限于平铺和对象,还可以包含绘制效果图片命令在任何坐标上。

感谢您的阅读。

回答

0

那么,如果你不想发送和执行脚本,试着找到一些简单的解决方案。例如,消息格式可以被定义为:

 
draw file name srcX srcY width height destX destY [srcX srcY width height destX destY ...] 

某些优化可以被应用于,例如,可以通过只先前和当前图像之间的差:

 
draw tile.png 0 0 16 16 0 0 (5 16) 

这意味着:增加构件以前的数据包的#5由16.

我知道这是相当原始的,但实施起来很简单。

0

定义一种语言,在客户端上实现解析器,并将这些命令作为纯文本发送。 您必须在服务器中实现反向解析器才能发送优化消息。