Werden charakterspezifische Fähigkeiten auf alle Charaktere angewendet?
Posted: 19 Jan 2025, 20:53
Ich bin nicht besonders gut im Programmieren. Ich kenne die Grundlagen, aber ich lerne noch. Im Grunde arbeite ich an einem 2D-Plattformspiel, das Super Meat Boy ähnelt, und habe mir ein Tutorial angesehen, um ein grundlegendes Spielerbewegungssystem zu erstellen. Dann ging ich hinein und fügte zusätzliche Bools hinzu, damit ich zu anderen Charakteren wechseln und jedem Charakter bestimmte Statistiken und neue Fähigkeiten und ähnliches geben konnte.
Ich dachte, ich hätte die if-Anweisung richtig eingerichtet, aber selbst wenn der isMif-Bool auf „false“ gesetzt ist, haben andere Zeichen immer noch die Floating-Fähigkeit, die eigentlich nur für Mif gelten soll.
Ich habe nicht wirklich viel anderes ausprobiert, sondern nur ausdruckslos auf meine Codewand geschaut und mich gefragt, warum es nicht funktioniert. Ich habe versucht, „!isTurdo“ in die if-Anweisung einzufügen, was der Boolwert für ein anderes Zeichen ist, aber selbst wenn der isTurdo-Boolwert auf „true“ gesetzt ist, verfügt er immer noch über die Floating-Fähigkeit.
I Ich habe diese Frage beantwortet, während sie noch zur Veröffentlichung geprüft wurde, und die Antwort hat funktioniert. Ich habe meine vorherige if-Anweisung durch „if ((_jumpBufferTimer > 0f && isMif && InputManager.JumpIsHeld && _isJumping && _isFalling) || (_isFastFalling && isMif))“ ersetzt und jetzt funktioniert es. Ich weiß nicht, wie ich hier einen Kommentar als Lösung zuweisen soll, daher bearbeite ich dies, um es euch allen mitzuteilen.
Code: Select all
if (_jumpBufferTimer > 0f && isMif && InputManager.JumpIsHeld && _isJumping && _isFalling || _isFastFalling)
{
_isFloating = true;
}
if (_isFloating)
{
VerticalVelocity = -0.001f;
VerticalVelocity += MoveStats.Gravity * Time.fixedDeltaTime;
if (InputManager.JumpWasReleased && !InputManager.JumpIsHeld)
{
VerticalVelocity = -0.01f;
VerticalVelocity += MoveStats.Gravity * Time.fixedDeltaTime;
_isFloating = false;
}
}
Ich habe nicht wirklich viel anderes ausprobiert, sondern nur ausdruckslos auf meine Codewand geschaut und mich gefragt, warum es nicht funktioniert. Ich habe versucht, „!isTurdo“ in die if-Anweisung einzufügen, was der Boolwert für ein anderes Zeichen ist, aber selbst wenn der isTurdo-Boolwert auf „true“ gesetzt ist, verfügt er immer noch über die Floating-Fähigkeit.
I Ich habe diese Frage beantwortet, während sie noch zur Veröffentlichung geprüft wurde, und die Antwort hat funktioniert. Ich habe meine vorherige if-Anweisung durch „if ((_jumpBufferTimer > 0f && isMif && InputManager.JumpIsHeld && _isJumping && _isFalling) || (_isFastFalling && isMif))“ ersetzt und jetzt funktioniert es. Ich weiß nicht, wie ich hier einen Kommentar als Lösung zuweisen soll, daher bearbeite ich dies, um es euch allen mitzuteilen.