Ich versuche, ein einfaches Platformer in Love2D zu machen. Momentan habe ich meine Spielerklasse unter anderen Sachen (Kollisionshandhabungsklasse, Level-Klassen usw.).Springen mit Schwerkraft und Kollision
Das Hauptproblem, das ich habe, ist Springen. Ich kann es einfach nicht richtig funktionieren lassen.
Wenn ich hüpfe, wird der Player zu schnell heruntergezogen, um den Sprung nützlich zu machen. Warum passiert dies? Dies wird von ROBLOX Code-portiert, und in ROBLOX Studio funktioniert das Springen normalerweise. Diese
ist innerhalb der Update-Funktion des Players, die jeder Rahmen aus love.update genannt wird:
if not love.keyboard.isDown("a") and not love.keyboard.isDown("d") then
self.Velocity=self.Velocity * Vector2.new(0.95,1)
end
if self.Velocity.Y < -self.maxFallVel then
self.Velocity=Vector2.new(self.Velocity.X,self.maxFallVel)
end
if love.keyboard.isDown("d") and self.Velocity.X<self.maxVel and not love.keyboard.isDown("a") then
self.Velocity = self.Velocity+Vector2.new(.1,0) -- right movement
end
if love.keyboard.isDown("a") and self.Velocity.X<self.maxVel and not love.keyboard.isDown("d") then
self.Velocity = self.Velocity-Vector2.new(.1,0) -- left movement
end
if love.keyboard.isDown("space") and self.hasCollision and not self.Jumped then
if self.Velocity.Y == 0 then
self.Velocity.Y = -30
end
end
self.Position=self.Position+Vector2.new(self.Velocity.X,self.Velocity.Y)
if not self.hasCollision then self.Velocity.Y = self.Velocity.Y - self.Gravity end
Wenn ich für Kollisionen in der main.lua Datei überprüfen, dort habe ich die Variable self.hasCollision zu richtig oder falsch.