Latest Awards
Complete 10 python programs which focus on loops.

morgan

Score over 100 points in total

vincebanter10

Complete any 5 python programs

vincebanter10

Complete 3 python list based tasks

vincebanter10

Complete 5 python list based tasks

vincebanter10

Complete 10 python list based tasks

dman12

Score over 1000 points in total

april-logan

Complete any pygame task

april-logan

Complete any 3 pygame tasks

april-logan

You have to complete 5 pygame tasks

april-logan

Score over 500 points in total

sam-edmund

Complete any pygame task

sam-edmund

Complete any 3 pygame tasks

sam-edmund

You have to complete 5 pygame tasks

sam-edmund

Complete any pygame task

12wrigleyf

Complete any 3 pygame tasks

12wrigleyf

You have to complete 5 pygame tasks

12wrigleyf

Score over 500 points in total

jhoughton12

Complete any 10 python prograns

jhoughton12

Complete 10 python programs which focus on loops.

jhoughton12

Python Score
tasks = 0
achivements = 0
freestyle = 0
Total = 0
Top 5 Scores
114gilo 3500
2joss-nolan-2 2530
3alexdawkins 2515
4byrnebrian 2080
512wattsl 1750
Click to view all scores
Who else completed this task?
No one has completed this task yet. Be the first!

Edge detection

Edge detection

When dealing with edge detection you must manually add it to your programs. Pygame does offer collision detection, which will be covered later, but simple screen boundary checks can be done using 2 if statements. By adding the x and y speeds (shown as dx and dy), you can easily manipulate them by reversing the sign (multiply by -1).

from pygame import *

init()

width = 640
height = 480

screen = display.set_mode((width, height)) # tuple
display.set_caption('Graphics')

animationTimer = time.Clock()
x=10
y=10
dx = 2 # how fast/direction in x 
dy = 3 # how fast/direction in y
endProgram = False

# game loops
# check input
# Update positions / game logic
# draw frame

while not endProgram:
	# Check input
	for e in event.get():
		if e.type == QUIT:
			endProgram = True
	# update position
	x += dx
	y += dy
	# border check
	if y<0 or y>height - 40 :
		dy *= -1
	if x<0 or x>width - 40:
		dx *= -1
	# draw stuff
	screen.fill((100,100,200))
	# circle
	draw.ellipse(screen, (0,255,0), (x, y, 40, 40)) 
	
	# limit to 30 frames per second 
	animationTimer.tick(100)
	# update the screen!
	display.update()

Leave a Reply

You must be logged in to post a comment.