请大家帮忙提供一些网络小游戏程序或代码。我想把小游戏整合到一个聊天软件上。一个小游戏没什么特别,但如果把很多小游戏整合在一起,相信一个具有影响力的程序就诞生了。

  • 主题发起人 主题发起人 testnet
  • 开始时间 开始时间
T

testnet

Unregistered / Unconfirmed
GUEST, unregistred user!
请大家帮忙提供一些网络小游戏程序或代码。我想把小游戏整合到一个聊天软件上。一个小游戏没什么特别,但如果把很多小游戏整合在一起,相信一个具有影响力的程序就诞生了。(200分)<br />为了方便整合,对程序作一些小要求。

1 服务器与客户端的端口号都从一个外部文件读入。
2 服务器不显示主窗体,除非一定要显示才能完成工作。不要对哪些关闭消息作特殊处理,
我通过消息关闭服务器。
3 我以以下方式打开一个客户端( 客户.exe ServerIP UserName )第一个是服务器IP,
第二个是用户名。注意 参数是没有"/","-"号开头的。
4 客户端只能显示一个。可参考以下代码(附一 改一个字符串,直接引用Uses就可以了)


也可以直接把游戏源代码发给我,单机版也行,我会认真修改。
注意:这是免费的,希望大家对这有兴趣。

E-Mail testnet@163.com
QQ 17141271
我不知163的附件有多大,请发两封信,第二封确认一下。
也可以在QQ里传给我。我是用宽带。

附一:
unit MultInst;

interface

const
MI_QUERYWINDOWHANDLE = 1;
MI_RESPONDWINDOWHANDLE = 2;

MI_ERROR_NONE = 0;
MI_ERROR_FAILSUBCLASS = 1;
MI_ERROR_CREATINGMUTEX = 2;

// Call this function to determine if error occurred in startup.
// Value will be one or more of the MI_ERROR_* error flags.
function GetMIError: Integer;

implementation

uses Forms, Windows, SysUtils;

const
UniqueAppStr = 'DDG.I_am_the_Eggman!'; //必须把这个字符串改成你所喜欢的

var
MessageId: Integer;
WProc: TFNWndProc;
MutHandle: THandle;
MIError: Integer;

function GetMIError: Integer;
begin
Result := MIError;
end;

function NewWndProc(Handle: HWND; Msg: Integer; wParam, lParam: Longint):
Longint; stdcall;
begin
Result := 0;
// If this is the registered message...
if Msg = MessageID then
begin
case wParam of
MI_QUERYWINDOWHANDLE:
// A new instance is asking for main window handle in order
// to focus the main window, so normalize app and send back
// message with main window handle.
begin
if IsIconic(Application.Handle) then
begin
Application.MainForm.WindowState := wsNormal;
Application.Restore;
end;
PostMessage(HWND(lParam), MessageID, MI_RESPONDWINDOWHANDLE,
Application.MainForm.Handle);
end;
MI_RESPONDWINDOWHANDLE:
// The running instance has returned its main window handle,
// so we need to focus it and go away.
begin
SetForegroundWindow(HWND(lParam));
Application.Terminate;
end;
end;
end
// Otherwise, pass message on to old window proc
else
Result := CallWindowProc(WProc, Handle, Msg, wParam, lParam);
end;

procedure SubClassApplication;
begin
// We subclass Application window procedure so that
// Application.OnMessage remains available for user.
WProc := TFNWndProc(SetWindowLong(Application.Handle, GWL_WNDPROC,
Longint(@NewWndProc)));
// Set appropriate error flag if error condition occurred
if WProc = nil then
MIError := MIError or MI_ERROR_FAILSUBCLASS;
end;

procedure DoFirstInstance;
// This is called only for the first instance of the application
begin
// Create the mutex with the (hopefully) unique string
MutHandle := CreateMutex(nil, False, UniqueAppStr);
if MutHandle = 0 then
MIError := MIError or MI_ERROR_CREATINGMUTEX;
end;

procedure BroadcastFocusMessage;
// This is called when there is already an instance running.
var
BSMRecipients: DWORD;
begin
// Prevent main form from flashing
Application.ShowMainForm := False;
// Post message to try to establish a dialogue with previous instance
BSMRecipients := BSM_APPLICATIONS;
BroadCastSystemMessage(BSF_IGNORECURRENTTASK or BSF_POSTMESSAGE,
@BSMRecipients, MessageID, MI_QUERYWINDOWHANDLE,
Application.Handle);
end;

procedure InitInstance;
begin
SubClassApplication; // hook application message loop
MutHandle := OpenMutex(MUTEX_ALL_ACCESS, False, UniqueAppStr);
if MutHandle = 0 then
// Mutex object has not yet been created, meaning that no previous
// instance has been created.
DoFirstInstance
else
BroadcastFocusMessage;
end;

initialization
MessageID := RegisterWindowMessage(UniqueAppStr);
InitInstance;
finalization
// Restore old application window procedure
if WProc <> Nil then
SetWindowLong(Application.Handle, GWL_WNDPROC, LongInt(WProc));
if MutHandle <> 0 then CloseHandle(MutHandle); // Free mutex
end.

 
我这里有好几个单机版的小游戏源码,要不要?
你的QQ怎么没开?隐身了?
 
先多谢了,我的QQ不是常开,有什么事发个讯息过来,我一定准时上线。

为方便与大家联系,请留下个联系方式。
 
多人接受答案了。
 
后退
顶部