猿创征文|C++游戏引擎Easy2D我拿吃零食的时间,学会了在C++上添加可点击按钮

Posted iecne

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了猿创征文|C++游戏引擎Easy2D我拿吃零食的时间,学会了在C++上添加可点击按钮相关的知识,希望对你有一定的参考价值。



🧛‍♂️iecne个人主页:iecne的学习日志
💡每天关注iecne的作品,一起进步
💪学C++必看iecne
本文专栏【C++游戏引擎】.
🐳希望大家多多支持🥰一起进步呀!


✨前言

哈喽大家好,我是iecne,本期为大家带来的是CPP/C++【游戏引擎Easy2D】想要做游戏但不会按钮鼠标控制?十分钟教会你Button按钮类。包教包会,快来看看吧!
引擎支持 Visual Studio 2013 及以上版本,如果你使用的是较低版本的 VS,那么你需要考虑一下更新你的编译器了

任务描述

如何根据据Button制作鼠标控制按钮类
本实践旨在通过多个代码的案列,让大家理解和掌握如何使用Easy2D引擎来将Button解释并且会运用


文章目录


Easy2D导读

对于编程而言,初学者最需要的不是技能,而是成就感。
如果你喜欢用 C/C++ 编写自己的小游戏,那么 Easy2D 将是个不错的选择,它大大简化了游戏制作过程,可以帮助你快速开发 Windows 上的 2D 小游戏。
它的特点和它的名字一样,Everything is Easy!


安装 Easy2D

使用简易安装器
运行里面的 install.bat 文件进行安装。
点击此链接进行下载(纯免费,给官方搞成了VIP)
点击下载
安装程序会检测您已经安装的 Visual Studio 版本,并根据您的选择将对应库文件解压至 VS 库目录下。
Easy2D 不支持 VS2012 及以下的版本(包括 VC6.0),如果你使用的是低版本的 VS,那你需要尝试一下新版的 Visual Studio 了。

安装环境:
操作系统:Windows 7 及以上操作系统。
编译环境:Visual Studio 2013 (x86 & x64) 及以上版本。


一.如何使用Button

收藏本文找到更方便

1.1 精灵转化按钮

这类讲述使用方式和注意事项

1.1.1 使用方式

Button 表示一个按钮,你可以把一段文字或者一个精灵变成按钮,它的使用方式很简单
创建一个精灵

auto btnSprite = gcnew Sprite(L"按钮图片.png");

创建点击按钮后的回调函数

auto callback = []() 

    // 点击按钮,进入一个新场景
    SceneManager::enter(gcnew Scene);
;

把精灵变成一个按钮,并设置点击按钮后的回调函数

auto button = gcnew Button(btnSprite, callback);

把按钮加入场景

scene->addChild(button);

1.1.2 注意事项

Warning
把精灵变为按钮后,不需要再将精灵加入到场景中,否则将产生错误。Debug 状态下引擎可以检测这种错误,在错误产生时中断程序,并在控制台中给出提示。


二.不同的按钮

2.1 四个种类

普通的按钮有四个状态:正常、鼠标移入、按下、禁用,你可以设置按钮在四种状态下显示不同的精灵或文本

// 创建一个精灵,按钮普通状态显示
auto btnNormal = gcnew Sprite(L"按钮图片.png");
// 创建一个精灵,按钮按下状态显示
auto btnSelect = gcnew Sprite(L"按下时图片.png");
// 创建点击按钮后的回调函数
auto callback = []() 

    // 点击按钮,进入一个新场景
    SceneManager::enter(gcnew Scene);
;
// 创建按钮
auto button = gcnew Button;
button->setNormal(btnNormal);
button->setSelected(btnSelect);
button->setClickFunc(callback);
// 把按钮加入场景
scene->addChild(button);

2.2 禁用状态

如果你想让一个按钮停止工作,可以把它设为禁用状态

button->setEnable(false);

三.实例项目

作者曾做过一个通讯录,在这里展现一下按钮部分

//通讯录和+符号
void TXLPLUS()

	//设置通讯录字号
	auto TXL_text = gcnew Text(L"通讯录");
	//放大1.5倍
	TXL_text->setScale(1.2);
	// 创建文字样式
	auto style = Text::Style();
	//设置颜色为黑色
	style.color = Color::Black;
	Font font = Font(L"黑体", 40, Font::Weight::Bold, true);
	// 设置字体
	TXL_text->setFont(font);
	// 显示在屏幕上
	TXL_text->setAnchor(0.5f, 0.5f);
	TXL_text->setPos(80, 50);
	//应用场景
	b_changjing->addChild(TXL_text);

	// 创建开始按钮
	auto startBtn = gcnew Button;
	startBtn->setScale(2.0f, 2.0f);
	// 设置按钮图片
	startBtn->setNormal(gcnew Sprite(L"res/plus002.png"));
	// 设置按钮被选中时的图片
	startBtn->setSelected(gcnew Sprite(L"res/plus001.png"));
	// 获取鼠标位置
	Point mousePos = Input::getMousePos();
	//判断
	if (mousePos.x >= 530 && mousePos.x <= 521)
	
		if (mousePos.y >= 30 && mousePos.y <= 51)
		
			startBtn->setDisabled(gcnew Sprite(L"res/plus003.png"));
		
	
	// 设置按钮位置
	startBtn->setPos(530,30);
	// 添加开始按钮
	b_changjing->addChild(startBtn);


//查询通讯录
void CHAXUN()

	//以这种形式打印变量
	//int s = 1000;
	//auto test = gcnew Text(FormatString(L"雷数 %d", s));
	// 将 Text 添加到场景中
	//b_changjing->addChild(test);
	// 创建开始按钮
	auto startBtn = gcnew Button;
	startBtn->setScale(1.0f, 1.0f);
	// 设置按钮图片
	startBtn->setNormal(gcnew Sprite(L"res/查询001.png"));
	// 设置按钮被选中时的图片
	startBtn->setSelected(gcnew Sprite(L"res/查询002.png"));
	// 获取鼠标位置
	Point mousePos = Input::getMousePos();
	//**************
	//   判断省略
	//**************
	// 设置按钮位置
	startBtn->setPos(150, 150);
	// 添加开始按钮
	b_changjing->addChild(startBtn);
	XUNWENCK();


关于命名

Easy2D 按照以下规律命名函数:

小驼峰式命名法则,第一个单词小写,后面的单词首字母大写,如Window::setTitle
所有函数均按照动词+名语形式命名,如Logger::showConsole
获取对象的属性值:get+属性名,如Node::getWidth
修改对象的属性值:set+属性名,如Node::setPos
获取对象的状态(bool值):is+状态名,如Node::isVisiable


✨总结

本节课主要是讲解了Easy2D引擎实现的教程,至此该课示例的思想博主已经真真切切彻彻底底分享完了,相信大家对这个逻辑有了一定的理解,大家可以自己动手敲敲代码,感受一下,包教包会。若有任何侵权和不妥之处,请私信于我,定积极配合处理,看到必回!!!

帅的人已然点赞收藏关注,而丑的人还在犹豫,被犹豫了,快三连吧!
原创不易,还希望各位大佬支持一下
点赞,你的认可是我创作的动力!
收藏,你的青睐是我努力的方向!
评论,你的意见是我进步的财富!


感谢每一个观看本篇文章的朋友,更多精彩敬请期待~( ̄▽ ̄~)~:
iecne的博客
若有任何侵权和不妥之处,请私信于我,定积极配合处理,看到必回!!!

以上是关于猿创征文|C++游戏引擎Easy2D我拿吃零食的时间,学会了在C++上添加可点击按钮的主要内容,如果未能解决你的问题,请参考以下文章

游戏引擎Easy2D学C++还在面对黑框框?那是你没看这篇文,游戏引擎教会你

游戏引擎Easy2D三分钟学会游戏的控制移动,键盘识别详解

游戏引擎Easy2D实战选择关卡场景示例

游戏引擎Easy2D实战选择关卡场景示例

猿创征文|程序猿乘风破浪 Python Pygame 原创小游戏源码+解析

猿创征文|程序猿乘风破浪 Python Pygame 原创小游戏源码+解析