HSPでソケットサーバー

メイン処理だけ。
E3Dのモーション再生サンプルにソケットサーバーサンプルを合体
なんかパケットが来たらモーションを再生。とりあえず動いている
赤と白の旗を持たせて、両方を上げ下げするモーションを作れば、
遠隔で旗揚げゲームができそう


ソケット関係の関数のリファレンスは
ここが参考になりました
http://usk.s16.xrea.com/hsp/hsphelp_eng/hsp26_eng/docs/hspsock.txt


HSP3の文法が独特なので慣れるまで違和感があります(^^;

*main

	E3DSetNewPose hsid1, frameno0

	E3DGetKeyboardState keybuf

	if keybuf.'Z' = 1 : E3DSetMotionKind hsid1, mk1_move
	if keybuf.VK_ESCAPE = 1 : goto *bye ; [ESC]で終了

	E3DChkInView scid1, hsid0
	E3DChkInView scid1, hsid1
	E3DChkInView scid1, hsid2

	E3DBeginScene scid1

		;不透明部分の描画をする
		E3DRender scid1, hsid0, 0, frameno0, 0
		E3DRender scid1, hsid2, 0, frameno0, 0
		E3DRender scid1, hsid1, 0, frameno0, 0

	E3DEndScene

	E3DPresent scid1

	waitbyfps 100, chkfps1

	if flag=0 {
		sopen(999)
		flag=1
		E3DSetMotionKind hsid1, mk1_move
	}

	res = 0
	res = srecv()

	if res != 0 : E3DSetMotionKind hsid1, mk1_move

	goto *main


srecvは

#defcfunc srecv

	sockcheck 0
	if stat>=2 : goto *errbye

	res=0
	if stat=0 {
		sockgetc res,0
		if stat>=1 : goto *errbye
	}

	return res

sockcheckでパケットが来ているか?をチェックして、来てたらgetcする