在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例C/C++游戏开发 → FunCode项目工程《保卫萝卜》

FunCode项目工程《保卫萝卜》

C/C++游戏开发

下载此实例
  • 开发语言:C/C++
  • 实例大小:35.53M
  • 下载次数:181
  • 浏览次数:2940
  • 发布时间:2017-07-14
  • 实例类别:C/C++游戏开发
  • 发 布 人:1106741606
  • 文件格式:.zip
  • 所需积分:18
 相关标签: c 保卫萝卜 d 项目 funcode

实例介绍

【实例简介】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 );
}

实例下载地址

FunCode项目工程《保卫萝卜》

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

第 1 楼 zxyyczasd 发表于: 2023-04-05 12:26 08
你好,在本人的funcode上运行你的保卫萝卜代码,提示funcode初始化引擎失败.但是我自己创建项目运行没有问题。是不是动态链接库的问题,请问可以发一份吗

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有1条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警