Вертикальная пружина силы анимации пигмеев - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь сделать анимацию / симуляцию вертикальной силы пружины в Pygame на основе моих расчетов в Python. Код, кажется, работает, но он не очень гладкий, и мяч выходит из «холста». Буду признателен за вашу помощь:)

(мы должны использовать метод Эйлера-Кромера, но он не так важен в анимации)

Я использую Mu для программирования анимации,

python] 1

Вот мой код:

from pygame import *

HEIGHT = 600
WIDTH = 400

COLORS = {
    'red': (255, 0, 0),
    'green': (0, 255, 0),
    'blue': (0,0,255),
    'white': (255, 255, 255),
    'black': (0,0,0)
}


class Ball:
    radius = 20
    color = COLORS['red']
    x = WIDTH//2
    y = HEIGHT//2
    speed_y = 1
    time1 = 0
    time2 = 0
    g = 0.981
    kF = 10 #N/m
    kL = 0.5
    m = 1 #kg

    def draw(self):
        screen.draw.filled_circle((self.x, self.y+300), self.radius, self.color)


    def update(self):
        self.time2 = time.get_ticks()
        dt = (self.time2 - self.time1)/1000
        self.time1 = self.time2

        self.a = self.g - (self.kL / self.m) * self.speed_y - (self.kF / self.m) * self.y

        self.speed_y = self.speed_y + self.a * dt

        self.y += int(dt * self.speed_y)

ball1 = Ball()

def draw():
    screen.clear()
    ball1.draw()

def update():
    ball1.update()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...