资源简介
以前上传过俄罗斯方块1.0版,只支持单机,现在的2.0版在1.0版的基础上加了自己的socket类,实现了局域网联机对战功能,并附有源码(服务器端与客户端对战,没有同时开始功能,速度也可以不一样,下落方块的种类也不是按同样的次序,没有道具功能,只是将自己的战况实时传输给对方)。
说明:由于我的socket类支持多个客户端连接,但是联机时只有两个视窗,一个自己的,一个对家的,所以当多个客户端接入服务器端时具体表现为:服务器端的战况都会广播给所有客户端,相当于大家观看服务器端演示,但是服务器端不显示任何一个客户端的战况;而当只有一个客户端连接服务器端时,才显示这个客户端的战况。
注意:加入游戏,断开连接这两个功能在执行时,是另开线程的,我故意让关闭按钮和拖曳客户端区域移动窗口功能失效,看上去像是程序当住了,其实没当住,因为此时拖曳标题栏还是能移动窗口,右键菜单也可以弹出,这个“当住”过程会在3秒钟左右,当客户端比较多时,服务器端的这个时间会相对长一点。
有问题联系:hastings1986@163.com
代码片段和文件信息
#include “stdafx.h“
#include
#include
#include
#include “emf.h“
#include “Wnd.h“
#include “SocketServer.h“
#include “SocketClient.h“
#include “resource.h“
#define ID_CHILD 1
#define ID_TEXT 2
#define ID_MATCH 3
#define ID_TIMER 8
#define TextWndWidth 6
#define ID_TIMERS timewait
#define ID_TIMERWAIT 300
#define WM_RESETWNDPOS (WM_USER+20) //lParam为bnet
#include “Els.h“
#pragma comment(lib“winmm.lib“)
#pragma comment(lib“Ws2_32.lib“)
struct DlgParam
{
bool bBuilt;
Tstring szIP;
int nPort;
};
struct BinData
{
BOOL fState[CYDIVISIONS][CXDIVISIONS] ;
BOOL ftmp[CYDIVISIONS][CXDIVISIONS] ;
LONG valid[8] ;
int score ;
int bXiaoHang ;//0刷新全部1消行2移动3刚加入游戏时获取状态
};
struct ThreadParam
{
DlgParam* pdlgparam;
SocketServer* pserv;
SocketClient* pclient;
BOOL* pcanbeclose;
TCHAR* szBuffer;
HWND hwnd;
};
LRESULT CALLBACK WndProc (HWND UINT WPARAM LPARAM) ;
BOOL CALLBACK IPDlgProc (HWND UINT WPARAM LPARAM) ;
LRESULT CALLBACK ChildWndProc (HWND UINT WPARAM LPARAM) ;
LRESULT CALLBACK TextWndProc (HWND hwnd UINT message WPARAM wParam LPARAM lParam) ;
LRESULT CALLBACK MatchWndProc (HWND hwnd UINT message WPARAM wParam LPARAM lParam) ;
int IsWin(HWND hwnd BOOL fState[][CXDIVISIONS] BOOL ftmp[][CXDIVISIONS] int cxBlockint cyBlock);
void Valid(HWND hwnd BOOL fState[][CXDIVISIONS] const LONG* valid int cxBlockint cyBlock);
void ValidWin(HWND hwnd BOOL ftmp[][CXDIVISIONS] int cxBlockint cyBlock);
void DrawEls(HWND hwnd HDC hdc HENHmetaFILE hemf int score int scorematch RECT* prect);
void OnPaint(HDC hdcBOOL fState[][CXDIVISIONS]int cxClientint cyClientint cxBlockint cyBlock);
void ResetWndPos(HWND hwndint cxClientint cyClientint bNet);
void DoSomeThing(const BinData* pbindataSocketServer* pservSocketClient* pclientint bNetint clientcnt);
void ConnectServer(LPVOID lpParam);
void CloseServer(LPVOID lpParam);
TCHAR szAppName[] = TEXT (“eluosi“) ;
TCHAR szChildName[] = TEXT (“eluosi_Child“) ;
TCHAR szTextName[] = TEXT (“eluosi_text“) ;
TCHAR szMatchName[] = TEXT (“eluosi_match“) ;
HENHmetaFILE hemfRed hemfBlue ;
HINSTANCE hInst ;
ElsType elstype ;
int score scorematch speed = IDM_SPEED1 ;
int bnet = 0 ;//是否为联机对战:1为主机;2为客户端;
const int TIMERSARR[]={1020304050607080901002003004005006007008009001000};
int timewait = TIMERSARR[speed-IDM_SPEED1] ;//??
int clientcnt=0;
ThreadParam threadparam;
int WINAPI WinMain (HINSTANCE hInstance HINSTANCE hPrevInstance
PSTR szCmdLine int iCmdShow)
{
HWND hwnd ;
MSG msg ;
HACCEL hAccelTable;
WNDCLASS wndclass ;
HDC hdc ;
HBRUSH hbr;
HBITMAP hbmp;
hdc=CreateDC(TEXT(“DISPLAY“)NULLNULLNULL);
if(NULL==hdc)
{
MessageBox (NULL TEXT (“初始化失败!“)
szAppName MB_IConerror)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 33374 2008-03-25 16:09 1.bmp
文件 58662 2008-04-20 21:42 2.bmp
文件 99328 2010-05-23 18:40 12.ncb
文件 238 2010-05-23 18:39 12.plg
文件 37645 2010-05-23 18:35 12.cpp
文件 4995 2010-05-20 21:46 12.dsp
文件 527 2008-04-04 20:30 12.dsw
文件 50688 2010-05-23 18:40 12.opt
文件 68078 2008-04-06 17:43 Els01.cpp
文件 117794 2010-05-20 16:18 Els02.cpp
文件 907 2010-05-20 14:12 Els.h
文件 3148 2010-05-20 16:18 emf.cpp
文件 428 2010-05-20 16:14 emf.h
文件 766 2008-04-04 20:52 icon1.ico
文件 506 2010-04-27 18:48 Lock.h
文件 45152 2010-05-20 20:25 Res.aps
文件 5364 2010-05-20 20:25 Res.rc
文件 1811 2010-05-20 20:23 resource.h
文件 9156 2008-06-13 19:49 run.wav
文件 22885 2010-05-23 18:21 SocketClient.cpp
文件 3250 2010-05-20 16:41 SocketClient.h
文件 25939 2010-05-20 16:17 SocketServer.cpp
文件 3328 2010-05-20 16:41 SocketServer.h
文件 1480 2010-05-21 10:31 stdafx.h
文件 3357 2010-05-20 16:18 Wnd.cpp
文件 1087 2010-05-20 16:16 Wnd.h
文件 556 2010-05-20 20:23 XPst
文件 204800 2010-05-23 18:39 俄罗斯方块2.0版.exe
----------- --------- ---------- ----- ----
805249 28
............此处省略1个文件信息
- 上一篇:kmeans聚类案例
- 下一篇:微机原理波形发生器设计
相关资源
-
Actionsc
ript3.0做的Flash小游戏 俄罗斯 - Pygame游戏源代码:俄罗斯方块
- OpenCV-俄罗斯方块
- 俄罗斯方块课程设计报告
- CyAPI中文版
- 俄罗斯方块AI源代码以及设计文档
- qt写的俄罗斯方块完整代码
- 使用labview制作俄罗斯方块
- Kinect俄罗斯方块源代码及项目
- 俄罗斯方块系统需求规格说明书
- vc俄罗斯方块
- 基于QT实现俄罗斯方块游戏。代码只有
- 俄罗斯方块源码
- 使用socket实现的五子棋游戏
- 俄罗斯方块vc2008源码
- 16*16点阵俄罗斯方块
- 汇编语言贪吃蛇、俄罗斯方块双任务
- 传智播客版俄罗斯方块源代码
- arcgis api for js 缓冲区分析
- Socket实现qq聊天
- flash俄罗斯方块
- 纯QML编写的俄罗斯方块小游戏(2.0版
- Qt俄罗斯方块简洁易懂
- 基于ArcgIs api for js 的路径分析
- 基于51单片机的俄罗斯方块
- linux C 俄罗斯方块源码
-
RAPIDxm
l中文手册,根据官方文档翻译 - arp(地址解析协议)示范
- 用WIN32汇编写的俄罗斯方块
- Socket5服务器源代码
评论
共有 条评论