void SkeletalAnimationSample::createHUD() { hud_.setName("HUD"); hud_.setIs2D(true); // Logo texture auto logo = hud_.addEntity<Sprite>("Logo", 64.0f, 64.0f); logo->setSpriteTexture("CarbonLogo.png"); logo->alignToScreen(GUIWindow::ScreenTopLeft, Vec2(5.0f, -5.0f)); // Crosshair auto crosshair = hud_.addEntity<Sprite>("Crosshair", 31.0f, 31.0f); crosshair->setSpriteTexture("Crosshair.png"); crosshair->alignToScreen(GUIWindow::ScreenMiddle); // Add info label auto info = hud_.addEntity<GUIWindow>("Info", 300.0f, 35.0f); info->move({5.0f, 30.0f}); info->setText("Press the left mouse button to switch between animations.\n\n" "Press R to toggle ragdoll, or K to toggle rendering of the skeleton.\n" "Press B to toggle display of the bounding volume."); info->setTextMargins(7.0f); info->autosize(); }
bool LayerUserInfo::init() { if(!BaseLayer::init()) { return false; } auto root = CSLoader::createNode("LayerFriendDetails.csb"); addChild(root); auto btnBack = dynamic_cast<Button*>(CSLoader::seekNodeByName(root, "btn_back")); auto tmpImgIcon = dynamic_cast<ImageView*>(CSLoader::seekNodeByName(root, "image_user_avatar")); auto imgHead = ShaderSprite::createAndDownload("Default/image_defualt_user_icon_large.png", "Default/image_defualt_user_icon_large.png", "Default/image_mask_circle.png"); imgHead->setPosition(tmpImgIcon->getPosition()); root->addChild(imgHead, tmpImgIcon->getLocalZOrder()); tmpImgIcon->removeFromParent(); auto text_title= dynamic_cast<Text*>(CSLoader::seekNodeByName(root, "text_title")); auto nickName = dynamic_cast<Text*>(CSLoader::seekNodeByName(root, "title_nick_name")); auto account = dynamic_cast<Text*>(CSLoader::seekNodeByName(root, "title_account")); auto spriteSex = dynamic_cast<Sprite*>(CSLoader::seekNodeByName(root, "sprite_sex")); auto textNickname = dynamic_cast<Text*>(CSLoader::seekNodeByName(root, "text_nike_name")); auto textAccount = dynamic_cast<Text*>(CSLoader::seekNodeByName(root, "text_account")); auto textSex = dynamic_cast<Text*>(CSLoader::seekNodeByName(root, "title_friend_session")); auto titleDiamond = dynamic_cast<Text*>(CSLoader::seekNodeByName(root, "title_diamond")); auto imgTextfieldBg = dynamic_cast<ImageView*>(CSLoader::seekNodeByName(root, "img_diamond_bg")); auto textfieldDiamond = dynamic_cast<TextField*>(CSLoader::seekNodeByName(root, "textfield_diamond")); mBtnConfirm = dynamic_cast<Button*>(CSLoader::seekNodeByName(root, "btn_diamond")); text_title->setString(tools::local_string("personal_info","个人资料")); nickName->setString(tools::local_string("nickname","昵称")); account->setString(tools::local_string("account","账号")); mBtnConfirm->setTitleText(tools::local_string("confirm_change_password","确定")); titleDiamond->setString(tools::local_string("give_diamond","赠送钻石")); mCheckboxHiteMoments = dynamic_cast<CheckBox*>(CSLoader::seekNodeByName(root, "checkbox_friend_session")); mBtnSendMsg = dynamic_cast<Button*>(CSLoader::seekNodeByName(root, "btn_send_message")); mBtnDeleteFriend = dynamic_cast<Button*>(CSLoader::seekNodeByName(root, "btn_delete_friend")); btnBack->addClickEventListener([&](Ref *ref) { if(IsInvitation) { auto layer = dynamic_cast<LayerInvitationList*>(this->getParent()); if(layer) { layer->refresh_deal_data(); } } this->removeFromParent(); }); imgHead->setSpriteTexture(mInfo.picname()); spriteSex->setTexture(mInfo.sex() == msg::Sex::MALE ? gMaleIcon : gFemaleIcon); textSex->setString(mInfo.sex() == msg::Sex::MALE ? tools::local_string("block_his_moment", "屏蔽他的朋友圈") : tools::local_string("block_her_moment", "屏蔽她的朋友圈")); textNickname->setString(mInfo.nickname()); spriteSex->setPositionX(textNickname->getPositionX() - textNickname->getContentSize().width - 30); textAccount->setString(tools::to_string(mInfo.userid())); mCheckboxHiteMoments->setSelected(false); setCheckBoxTextures(mCheckboxHiteMoments); mCheckboxHiteMoments->addClickEventListener([&](Ref *ref) { auto checkbox = dynamic_cast<CheckBox*>(ref); bool isSelect = checkbox->isSelected(); int userId = mInfo.userid(); log("屏蔽userId = %d", userId); auto processor = PM->BlockUser_up(userId, isSelect); send_data(processor, REQ_SHIELD_FRIEND); }); mEditboxtDiamond = GameTools::createEditBoxFromTextField(imgTextfieldBg, textfieldDiamond); mEditboxtDiamond->setInputMode(EditBox::InputMode::NUMERIC); mEditboxtDiamond->setReturnType(EditBox::KeyboardReturnType::DONE); mEditboxtDiamond->setMaxLength(10); mEditboxtDiamond->setFontColor(Color3B::WHITE); mEditboxtDiamond->setPlaceHolder("0"); mEditboxtDiamond->setDelegate(this); mBtnConfirm->addClickEventListener([&](Ref *ref){ log("send Diamond: %s, len = %d", mEditboxtDiamond->getText(), strlen(mEditboxtDiamond->getText())); if(strlen(mEditboxtDiamond->getText()) <= 0 || !GameTools::isRegexMath(mEditboxtDiamond->getText(), GameTools::INPUT_TYPE::NUMBER)) { Toast::ToastShow(tools::local_string("input_whole","只支持数字")); return; } GameTools::editBoxLoseInputFocus(); requestDiamond(); }); //处理搜索消息 if(!IsInvitation) InitNormal(); else { //处理请求消息 mBtnSendMsg->setTitleText(tools::local_string("operate", "同意")); mBtnSendMsg->addClickEventListener([&](Ref *ref) { sendInvitationFriend(true); }); mBtnDeleteFriend->setTitleText(tools::local_string("disagree_friend_request", "拒绝")); mBtnDeleteFriend->addClickEventListener([&](Ref *ref) { sendInvitationFriend(false); }); } send_data(PM->null_up(), REQ_MOMENT_BLOCK_LIST);//每次都请求已屏蔽的朋友圈列表 return true; }