python简单游戏——冰球小游戏

在这里插入图片描述

#冰球游戏
from random import random,choice
from turtle import *

#自定义变量
player=[0,-140] 
ball=[0,140] #球
direction = [choice([-2,-1,1,2]),choice([-2,-1])] #球的运动方向

#定义函数
def move(aim):
    print(aim)
    player[0] += aim  #修改X坐标

def bounce():
    if ball[0]<=-300 or ball[0]>=290: #球碰到了边界 变成负数 反弹
        direction[0] = -direction[0] 
    elif ball[1] >= 150:  #如果碰到了上面的边界
        direction[1]=-direction[1]    
    elif ball[1] <= -140+10+5 and player[0] <=ball[0] <= player[0]+70: #是否接住了小球, +10 是长方块的高度 +5是小球的半径
        direction[1]=-direction[1]

#判断是否出界
def outside():
    if ball[1] <= -140:  #如果Y坐标小于等于140 下面的边界
        return True

#画长方形
def rectangle(x,y,width,height):
    up()
    goto(x,y)
    begin_fill()  #开始填充
    for n in range(2): #重复2次 形成正方形
        forward(width)
        left(90)
        forward(height)
        left(90)
    end_fill()

def draw():
    clear()
    up()  #画小球
    goto(ball[0],ball[1])
    dot(10,'red')
    rectangle(player[0],player[1],70,10)  #画长方形
    update()

def gameLoop():
    bounce() #球弹跳一下
    ball[0] += direction[0]*2  #调整球的速度
    ball[1] += direction[1]*2
    draw()
    if outside():
        return
    ontimer(gameLoop,50)    


#主程序
setup(620,320,0,0) #初始化620*320 的画布,画笔坐标是0,0
hideturtle()
tracer(False)
listen()  #键盘监听 d向右移动  a向左移到
onkey(lambda: move(20),'d')
onkey(lambda: move(-20),'a')
gameLoop()  #游戏主循环
done()    
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值