PYTHON
Welcome to Ninja jumper game!
I am Ruben Alvarez, in this webpage you will find my game called "Ninja jumper" .
This game consist of moing the ninja to get the gems and the maximus score by juming over diferents plataforms using the keyboard arrows
This is the Python code:
import time
import pygame
import random
WIDTH = 1000
HEIGHT = 600
blue = 150
blueforward = True
groundcolour = 0,0,139
floor = Rect ((0,580), (1000,20))
#Ninja
ninja = Actor('jumper-1',(500,250))
ninja_x_velocity = 0
ninja_y_velocity = 0
gravity = 1
jumping = False
jumped = False
allowx = True
timer = []
#platforms
platform1 = Rect((450,500),(100,10))
platform2 = Rect((300,400),(100,10))
platform3 = Rect((600,400),(100,10))
platform4 = Rect((200,300),(100,10))
platform5 = Rect((700,300),(100,10))
platform6 = Rect((100,200),(100,10))
plat61_x = 200
plat62_x = 700
platform61 = Rect((plat61_x,200),(100,10))
platform62 = Rect((plat62_x,200),(100,10))
platform7 = Rect((800,200),(100,10))#..moving out right(
platform8 = Rect((0,100),(100,10))#top far left
platform9 = Rect((900,100),(100,10))#top far rigth
platforms =[floor,platform1,platform2,platform3,platform4,platform5,platform6,platform7,platform8,platform9,platform61,platform62]#list to platforms
plat61left = True
plat62left = False
#Gems
diamond_x = [950,50,850,150,750,250,650,350,500]
diamond_y = [70,70,170,170,270,270,370,370,470]
d_xy = random.randint(0,8)
gem = Actor('diamond_s', (diamond_x[d_xy],diamond_y[d_xy]))
points = 0
#music
pygame.mixer.pre_init(22050, -16, 2, 1024)
pygame.init()
pygame.mixer.quit()
pygame.mixer.init(22050, -16, 2, 1024)
sounds.ninja_music.play(-1)
def draw():
global platform61, platform62
screen.fill((173,216,blue))
screen.blit('skyline_large',(0,0))
platform61 = Rect((plat61_x,200),(100,10))
platform62 = Rect((plat62_x,200),(100,10))
platforms[10] = platform61
platforms[11] = platform62
for i in platforms:
screen.draw.filled_rect(i,groundcolour)
ninja.draw()
gem.draw()
screen.draw.text("Loot:", center=(50,540), fontsize=40, shadow=(1,1),
color=(255,255,255), scolor="#202020")
screen.draw.text(str(points), center=(45,570), fontsize=40,
shadow=(1,1), color=(255,255,255), scolor="#202020")
def update():
backgroundcolourfade()
platform_mover()
ninja_move()
def ninja_move():
global ninja_x_velocity, ninja_y_velocity, jumping, gravity, jumped, allowx, timer, points, d_xy
#facing the front
if ninja_x_velocity == 0 and not jumped:
ninja.image = 'jumper-1'
#gravity
if collidecheck():
gravity = 1
ninja.y -= 1
allowx = True
timer = []
if not collidecheck():
ninja.y += gravity
if gravity <= 20:
gravity += 0.5
timer.append(pygame.time.get_ticks())
if len(timer) > 5 and not jumped:
allowx = False
ninja.image = 'jumper-up'
if len(timer) > 20:
ninja.image = 'jumper-fall'
if len(timer) > 30:
ninja.image = 'jumper-fall2'
#print(timer)
#left and right movement
if (keyboard.left) and allowx:
if ( ninja.x > 40) and (ninja_x_velocity > -8):
ninja_x_velocity -= 2
ninja.image = "jumper-left"
if (keyboard.left) and jumped:
ninja.image = "jumper-jleft"
if (keyboard.right) and allowx:
if (ninja.x < 960) and ( ninja_x_velocity < 8):
ninja_x_velocity += 2
ninja.image = "jumper-right"
if (keyboard.right) and jumped:
ninja.image = "jumper-jright"
ninja.x += ninja_x_velocity
print(allowx)
#velocity
if ninja_x_velocity > 0:
ninja_x_velocity -= 1
if ninja_x_velocity < 0:
ninja_x_velocity += 1
if ninja.x <50 or ninja.x > 950:
ninja_x_velocity = 0
#jumping
if (keyboard.up) and collidecheck()and not jumped:
sounds.jump.play()
jumping = True
jumped = True
clock.schedule_unique(jumpedrecently,0.4)
ninja.image = "jumper-up"
ninja_y_velocity = 95
if jumping and ninja_y_velocity > 25:
ninja_y_velocity = ninja_y_velocity - ((100 - ninja_y_velocity)/2)
#print(ninja_y_velocity)
ninja.y -= ninja_y_velocity/3 #jump.height
else:
ninja_y_velocity = 0
jumping = False
#gem collisic
if ninja.colliderect(gem):
points += 1
sounds.gem.play()
old_d_xy = d_xy
d_xy = random.randint(0,8)
while old_d_xy == d_xy:
d_xy = random.randint(0,8)
gem.x = diamond_x[d_xy]
gem.y = diamond_y[d_xy]
def platform_mover():
global plat61_x, plat62_x, plat61left, plat62left
#left platform
if plat61left:
plat61_x += 2
if plat61_x == 400:
plat61left = False
if ninja.colliderect(platform61):
ninja.x += 2
else:
plat61_x -= 2
if plat61_x == 200:
plat61left = True
if ninja.colliderect(platform61):
ninja.x -= 2
#right platform
if plat62left:
plat62_x += 2
if plat62_x == 700:
plat62left = False
if ninja.colliderect(platform62):
ninja.x += 2
else:
plat62_x -= 2
if plat62_x == 500:
plat62left = True
if ninja.colliderect(platform62):
ninja.x -= 2
def collidecheck():
collide = False
for i in platforms:
if ninja.colliderect(i):
collide = True
return collide
def jumpedrecently():
global jumped
jumped = False
def backgroundcolourfade():
global blue, blueforward
if blue < 255 and blueforward:
blue += 1
else:
blueforward = False
if blue > 130 and not blueforward:
blue -= 1
else:
blueforward = True
This is a screenshot of the game