Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import simplegui
- import math
- Width = 500
- Height = 500
- player_sprite = simplegui.load_image("https://i.imglnx.com/fhN53R.png")
- sun_sprite_image = simplegui.load_image("https://i.imglnx.com/Vsd87P.png")
- circle1_center = [50, 450]
- circle1_radius = 17
- velocity_circle1 = [0,0]
- acceleration1 = 2
- bounce_distance1 = 10
- sun_hitbox_center = [Width/2,Height/2]
- sun_hitbox_radius = 40
- def keydown1(key):
- global velocity_circle1, acceleration1
- if key == simplegui.KEY_MAP["left"]:
- velocity_circle1[0] -= acceleration1
- elif key == simplegui.KEY_MAP["up"]:
- velocity_circle1[1] -= acceleration1
- elif key == simplegui.KEY_MAP["right"]:
- velocity_circle1[0] += acceleration1
- elif key == simplegui.KEY_MAP["down"]:
- velocity_circle1[1] += acceleration1
- def keyup1(key):
- global velocity_circle1
- if key == simplegui.KEY_MAP["left"]:
- velocity_circle1[0] = 0
- elif key == simplegui.KEY_MAP["up"]:
- velocity_circle1[1] = 0
- elif key == simplegui.KEY_MAP["right"]:
- velocity_circle1[0] = 0
- elif key == simplegui.KEY_MAP["down"]:
- velocity_circle1[1] = 0
- def draw_sprites(canvas):
- global Width, Height, circle1_center, velocity_circle1, sun_hitbox_center, circle1_radius, sun_hitbox_radius, bounce_distance1
- canvas.draw_image(player_sprite, [1060/2, 1060/2], [1060, 1060], circle1_center, [40, 40])
- canvas.draw_image(sun_sprite_image, [3002/2, 3005/2], [3002, 3005], sun_hitbox_center, [70, 70])
- circle1_center[0] = circle1_center[0] + velocity_circle1[0]
- circle1_center[1] = circle1_center[1] + velocity_circle1[1]
- x = math.pow((sun_hitbox_center[0]-circle1_center[0]), 2)
- y = math.pow((sun_hitbox_center[1]-circle1_center[1]), 2)
- distance = math.sqrt(x + y)
- if circle1_radius+sun_hitbox_radius >= distance:
- if circle1_center[0] > sun_hitbox_center[0]:
- circle1_center[0] += bounce_distance1
- elif circle1_center[1] > sun_hitbox_center[1]:
- circle1_center[1] += bounce_distance1
- elif circle1_center[0] < sun_hitbox_center[0]:
- circle1_center[0] -= bounce_distance1
- elif circle1_center[1] < sun_hitbox_center[1]:
- circle1_center[1] -= bounce_distance1
- #Circle-border collision
- if circle1_center[0] <= circle1_radius:
- circle1_center[0] += bounce_distance1
- elif circle1_center[0] >= Width-circle1_radius:
- circle1_center[0] -= bounce_distance1
- elif circle1_center[1] <= circle1_radius:
- circle1_center[1] += bounce_distance1
- elif circle1_center[1] >= Height-circle1_radius:
- circle1_center[1] -= bounce_distance1
- frame = simplegui.create_frame("Circle Orbital Simulation", Width, Height)
- frame.set_draw_handler(draw_sprites)
- frame.set_keydown_handler(keydown1)
- frame.set_keyup_handler(keyup1)
- frame.start()
Advertisement
Add Comment
Please, Sign In to add comment