Problem mit Pixelgenauerkollision, Ball rutscht in Mauer

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
tuxfreak
User
Beiträge: 9
Registriert: Donnerstag 28. August 2008, 21:48

Problem: Der Ball soll auf die Plattform (den schwarzen Strich) fallen und dann wieder zurückfedern, bis er liegen bleibt. Problem ist, der Ball bleibt nicht endgültig liegen sondern rutscht in/durch den schwarzen Strich.

Der Code ist hier zu finden:
http://www.spielend-programmieren.at/wi ... ame:bounce

Code herunterladen


Das Problem liegt meiner meinung nach hier:

Code: Alles auswählen

    def calculate(self):
        self.speed += self.gravity * self.tick_seconds
 
        self.TrueX += self.speed.x * self.tick_seconds
        self.TrueY += self.speed.y * self.tick_seconds
 
    def update(self, tick_seconds):
        self.tick_seconds = tick_seconds
 
        if self.state == 'rip':
            self.getKeys()
 
        elif self.state == 'forcemove':
            self.calculate()
            self.rect.centerx = round(self.TrueX,0)
            self.rect.centery = round(self.TrueY,0)
            self.state = 'free'
 
        elif self.state == 'free':
            self.calculate()
            self.getSurface() # liefert Kollisionspixel in StopAt
            if self.stopAt is not None:
                self.TrueX = self.stopAt[0]
                self.TrueY = self.stopAt[1]
                self.speed *= -0.5
 
                if self.speed.length <= self.gravity.length * tick_seconds:
                    self.speed.length = 0
                    self.state = 'rip'
                else:
                    self.state = 'forcemove'
 
            self.getKeys()
            self.rect.centerx = round(self.TrueX,0)
            self.rect.centery = round(self.TrueY,0)
Py19917062
User
Beiträge: 113
Registriert: Freitag 30. Januar 2009, 00:53
Wohnort: Dortmund
Kontaktdaten:

wozu ist das vec2d modul gut?
Antworten