不真实的引擎指针问题(不理解) 我是C++和虚幻引擎的初学者,但我一直在练习。我的问题是,我在使用指针时遇到了一些问题,我不确定过度使用指针的意义。。。如果这有意义的话。我知道这个问题很可能已经得到了回答,但我的代码中也有一个问题,我将附上这个问题。我不知
不真实的引擎指针问题(不理解) 我是C++和虚幻引擎的初学者,但我一直在练习。我的问题是,我在使用指针时遇到了一些问题,我不确定过度使用指针的意义。。。如果这有意义的话。我知道这个问题很可能已经得到了回答,但我的代码中也有一个问题,我将附上这个问题。我不知道为什么,但代码不会编译,除非我将其作为指向我的FString对象的指针。。。为什么它不编译不真实的引擎指针问题(不理解) 我是C++和虚幻引擎的初学者,但我一直在练习。我的问题是,我在使用指针时遇到了一些问题,我不确定过度使用指针的意义。。。如果这有意义的话。我知道这个问题很可能已经得到了回答,但我的代码中也有一个问题,我将附上这个问题。我不知,c++,unreal-engine4,C++,Unreal Engine4,不真实的引擎指针问题(不理解) 我是C++和虚幻引擎的初学者,但我一直在练习。我的问题是,我在使用指针时遇到了一些问题,我不确定过度使用指针的意义。。。如果这有意义的话。我知道这个问题很可能已经得到了回答,但我的代码中也有一个问题,我将附上这个问题。我不知道为什么,但代码不会编译,除非我将其作为指向我的FString对象的指针。。。为什么它不编译 // Fill out your copyright notice in the Description page of Project Settin
// Fill out your copyright notice in the Description page of Project Settings.
#include "BullCowCartridge.h"
void UBullCowCartridge::BeginPlay() // When the game starts
{
Super::BeginPlay();
SetupGame();
}
void UBullCowCartridge::OnInput(const FString& Input){ // When the player hits enter
ProcessGuess(Input);
}
void UBullCowCartridge::SetupGame() {
//Establish HiddenWord
HiddenWord = TEXT("minecraft");
//Establish LifeCounter
LifeCounter = HiddenWord.Len();
//Establish GameOver
bGameOver = false;
//Print welcome screen/intro
PrintLine(TEXT("WELCOME TO BULLS AND COWS!"));
PrintLine(FString::Printf(TEXT("Guess the %i letter hidden word."), HiddenWord.Len()));
PrintLine(FString::Printf(TEXT("Lives: %i"), LifeCounter));
PrintLine(TEXT("\n"));
PrintLine(TEXT("Enter your guess..."));
PrintLine(TEXT(""));
}
void UBullCowCartridge::EndGame() {
bGameOver = true;
PrintLine(TEXT("Press enter to continue..."));
}
void UBullCowCartridge::ProcessGuess(FString Guess) {
if (bGameOver) {
ClearScreen();
SetupGame();
return;
}
if (Guess == HiddenWord) {
ClearScreen();
PrintLine(TEXT("You win!"));
PrintLine(FString::Printf(TEXT("The hidden word was %s"), *HiddenWord));
EndGame();
return;
}
if (Guess.Len() != HiddenWord.Len()) {
PrintLine(FString::Printf(TEXT("%i is not the correct amount of letters.\nPlease enter %i letters."), Guess.Len(), HiddenWord.Len()));
return;
}
LifeCounter--;
if (LifeCounter > 1) {
PrintLine(FString::Printf(TEXT("You have %i lives remaining."), LifeCounter));
return;
}
if (LifeCounter > 0) {
PrintLine(FString::Printf(TEXT("You have %i life remaining."), LifeCounter));
return;
}
else {
ClearScreen();
PrintLine(TEXT("You lose."));
PrintLine(FString::Printf(TEXT("The hidden word was %s"), *HiddenWord));
EndGame();
return;
}
}
对于你对指针的一般理解,互联网上有足够的资源。“我不知道为什么,但代码不会编译,除非我将其作为指向我的FString对象的指针”,这是什么意思?哪一行?我想你指的是一个UE_日志调用?实际上,你并没有得到一个指向你的字符串的指针,你使用的是FString中定义的*运算符,它返回它的TCHAR表示,这是TCHAR指针。但是这里的真正问题是在你学习UE之前,首先应该学习C++基础知识。请在你的问题中包含编译失败消息。