import numpy as np import time import sys import sdl2 import sdl2.ext import world_objects import universe import renderer sprites = ["./sdl_sprites/green.bmp", "./sdl_sprites/red.bmp", "./sdl_sprites/yellow.bmp", "./sdl_sprites/blue.bmp"] def generate_particle(my_renderer): location = np.random.randint(10,750,2) accel = np.random.randint(0,5,2) vel = np.random.randint(-10,10,2) print(len(sprites)) sprite = sprites[np.random.randint(0,(len(sprites)))] return world_objects.particle(location, vel, accel, 10, (255,0,0), 10.0, "blah", my_renderer, sprite) def run(): my_renderer = renderer.SdlRender() running = True my_universe = universe.universe() black_hole = world_objects.particle([400,400], [10,0], [0,0], 20, (0,0,255), 2000.0, "red", my_renderer, sprites[1]) my_universe.add_particle(black_hole) for i in range(100): my_universe.add_particle(generate_particle(my_renderer)) left = world_objects.line([0,0], [1,0]) top = world_objects.line([0,0], [0,1]) right = world_objects.line([800, 800], [1,0]) bottom = world_objects.line([800, 800], [0,1]) my_universe.add_line(left) my_universe.add_line(top) my_universe.add_line(right) my_universe.add_line(bottom) print(my_universe) start_time=0 while running: start_time = time.time() events = sdl2.ext.get_events() for event in events: if event.type == sdl2.SDL_QUIT: running = False break my_universe.process() stop_time = time.time() my_renderer.sdl_world.process() temp = stop_time - start_time start_time = time.time() print(f"Process physics: {(temp)*1000} ms Draw world: {(start_time - stop_time)*1000} ms") if __name__ == '__main__': sys.exit(run())