我正在用c ++构建游戏。我有一个名为eggAI的类和一个在线程中运行的套接字侦听器。在接收插座时,蛋向前移动。所以我正在创建一个eggAI类的实例并将其向前移动(因为套接字侦听器函数必须是静态的)。这是如何处理插座接收
eggAI *mn = new eggAI();
mn->bMoveForward(true);
我的游戏正在运行,但鸡蛋没有移动插座接收。我试图调试并发现问题出在mn-> bMoveForward(true),调试显示我 0x003baf00标量删除析构函数'(unsigned int)。请注意,在eggAI.h中,我定义了一个构造函数和一个析构函数,在eggAI.cpp中,我实现了它们:
// eggAI.h
#ifndef __eggAI_h__
#define __eggAI_h__
//------------------------------------------------------------------------------
#include "S3DX/S3DXAIModel.h"
#include "chasing_the_egg_Plugins.h"
#pragma comment(lib, "ws2_32.lib")
#include <winsock2.h>
#include <process.h>
#include <stddef.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <stdio.h>
//------------------------------------------------------------------------------
S3DX_DECLARE_AIMODEL( eggAI )
{
public:
// Handlers:
//
S3DX_DECLARE_HANDLER( onInit );
S3DX_DECLARE_HANDLER( onMouseMove );
S3DX_DECLARE_HANDLER( onEnterFrame );
S3DX_DECLARE_HANDLER( onCaptureInput );
S3DX_DECLARE_HANDLER( onKeyboardKeyUp );
S3DX_DECLARE_HANDLER( onKeyboardKeyDown );
// States:
//
// Functions:
//
void createHUD ( );
void showMouse ( S3DX::AIVariable b = S3DX::nil );
static unsigned __stdcall socketing (void *pi);
void centerMouse ( );
void createDynamic ( );
void updateCharPos ( );
void updateDynamics ( );
static unsigned __stdcall direction (void *ea);
eggAI();
virtual ~ eggAI();
// Variables:
//
S3DX_DECLARE_VARIABLE( nSpeed );
S3DX_DECLARE_VARIABLE( hDynObj );
S3DX_DECLARE_VARIABLE( nGravity );
S3DX_DECLARE_VARIABLE( bMoveBack );
S3DX_DECLARE_VARIABLE( nCurAngleH );
S3DX_DECLARE_VARIABLE( nCurAngleV );
S3DX_DECLARE_VARIABLE( nDstAngleH );
S3DX_DECLARE_VARIABLE( nDstAngleV );
S3DX_DECLARE_VARIABLE( bMoveForward );
S3DX_DECLARE_VARIABLE( bCaptureInput );
};
//------------------------------------------------------------------------------
#endif // __eggAI_h__
//------------------------------------------------------------------------------
// eggAI.cpp
//------------------------------------------------------------------------------
#include "eggAI.h"
//------------------------------------------------------------------------------
// Common AIModel implementation
//
S3DX_IMPLEMENT_AIMODEL( eggAI )
eggAI::eggAI() { }
eggAI::~eggAI() { }
//------------------------------------------------------------------------------
// States mapping
//
S3DX_BEGIN_STATE_MAP( eggAI )
S3DX_END_STATE_MAP( eggAI )
//------------------------------------------------------------------------------
// Event handlers mapping
//
S3DX_BEGIN_HANDLER_MAP( eggAI )
S3DX_HANDLER( eggAI, onInit )
S3DX_HANDLER( eggAI, onMouseMove )
S3DX_HANDLER( eggAI, onEnterFrame )
S3DX_HANDLER( eggAI, onCaptureInput )
S3DX_HANDLER( eggAI, onKeyboardKeyUp )
S3DX_HANDLER( eggAI, onKeyboardKeyDown )
S3DX_END_HANDLER_MAP( eggAI )
//------------------------------------------------------------------------------
// Variables mapping
//
S3DX_BEGIN_VARIABLE_MAP( eggAI )
S3DX_VARIABLE( eggAI, nSpeed, S3DX_VARIABLE_TYPE_NUMBER )
S3DX_VARIABLE( eggAI, hDynObj, S3DX_VARIABLE_TYPE_OBJECT )
S3DX_VARIABLE( eggAI, nGravity, S3DX_VARIABLE_TYPE_NUMBER )
S3DX_VARIABLE( eggAI, bMoveBack, S3DX_VARIABLE_TYPE_BOOLEAN )
S3DX_VARIABLE( eggAI, nCurAngleH, S3DX_VARIABLE_TYPE_NUMBER )
S3DX_VARIABLE( eggAI, nCurAngleV, S3DX_VARIABLE_TYPE_NUMBER )
S3DX_VARIABLE( eggAI, nDstAngleH, S3DX_VARIABLE_TYPE_NUMBER )
S3DX_VARIABLE( eggAI, nDstAngleV, S3DX_VARIABLE_TYPE_NUMBER )
S3DX_VARIABLE( eggAI, bMoveForward, S3DX_VARIABLE_TYPE_BOOLEAN )
S3DX_VARIABLE( eggAI, bCaptureInput, S3DX_VARIABLE_TYPE_BOOLEAN )
S3DX_END_VARIABLE_MAP( eggAI )
//------------------------------------------------------------------------------
好像我错过了什么