Pygame Game Code

This is the pygame code repository, a place to store, display and share community-submitted python game code. Our goal here is to help the members of the pygame community learn from one another, and to reduce the amount of duplication that occurs in pygame projects.

  1. Game Code Pc
  2. Pygame Simple Game Code
  3. Python Pygame Game Code
  4. Free Game Code
pong.py
  1. Screen = pygame.display.setmode((720, 480)) # Notice the tuple! It's not 2 arguments. Clock = pygame.time.Clock FPS = 60 # This variable will define how many frames we update per second. For a bit of readability later in our code we'll create two color constants, which represent a tuple of Red, Green and Blue (RGB).
  2. In this video, we'll get started with Pygame and build a basic game template to use in the rest of our projects. Before watching this video please make sure.
  3. The game is an arcade game and it has very simple logic, which is why it is an ideal example to demonstrate how to build games with Pygame. The player is represented as snake, which grows if it eats an apple. The goal of the game is to eat as many apples as possible without colliding into yourself.
  4. Bub Brothers is a network-based game with up to 10 players. Similar to the classic Bubble Bobble games, players compete to collect the most points. Tons of powerups and bonuses, frantic arcade action.
  5. Popular Snake game with Python-Pygame module. You need to put links to the data from the files in order for others to be able to use this code. Plus the images are png's that you have saved. You need to add attachments to all the external files in order for the code to be executed.
#PONG pygame
import random
import pygame, sys
from pygame.locals import*
pygame.init()
fps = pygame.time.Clock()
#colors
WHITE= (255,255,255)
RED= (255,0,0)
GREEN= (0,255,0)
BLACK= (0,0,0)
#globals
WIDTH=600
HEIGHT=400
BALL_RADIUS=20
PAD_WIDTH=8
PAD_HEIGHT=80
HALF_PAD_WIDTH=PAD_WIDTH/2
HALF_PAD_HEIGHT=PAD_HEIGHT/2
ball_pos = [0,0]
ball_vel = [0,0]
paddle1_vel =0
paddle2_vel =0
l_score =0
r_score =0
#canvas declaration
window = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32)
pygame.display.set_caption('Hello World')
# helper function that spawns a ball, returns a position vector and a velocity vector
# if right is True, spawn to the right, else spawn to the left
defball_init(right):
global ball_pos, ball_vel # these are vectors stored as lists
ball_pos = [WIDTH/2,HEIGHT/2]
horz = random.randrange(2,4)
vert = random.randrange(1,3)
if right False:
horz =- horz
ball_vel = [horz,-vert]
# define event handlers
definit():
global paddle1_pos, paddle2_pos, paddle1_vel, paddle2_vel,l_score,r_score # these are floats
global score1, score2 # these are ints
paddle1_pos = [HALF_PAD_WIDTH-1,HEIGHT/2]
paddle2_pos = [WIDTH+1-HALF_PAD_WIDTH,HEIGHT/2]
l_score =0
r_score =0
if random.randrange(0,2) 0:
ball_init(True)
else:
ball_init(False)
#draw function of canvas
defdraw(canvas):
global paddle1_pos, paddle2_pos, ball_pos, ball_vel, l_score, r_score
canvas.fill(BLACK)
pygame.draw.line(canvas, WHITE, [WIDTH/2, 0],[WIDTH/2, HEIGHT], 1)
pygame.draw.line(canvas, WHITE, [PAD_WIDTH, 0],[PAD_WIDTH, HEIGHT], 1)
pygame.draw.line(canvas, WHITE, [WIDTH-PAD_WIDTH, 0],[WIDTH-PAD_WIDTH, HEIGHT], 1)
pygame.draw.circle(canvas, WHITE, [WIDTH//2, HEIGHT//2], 70, 1)
# update paddle's vertical position, keep paddle on the screen
if paddle1_pos[1] >HALF_PAD_HEIGHTand paddle1_pos[1] <HEIGHT-HALF_PAD_HEIGHT:
paddle1_pos[1] += paddle1_vel
elif paddle1_pos[1] HALF_PAD_HEIGHTand paddle1_vel >0:
paddle1_pos[1] += paddle1_vel
elif paddle1_pos[1] HEIGHT-HALF_PAD_HEIGHTand paddle1_vel <0:
paddle1_pos[1] += paddle1_vel
if paddle2_pos[1] >HALF_PAD_HEIGHTand paddle2_pos[1] <HEIGHT-HALF_PAD_HEIGHT:
paddle2_pos[1] += paddle2_vel
elif paddle2_pos[1] HALF_PAD_HEIGHTand paddle2_vel >0:
paddle2_pos[1] += paddle2_vel
elif paddle2_pos[1] HEIGHT-HALF_PAD_HEIGHTand paddle2_vel <0:
paddle2_pos[1] += paddle2_vel
#update ball
ball_pos[0] +=int(ball_vel[0])
ball_pos[1] +=int(ball_vel[1])
#draw paddles and ball
pygame.draw.circle(canvas, RED, ball_pos, 20, 0)
pygame.draw.polygon(canvas, GREEN, [[paddle1_pos[0] -HALF_PAD_WIDTH, paddle1_pos[1] -HALF_PAD_HEIGHT], [paddle1_pos[0] -HALF_PAD_WIDTH, paddle1_pos[1] +HALF_PAD_HEIGHT], [paddle1_pos[0] +HALF_PAD_WIDTH, paddle1_pos[1] +HALF_PAD_HEIGHT], [paddle1_pos[0] +HALF_PAD_WIDTH, paddle1_pos[1] -HALF_PAD_HEIGHT]], 0)
pygame.draw.polygon(canvas, GREEN, [[paddle2_pos[0] -HALF_PAD_WIDTH, paddle2_pos[1] -HALF_PAD_HEIGHT], [paddle2_pos[0] -HALF_PAD_WIDTH, paddle2_pos[1] +HALF_PAD_HEIGHT], [paddle2_pos[0] +HALF_PAD_WIDTH, paddle2_pos[1] +HALF_PAD_HEIGHT], [paddle2_pos[0] +HALF_PAD_WIDTH, paddle2_pos[1] -HALF_PAD_HEIGHT]], 0)
#ball collision check on top and bottom walls
ifint(ball_pos[1]) <=BALL_RADIUS:
ball_vel[1] =- ball_vel[1]
ifint(ball_pos[1]) >=HEIGHT+1-BALL_RADIUS:
ball_vel[1] =-ball_vel[1]
#ball collison check on gutters or paddles
ifint(ball_pos[0]) <=BALL_RADIUS+PAD_WIDTHandint(ball_pos[1]) inrange(paddle1_pos[1] -HALF_PAD_HEIGHT,paddle1_pos[1] +HALF_PAD_HEIGHT,1):
ball_vel[0] =-ball_vel[0]
ball_vel[0] *=1.1
ball_vel[1] *=1.1
elifint(ball_pos[0]) <=BALL_RADIUS+PAD_WIDTH:
r_score +=1
ball_init(True)
ifint(ball_pos[0]) >=WIDTH+1-BALL_RADIUS-PAD_WIDTHandint(ball_pos[1]) inrange(paddle2_pos[1] -HALF_PAD_HEIGHT,paddle2_pos[1] +HALF_PAD_HEIGHT,1):
ball_vel[0] =-ball_vel[0]
ball_vel[0] *=1.1
ball_vel[1] *=1.1
elifint(ball_pos[0]) >=WIDTH+1-BALL_RADIUS-PAD_WIDTH:
l_score +=1
ball_init(False)
#update scores
myfont1 = pygame.font.SysFont('Comic Sans MS', 20)
label1 = myfont1.render('Score '+str(l_score), 1, (255,255,0))
canvas.blit(label1, (50,20))
myfont2 = pygame.font.SysFont('Comic Sans MS', 20)
label2 = myfont2.render('Score '+str(r_score), 1, (255,255,0))
canvas.blit(label2, (470, 20))
#keydown handler
defkeydown(event):
global paddle1_vel, paddle2_vel
if event.key K_UP:
paddle2_vel =-8
elif event.key K_DOWN:
paddle2_vel =8
elif event.key K_w:
paddle1_vel =-8
elif event.key K_s:
paddle1_vel =8
#keyup handler
defkeyup(event):
global paddle1_vel, paddle2_vel
if event.key in (K_w, K_s):
paddle1_vel =0
elif event.key in (K_UP, K_DOWN):
paddle2_vel =0
init()
#game loop
whileTrue:
draw(window)
for event in pygame.event.get():
if event.type KEYDOWN:
keydown(event)
elif event.type KEYUP:
keyup(event)
elif event.type QUIT:
pygame.quit()
sys.exit()
pygame.display.update()
fps.tick(60)

commented Mar 7, 2017
edited

Nice and Simple code. Just one feedback. Please update all the lines having / to // as python 3 does not give back Integer with normal division symbol if the variables being used are not integer. hence creating a Type Error. for example:

ball_pos = [WIDTH/2,HEIGHT/2] to ball_pos = [WIDTH//2,HEIGHT//2]

Otherwise users will get TypeError: integer argument expected, got float
Rest is perfect.

commented Aug 12, 2017

yeah can someone please help I have the same issue as above and idk how to fix this of..
'Traceback (most recent call last):
File 'pong.py', line 157, in
draw(window)
File 'pong.py', line 111, in draw
if int(ball_pos[0]) >= WIDTH + 1 - BALL_RADIUS - PAD_WIDTH and int(ball_pos[1]) in range(paddle2_pos[1] - HALF_PAD_HEIGHT,paddle2_pos[1] + HALF_PAD_HEIGHT,1):
TypeError: 'float' object cannot be interpreted as an integer'

commented Sep 1, 2017

@Actonwarrior, @BrandedAlok, see the first comment about replacing '/' lines with '//' throughout the code. I had to change those on about about 6 or 8 lines to make the game run.

commented Dec 3, 2017

I forked a version and modify it to Python 3
https://github.com/hamdyaea/Daylight-Pong-python3

commented Dec 22, 2017

mine is fine but how do you control the other person's one

commented Jan 25, 2018

how do you make the ball go faster?

commented Mar 10, 2018

How to make pong such that the 2nd player can control it from another network.

Python pygame game code

Game Code Pc

commented Mar 24, 2018

Pygame Game Code

Pygame Simple Game Code

KhushThePatel you use z and s

Python Pygame Game Code

Pygame 2d game code

Free Game Code

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment