基本信息
源码名称:FunCode项目工程《保卫萝卜》
源码大小:35.53M
文件格式:.zip
开发语言:C/C++
更新时间:2017-07-14
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 18 元 
   源码介绍
FunCode项目工程《保卫萝卜》的简化版,这是一款用保卫萝卜的素材,做自己游戏的例子。


///////////////////////////////////////////////////////////////////////////////////////////
//
// 主函数入口
//
//////////////////////////////////////////////////////////////////////////////////////////
int PASCAL WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR     lpCmdLine,
                   int       nCmdShow)
{
// 初始化游戏引擎
if( !dInitGameEngine( hInstance, lpCmdLine ) )
return 0;

// To do : 在此使用API更改窗口标题
dSetWindowTitle("保卫萝卜");

//获取主界面的位置,以实现之后的统一移动
g_fBGX=dGetSpritePositionX("mainbg");
g_fBGY=dGetSpritePositionY("mainbg");

//隐藏鼠标
dShowCursor(0);
//调用主菜单载入函数
ZhucaidanInvisible();

// 引擎主循环,处理屏幕图像刷新等工作
while( dEngineMainLoop() )
{
// 获取两次调用之间的时间差,传递给游戏逻辑处理
float fTimeDelta = dGetTimeDelta();
// 执行游戏主循环
GameMainLoop( fTimeDelta );
};

// 关闭游戏引擎
dShutdownGameEngine();
return 0;
}

//==========================================================================
//
// 引擎捕捉鼠标移动消息后,将调用到本函数
// 参数 fMouseX, fMouseY:为鼠标当前坐标
//
void dOnMouseMove( const float fMouseX, const float fMouseY )
{
// 可以在此添加游戏需要的响应函数
dSetSpritePosition("Hand", fMouseX, fMouseY);
fHandX = dGetSpriteLinkPointPosX("Hand",1);
fHandY = dGetSpriteLinkPointPosY("Hand",1);
OnMouseMoveZhuCaiDan(fMouseX, fMouseY );
OnMouseMoveSelectGuanqia(fMouseX, fMouseY );
OnMouseMoveGuanqia1( fMouseX, fMouseY );
OnMouseMoveGuanqia2( fMouseX, fMouseY );
OnMouseMoveGuanqia3( fMouseX, fMouseY );
}
//==========================================================================
//
// 引擎捕捉鼠标点击消息后,将调用到本函数
// 参数 iMouseType:鼠标按键值,见 enum MouseTypes 定义
// 参数 fMouseX, fMouseY:为鼠标当前坐标
//
void dOnMouseClick( const int iMouseType, const float fMouseX, const float fMouseY )
{
// 可以在此添加游戏需要的响应函数
OnMouseClickZhuCaiDan( iMouseType, fMouseX, fMouseY );
OnMouseClickSelectGuanqia( iMouseType, fMouseX, fMouseY );
OnMouseClickGuanqia1( iMouseType, fMouseX, fMouseY );
OnMouseClickGuanqia2( iMouseType, fMouseX, fMouseY );
OnMouseClickGuanqia3( iMouseType, fMouseX, fMouseY );
OnMouseClickSelectTiqinLose( iMouseType,  fMouseX, fMouseY );
if(dIsPointInSprite("MoneyRank",fHandX,fHandY))MoneyRank();
if(iMouseType == MOUSE_LEFT)//选择关卡界面鼠标左键单击的响应
{
if(dIsPointInSprite("select_normal",fMouseX,fMouseY)  )//若鼠标在“选择关卡”内点击
{

dSetSpriteVisible("select_normal",0);
dSetSpriteVisible("select_pressed",1);
if(g_dYinXiao)PlaySoundEffect(18);
dStopAllSound();
g_iGameState = 0;
SelectGuanqia( g_dBGMusic );
}
}

}
//==========================================================================
//
// 引擎捕捉鼠标弹起消息后,将调用到本函数
// 参数 iMouseType:鼠标按键值,见 enum MouseTypes 定义
// 参数 fMouseX, fMouseY:为鼠标当前坐标
//
void dOnMouseUp( const int iMouseType, const float fMouseX, const float fMouseY )
{
// 可以在此添加游戏需要的响应函数
OnMouseUpZhuCaiDan(iMouseType, fMouseX, fMouseY);
OnMouseUpSelectGuanqia( iMouseType, fMouseX,fMouseY );
OnMouseUpGuanqia1( iMouseType, fMouseX, fMouseY );
OnMouseUpGuanqia2( iMouseType, fMouseX, fMouseY );
OnMouseUpGuanqia3( iMouseType, fMouseX, fMouseY );
}
//==========================================================================
//
// 引擎捕捉键盘按下消息后,将调用到本函数
// 参数 iKey:被按下的键,值见 enum KeyCodes 宏定义
// 参数 iAltPress, iShiftPress,iCtrlPress:键盘上的功能键Alt,Ctrl,Shift当前是否也处于按下状态(0未按下,1按下)
//
void dOnKeyDown( const int iKey, const int iAltPress, const int iShiftPress, const int iCtrlPress )
{
// 可以在此添加游戏需要的响应函数

}
//==========================================================================
//
// 引擎捕捉键盘弹起消息后,将调用到本函数
// 参数 iKey:弹起的键,值见 enum KeyCodes 宏定义
//
void dOnKeyUp( const int iKey )
{
// 可以在此添加游戏需要的响应函数

}

//===========================================================================
//
// 引擎捕捉到精灵与精灵碰撞之后,调用此函数
// 精灵之间要产生碰撞,必须在编辑器或者代码里设置精灵发送及接受碰撞
// 参数 szSrcName:发起碰撞的精灵名字
// 参数 szTarName:被碰撞的精灵名字
//
void dOnSpriteColSprite( const char *szSrcName, const char *szTarName )
{
// 可以在此添加游戏需要的响应函数

OnSpriteColSpriteGuanqia1( szSrcName, szTarName );
OnSpriteColSpriteGuanqia2( szSrcName, szTarName );
OnSpriteColSpriteGuanqia3( szSrcName, szTarName );
}

//===========================================================================
//
// 引擎捕捉到精灵与世界边界碰撞之后,调用此函数.
// 精灵之间要产生碰撞,必须在编辑器或者代码里设置精灵的世界边界限制
// 参数 szName:碰撞到边界的精灵名字
// 参数 iColSide:碰撞到的边界 0 左边,1 右边,2 上边,3 下边
//
void dOnSpriteColWorldLimit( const char *szName, const int iColSide )
{
// 可以在此添加游戏需要的响应函数
OnSpriteColWorldLimitGuanqia1( szName, iColSide );
OnSpriteColWorldLimitGuanqia2( szName, iColSide );
OnSpriteColWorldLimitGuanqia3( szName, iColSide );
}