PONG GAME APP

Please if you like my content Please do not forget to support this channel on PayPal now for $1 only! Or less 


 from kivy.app import App

from kivy.core.audio import SoundLoader
from kivy.uix.widget import Widget
from kivy.properties import (
NumericProperty, ReferenceListProperty, ObjectProperty
)
from kivy.vector import Vector
from kivy.clock import Clock
from random import randint
from kivy.lang.builder import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
import pickle
import os.path


class MenuScreen(Screen):
pass


class WindowsManager(ScreenManager):
pass


class Player(Widget):
click = SoundLoader.load("ClickSound.wav")
velocity_x = NumericProperty(0)
velocity_y = NumericProperty(0)
velocity = ReferenceListProperty(velocity_x, velocity_y)

def move(self):
self.pos = Vector(*self.velocity) + self.pos

def bounce_ball(self, ball):
if self.collide_widget(ball):
self.click.play()

ball.velocity_y *= -1


class PongBall(Widget):
velocity_x = NumericProperty(0)
velocity_y = NumericProperty(0)
velocity = ReferenceListProperty(velocity_x, velocity_y)

def move(self):
self.pos = Vector(*self.velocity) + self.pos


class PongGame(Widget):
click = SoundLoader.load("ClickSound.wav")
failed = SoundLoader.load("Fail.wav")
score = NumericProperty(0)

ball = ObjectProperty(None)
player = ObjectProperty(None)
if os.path.isfile("savedpong"):
text = pickle.load(open("savedpong", "rb"))
print(text)
score = NumericProperty(text)
else:
score = NumericProperty(0)


def serve_ball(self):
self.ball.center = self.center
self.ball.velocity = Vector(8, 0).rotate(randint(0, 360))

def serve_player(self):
self.player.center = self.center
self.player.velocity = Vector(0, 0)

def update(self, dt):
self.player.move()
self.ball.move()
score = 0

if (self.ball.top > self.height):
self.click.play()
self.ball.velocity_y *= -1
self.score += 1
score = self.score

score = pickle.dump(score, open("savedpong", "wb"))
print(score)

if (self.ball.x < 0) or (self.ball.right > self.width):
self.click.play()
self.ball.velocity_x *= -1
self.score += 1
score = self.score

score = pickle.dump(score, open("savedpong", "wb"))
print(score)

if (self.ball.y < 0):
self.failed.play()
print('gameover')
self.score = 0
score = pickle.dump(score, open("savedpong", "wb"))

self.serve_ball()

self.player.bounce_ball(self.ball)

def on_touch_move(self, touch):

self.player.center_x = touch.x


class PongApp(App):
def build(self):
game = PongGame()
game.serve_ball()
game.serve_player()

Clock.schedule_interval(game.update, 1.0 / 60.0)

return game


if __name__ == '__main__':
PongApp().run()


KV FILE







<Player>:
size:100,20


canvas:

Rectangle:
pos: self.pos
size: self.size






<PongBall>:

size: 30, 30

canvas:


Ellipse:
pos: self.pos
size: self.size




<PongGame>:
canvas.before:
Color:
rgba: (255/31,204/204,50/255,255)
Rectangle:
pos: self.pos
size: self.size

name: "game"

ball: pong_ball
player: player_1




Label:
font_size: 70
font_name: "Comic"
center_x: root.width / 2.1
top: root.top - 50
text: str(root.score)












PongBall:
id: pong_ball
center: self.parent.center

Player:
id: player_1

No comments:

Post a Comment

Drawing App For Kivy

  Below here is the source code for Drawing Application for kivy. Please if you like this content.  Don't forget to Subscribe to my YouT...