<?PHP // 定义变量 $username = $_POST['username']; $password = $_POST['password']; // 创建连接 $conn = MysqLi_connect("hostname","username","password","database"); // 检查连接 if (!$conn) { die("Connection Failed: " . MysqLi_connect_error()); } // 查询数据 $sql = "SELECT * FROM users WHERE username='$username'"; $result = MysqLi_query($conn,$sql); // 验证用户名和密码 if (MysqLi_num_rows($result) > 0) { while($row = MysqLi_fetch_assoc($result)) { if ($row['password'] == $password) { echo "success"; } else { echo "failure"; } } } else { echo "failure"; } // 关闭连接 MysqLi_close($conn); ?>在你的场景文件中,添加如下代码,在用户点击登录按钮后执行 login.PHP 文件:
void LoginScene::onLoginButtonCallback(cocos2d::Ref *pSender,Widget::TouchEventType type) { if (type == Widget::TouchEventType::ENDED) { auto usernameInput = static_cast<ui::TextField*>(this->getChildByName("usernameInput")); auto passwordInput = static_cast<ui::TextField*>(this->getChildByName("passwordInput")); // 获取用户输入的用户名和密码 std::string username = usernameInput->getString(); std::string password = passwordInput->getString(); // 创建 HTTP 请求 HttpRequest* request = new HttpRequest(); request->setUrl("http://localhost/login.PHP"); request->setRequestType(HttpRequest::Type::POST); request->setResponseCallback(CC_CALLBACK_2(LoginScene::onHttpRequestCompleted,this)); // 请求参数 std::string data = "username=" + username + "&password=" + password; request->setRequestData(data.c_str(),data.length()); // 发送请求 HttpClient::getInstance()->send(request); request->release(); } } void LoginScene::onHttpRequestCompleted(HttpClient* sender,HttpResponse* response) { if (!response) { return; } if (response->getResponseCode() != 200) { return; } std::vector<char> *buffer = response->getResponseData(); std::string result(buffer->begin(),buffer->end()); // 根据响应结果处理相应逻辑 if (result == "success") { // 跳转至游戏主场景 Director::getInstance()->replaceScene(GameScene::create()); } else { // 登录失败,弹出提示框 auto alert = Alert::create(); alert->setTitle("登录失败"); alert->setContentText("用户名或密码错误"); alert->addButton("确定"); alert->setTheme(Theme::DARK); alert->show(); } }在上述代码中,我们使用 HttpClient 类向 login.PHP 发送请求,并获取到响应结果。如果结果为 success,则说明用户名与密码的比对过程已经成功,在游戏场景过渡至主界面。如果结果为 failure,则说明用户名与密码不匹配,我们则需要在游戏界面中弹出提示框提示用户。 总的来说,使用 Cocos2d-x 结合 PHP 可以帮助游戏开发者更好地实现游戏联网需求。在实际开发中,还会涉及到更多的功能,希望这篇文章能够为开发者们提供一些帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。