本文整理汇总了Python中ball.Ball.check_collision_laterals方法的典型用法代码示例。如果您正苦于以下问题:Python Ball.check_collision_laterals方法的具体用法?Python Ball.check_collision_laterals怎么用?Python Ball.check_collision_laterals使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ball.Ball
的用法示例。
在下文中一共展示了Ball.check_collision_laterals方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Game
# 需要导入模块: from ball import Ball [as 别名]
# 或者: from ball.Ball import check_collision_laterals [as 别名]
class Game(pyglet.window.Window):
running = False
racket_left = None
racket_right = None
racket_me = None
score = None
master_client = False
multiplayer_mode = False
def __init__(self, multiplayer_mode = False):
self.load_sprites()
self.multiplayer_mode = multiplayer_mode
if self.multiplayer_mode:
self.me, self.conn = connect()
def draw(self):
if self.multiplayer_mode:
self.draw_multiplayer()
else:
self.draw_singleplayer()
def run(self):
if not self.running:
pyglet.clock.schedule_interval(self.ball.moving, .005)
self.running = True
def pause(self):
if self.running:
pyglet.clock.unschedule(self.ball.moving)
self.running = False
def load_sprites(self):
self.score = pyglet.text.Label('', font_size=15, x=settings.WINDOW_WIDTH/2, y=settings.WINDOW_HEIGHT - 15, anchor_x='center', anchor_y='center')
self.racket_left = Racket(pyglet.resource.image(settings.RACKET_IMG)).center_anchor_y(settings.WINDOW_HEIGHT)
self.racket_right = Racket(pyglet.resource.image(settings.RACKET_IMG)).center_anchor_y(settings.WINDOW_HEIGHT)
self.ball = Ball(pyglet.resource.image(settings.BALL_IMG)).center_anchor_y(settings.WINDOW_HEIGHT).center_anchor_x(settings.WINDOW_WIDTH)
self.racket_right.x = settings.WINDOW_WIDTH - self.racket_right.width
self.racket_me = self.racket_left
def define_players(self, server_response):
if self.me == sorted(server_response.keys())[0]: #the first client connection
self.master_client = True
self.racket_me = self.racket_left
self.racket_vs = self.racket_right
self.score.text = 'Im master'
else:
self.racket_me = self.racket_right
self.racket_vs = self.racket_left
self.score.text = 'Im slave'
def on_collision(self):
player = self.ball.check_collision([self.racket_left, self.racket_right])
if player:
self.ball.hit_racket()
player.increase_score()
self.ball.prevent_stick(player)
if self.ball.check_collision_laterals(settings.WINDOW_HEIGHT):
self.ball.hit_lateral()
def update_server_data(self):
data = {
"ball": {
"x": self.ball.x,
"y": self.ball.y,
},
"racket": {
"x": self.racket_me.x,
"y": self.racket_me.y,
}
}
self.conn.send(simplejson.dumps(data))
return simplejson.loads(self.conn.recv(2000))
def update_multiplayer_positions(self, data):
for playerid in data.keys():
try:
if playerid != self.me:
self.racket_vs.y = data[playerid]['racket']['y']
if not self.master_client:
self.ball.x = data[playerid]['ball']['x']
self.ball.y = data[playerid]['ball']['y']
except:
pass
def draw_multiplayer(self):
data = self.update_server_data()
self.define_players(data)
if self.master_client:
if len(data.keys()) == 2:
self.run()
else:
self.pause()
if self.master_client:
self.on_collision()
self.update_multiplayer_positions(data)
def draw_singleplayer(self):
#.........这里部分代码省略.........