所以我一直在尝试对我的2D引擎实施Freetype,并且实际上仅渲染文本一秒钟或更短的时间,然后它消失了,已经确保仍然调用了render函数,不知道该怎么办错误。此外,它仅在Update函数上呈现文本,当我尝试在Render上呈现时,它不会弹出(这让我发疯,功能被一个接一个地调用,而没有任何修改)。
示例:
isOpaque
TextRenderer.cpp:
extension FooViewController: UITextViewDelegate {
private func updateSelection(selectedIndex indexPath: IndexPath) {
if let oldSelected = self.table.indexPathForSelectedRow {
tableDelegate.tableView(table, didDeselectRowAt: oldSelected)
}
tableDelegate.tableView(table, didSelectRowAt: indexPath)
}
func textViewShouldBeginEditing(_ textView: UITextView) -> Bool {
guard let rowCell = getParentCell(forTextView: textView), // loops through table row cells
!rowCell.isSelected,
let indexPath = self.table.indexPath(for: rowCell)
else { return true }
updateSelection(selectedIndex: indexPath)
return false
}
答案 0 :(得分:1)
@Aether我已经让您的引擎开始运转了,虽然我还没有答案为什么会发生这种情况(还没有仔细看过),但我可以告诉您,如果您不这样做,则不会发生此问题t更新相机。我对此的直觉是,您已经移动了相机或文字,使其不再可见,但我希望在可能的情况下添加更多内容。
void Sandbox::Init() {
AETHER_CLIENT_TRACE("Initialized LifeSandbox");
GameManager::GameSpeed = 1;
Resources::LoadTexture("textures/default.png", "default");
Resources::LoadTexture("textures/emoji.png", "emoji");
Resources::LoadShader("shaders/spriteVertexShader.bin", "shaders/spriteFragmentShader.bin", "sprite");
Renderer = new Renderer2D(Resources::GetShader("sprite"));
Text->Load("fonts/arial.TTF", 24);
MainCamera = new Camera();
}
void Sandbox::Update()
{
//MainCamera->Update(iVec2(0.0f, 0.0f));
}
void Sandbox::Render()
{
//Works fine
Text->RenderText("Press ENTER to start", 0, 0, 1.0, iVec3(2.0f));
}