Untitled
2 years ago in Plain Text
from sense_hat import SenseHat
import time
sense = SenseHat()
white = (255, 255, 255)
yellow = (255, 255, 0)
#bat coordinates on y-axis, can be between 1-6 as we assign to it three pixels long
bat_y = 4
ball_position = [3, 3]
#posiion where the ball moves
ball_velocity = [1, 1]
ball_position2 = [6, 5]
ball_velocity2 = [1, 1]
ball_lives = 3
#ball position x = position 0 in arrey, y = position 1.
def draw_ball():
sense.set_pixel(ball_position[0], ball_position[1], yellow)
#moving ball on x-axis
ball_position[0] += ball_velocity[0]
if ball_position[0] == 7 or ball_position[0] == 0:
#revesing ball if it reaches 7 or 0
ball_velocity[0] = -ball_velocity[0]
#moving ball on y-axis
ball_position[1] += ball_velocity[1]
if ball_position[1] == 7 or ball_position[1] == 0:
ball_velocity[1] = -ball_velocity[1]
#collision condition
if ball_position[0] == 1 and (bat_y-1) <= ball_position[1] <= (bat_y+1):
ball_velocity[0] = -ball_velocity[0]
#game over condition
if ball_position[0] == 0:
ball_lives = ball_lives - 1
sense.clear()
if ball_lives == 0:
sense.show_message("you lost")
time.sleep(5)
def draw_ball2():
sense.set_pixel(ball_position2[0], ball_position2[1], yellow)
ball_position2[0] += ball_velocity2[0]
if ball_position2[0] == 7 or ball_position2[0] == 0:
ball_velocity2[0] = -ball_velocity2[0]
ball_position2[1] += ball_velocity2[1]
if ball_position2[1] == 7 or ball_position2[1] == 0:
ball_velocity2[1] = -ball_velocity2[1]
if ball_position2[0] == 1 and (bat_y-1) <= ball_position2[1] <= (bat_y+1):
ball_velocity2[0] = -ball_velocity2[0]
if ball_position2[0] == 0:
sense.show_message("you lost")
time.sleep(5)
#function to draw bat on sensehat
def draw_bat():
sense.clear()
sense.set_pixel(0, bat_y, white)
sense.set_pixel(0, bat_y + 1, white)
sense.set_pixel(0, bat_y - 1, white)
#joystick: press/release/hold/left/right/up/down
def move_up(event):
global bat_y
#adding bat_y>1 to avoid bat going outside the room (top)
if event.action == 'pressed' and bat_y > 1:
bat_y -= 1
def move_down(event):
global bat_y
#limit of y=6 as the bat is takin' 3 pixel-positions
#bat_y < 6 avoids bat going outside the room (bottom)
if event.action == 'pressed' and bat_y < 6:
bat_y += 1
#checks if event was triggered
while True:
sense.stick.direction_up = move_up
draw_bat()
draw_ball()
time.sleep(0.25)
sense.stick.direction_down = move_down
draw_bat()
draw_ball()
time.sleep(0.25)
#decreasing sleep to increase balls speed from time to time
sense.stick.direction_up = move_up
draw_bat()
draw_ball()
time.sleep(0.15)
sense.stick.direction_down = move_down
draw_bat()
draw_ball()
time.sleep(0.15)
#agan decreasing sleep to increase balls speed
sense.stick.direction_up = move_up
draw_bat()
draw_ball()
time.sleep(0.1)
sense.stick.direction_down = move_down
draw_bat()
draw_ball()
time.sleep(0.1)