飞机的登录界面

学习cocos 的第一个小游戏 飞机小游戏的 流程 与想法
首先要却定有几个 类别 分开处理 我分为一下几点 第一 游戏场景类 负责所有的场景 搭建

hello(){
if(!Scene::init)

return false;//检查上一个场景 不成功则结束下面的执行
}

auto visible=Director::getInstance()->getVisibleSize();
auto origin=Director::getInstance()->getVisbleOrigin();
// 这两个函数是获得 屏幕的坐标和尺寸 锚点的;返回执为Vec2
//然后是创建登录页面 以及数学框 以及保存本地页面
//登录页面
//这个是登录页面的背景 添加到桌面上
Logininit=Sprite::create("“pic/newbg.png”);
Logininit->setPosition(visible.width/2,visible.height/2)
this->addChild(Logininit,-1)
//然后咱么创建一个 标签 以及弹框 创建 把所有的 物体创建在 标签上
m_registeis=Label::create();
this->addchild(m_registeis,-1);
// 然后咱么开始创建 各种的图片 精灵以及 登录场景
//首先是登录 以及注册页面
put_inaccount=Sprite::creat(“pic/strength_spree_bg.png”);
put_inaccount->setPosition();//可以不设置这个是默认设置也可以的
m_registeis->(put_inaccount,1);
//现在咱么 可以在这个 标签上 添加 登录信息了 账号密码 以及按钮了
//先添加 账号等对应信息 这些都是背景图片的 所以 需要找一下 怎么添加
//背景 背景添加到标签也就是 m_registeis上
//开始添加 登录信息 文字 Account,Password;

auto account1=Label::createWithByFont(//字体的路径Str格式,//要输入的字)
account1->setPosition (Vec2(0,put_inaccount->getContentSize().height/2-100))//文字在标签上所在的位置
m_registeis->addChild(account1,1);//这样就把字体加在 标签上了
//下面开始做登录 输入信息等
account2=Label::createWithByFont(//字体路径 ,文字)//主意必须是 英文的额
account2->setAnchorPoint(1,0.5);//设置物体的锚点 这样方便对其精灵
account2->setPosition(vec2(这个是后就是自己对比了 ));
account2->setBMFontSize();//这个是设置 字体大小的
m_registeis->addeChild(account2,2);
//下面创建输入的账号 信息

putinAccount=ui::TextField::create(文字,字体,大小);//这个输入创建可以录入文字的
putinAccount->setAnchorPoint(0,0.5);锚点的设置

putinAccount->setEandled(true);输入设置 开启
putinAccount->setMaxLangthEanbleD(true);开启输入最长 控制
putinAccount->setMaxLang(10);长度为10
putinAccount->setPosition( );
putinAccount->setCursorEanbled(true);光标显示开
m_registei->addChild(putinAccount,1);
//信息输入 的条件 都是这样 有几个 就输入几个就好了
有一想功能是输入 隐藏 功能 代码是这样的
putinAccount->setPasswordEanbled(true);这个是控制输入时否隐藏
然后可以设置 音效什么的
音乐类是单利类 调用的时候用 必须配合 命名空间 来使用
using namespace CocosDenshion;这个是命名 空间
SimpleAudioEngine::getInstance();这个是调用 音乐类的方式
auto audio=SimpleAudioEngine::getInstance();
audio->playEddect(路径,循环,,,);
然后设置 登录页面位置 滑动 到屏幕中间
auto delay=cocos2d::DelayTime::create(0.5) 间隔多少时间
m_reginteis->setPossition (屏幕外 );
auto moveto=MoveTo::create(0.3,移动到的地方);
m_registeis->addChild(moveto);
//这样的话 登录界面的显示就完成了 下面开始做按钮
登录按钮
之类的也都是一样的
按钮button 或者 回调 函数都可以 看你喜欢
两个都展示一下 一个个位回调函数
auto colseItem=MenuItemImage::create(参数 三个
第一个 图片的静止状态,2图片的按下状态 ,回调函数
CC_CALLBACK_1(类名::函数名称注意 是要的 函数 指针不带 括号 ,this ));
auto menu=Menu::create(closeitem,NULL);
menu=setPosition(Vec2::ZERO);
m_registeis->add(menu,2);
把 回调函数 添加到图层里
// button演示
auto button =ui::Button::create(路径 ,…,…);
button->setPosition(…)
m_registeis->addChild(button,2);添加到图层
button->addTouchEventListener(Ref* sender,ui::Widget::TouEventType tpe)
{ //按键的时候 播放 按键音乐
SimpleAudioEngine::getInstance()->playEffect(“Music/button.wav”);
//判断 是不是按下了
switch(type)
{ //条件 判断有没有这个密码 这 三个
if (accountInit1->getString() == “” || inpasswrodput1->getString() == “” || // 判断 登录是不是输入信息了 如果没有输入信息 给提示
accountInit1->getString() != accountInit->getString() ||
inpasswrodput1->getString() != inpasswrodput->getString())
{

				   auto password2 =         Label::createWithBMFont("D:/Cocos/cocos2d-x-3.17.1/tests/cpp-tests/Resources/fonts/bitmapFontTest.fnt", "",TextHAlignment::CENTER);//设置 显示文字显示 空然后 第三个蚕食 是剧中 显示
				   // 这个是设置  显示 文字的 
					
			   password2->setString("Account OR password\n == nullptr");
			//这个是透明度显示
				   password2->setOpacity(255);
				   这个是设置 颜色Color
				     password2->setColor(cocos2d::Color3B::RED);
				          //这个是设置 淡出动画
				  auto feda = FadeOut::create(0.5);
				  这个是设置 间隔时间
				   auto  delayTime = DelayTime::create(1.0);
				   //动作序列 (参数 1 间隔时间 ,动作,,,,nullptr)
				   auto squ = Sequence::create(delayTime, feda, nullptr);
				   这这是设置 字体 
				   password2->setBMFontSize(22);
				   //这是设置 锚点对其的 
				   password2->setAnchorPoint(Vec2(1, 0.5));
				   这个是设置  位置的 
				   password2->setPosition(Vec2(145,-260));
				   这个是子提大小 
				   password2->setBMFontSize(28);
				   
				   添加到图层了
				   m_registe->addChild(password2, 5);

			   }
			   else
			   条件 判断  是否 密码账号正确  如果正确那就 跳转 也难 
				   if (accountInit1->getString() == accountInit->getString() &&
				   inpasswrodput1->getString() == inpasswrodput->getString()) {
					 跳转页面的时候 要清空资源
					   SpriteFrameCache::getInstance()->removeUnusedSpriteFrames();
					   TextureCache::getInstance()->removeAllTextures();
					 //跳转 加载页面  开始加载资源
					  auto  scene = Longing::CreateScene(Longing::Skip::lobby);
					  auto  exee = TransitionFade::create(0.5f, scene, Color3B::BLUE);
					   Director::getInstance()->replaceScene(exee);
			   }
		   break;

	        case ui::Widget::TouchEventType::ENDED:
		   log("sdasda");
		   break;

}

}
下面开始 学 注册页面的 东西 首先 需要的 跟登录页面意向 设置按钮 以及输入 框 以及 按钮 那 总结 一下 注册页面需要做什么 首先 要保存输入的 账号 信息 业绩 密码信息 第二个 跳出 注册页面的时候 需要回到登录页面
登录页面可以和 注册页面都做在屏幕外面当你需要那个的时候就移动 出来就好了 注册页面和 登录页面 一样做的 那么下面写一下 怎么保存账号 密码 信息

e ui::Widget::TouchEventType::BEGAN:
SimpleAudioEngine::getInstance()->playEffect(“Music/button.wav”);
条件判断 出入成功了没
if (accountInit->getString() == “” || inpasswrodput->getString() == “”)
{

		如果不成功 给 出提示
			indication->setString("Passwod Or account \n nullptr");
			indication->setOpacity(255);
			indication->setColor(cocos2d::Color3B::RED);
			auto feda = FadeOut::create(0.5);
			auto  delayTime = DelayTime::create(1.0);
			auto squ = Sequence::create(delayTime, feda, nullptr);
			indication->setBMFontSize(22);

			indication->runAction(squ);
		}
		else
		{
		如果成功 也给出 提示
			UserDefault::getInstance()->setStringForKey(accountInit->getString().c_str(), inpasswrodput->getString().c_str());这个就是保存到笨的 的 方法 
			在本地保存 是一兼职都 保存的   这我有点学的不好   有点  乱 
			indication->setString("isok");
			indication->setOpacity(255);
			indication->setColor(cocos2d::Color3B::RED);
			auto feda = FadeOut::create(0.5);
			auto  delayTime = DelayTime::create(1.0);
			auto squ = Sequence::create(delayTime, feda, nullptr);
			indication->setBMFontSize(22);

			indication->runAction(squ);
			Quitback();
			init();

		}

这个就是前期的登录页面的做法 一会开始写 加载 页面

gameScene::init()
{
if(!Scene::init()||Scene::initWithphysics())//检查场景成功和添加物理
//世界
return false ;//如果为空则结束整个

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值