[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdegames/kolf
From: Stefan Majewsky <majewsky () gmx ! net>
Date: 2010-10-31 23:23:41
Message-ID: 20101031232341.AD1F9AC8B0 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1191718 by majewsky:
Introduce (temporarily!) a preprocessor macro that switches ball movement between the \
available physics engines.
Box2D is not yet the default because its stepping causes some severe
regressions (i.e. ghost walls from which the ball bounces off).
M +10 -0 ball.cpp
M +6 -0 ball.h
--- trunk/KDE/kdegames/kolf/ball.cpp #1191717:1191718
@@ -105,10 +105,20 @@
game->ballMoved();
}
+#if BALL_BOX2D_STEPPING
+void Ball::setVelocity(const Vector& velocity)
+{
+ CanvasItem::setPhysicalVelocity(velocity);
+ kDebug() << velocity;
+}
+#endif
+
void Ball::doAdvance()
{
+#if BALL_BOX2D_STEPPING == 0
if (!velocity().isNull())
moveBy(velocity().x(), velocity().y());
+#endif
}
void Ball::collisionDetect()
--- trunk/KDE/kdegames/kolf/ball.h #1191717:1191718
@@ -20,6 +20,7 @@
#ifndef KOLF_BALL_H
#define KOLF_BALL_H
+#define BALL_BOX2D_STEPPING 1
#include "canvasitem.h"
class Wall;
@@ -51,6 +52,11 @@
void friction();
void collisionDetect();
+#if BALL_BOX2D_STEPPING
+ virtual void setVelocity(const Vector& velocity);
+ Vector velocity() const { return CanvasItem::physicalVelocity(); }
+#endif
+
int addStroke() const { return m_addStroke; }
bool placeOnGround(Vector &v) { v = m_pogOldVelocity; return m_placeOnGround; }
void setAddStroke(int newStrokes) { m_addStroke = newStrokes; }
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic