python3
pygame库(需下载)
下载python3。17如何下载并安装python3
下载pygame库(用pip指令)。 1如何安装pygame
下载python编译器(可以使用python自带的IDLE(打开方式:①打开Windows开始菜单 ②选择所有应用 ③找到python3.x文件夹 ④打开IDLE),也可以另下,此处选pycharm。)2如何下载PycharmEND
#初始化from pygame import* from pygame.locals import* import sys init() screen = display.set_mode((500,500)) #两个形状的x和y坐标 x1 = 0 y1 = 0 x2 = 50 y2 = 50 #两个形状的宽和高 w1 = 20 h1 = 20 w2 = 20 h2 = 20
#代码事件部分while True:#程序主循环 screen.fill((255,255,255)) for e in event.get(): if e.type == QUIT: quit() sys.exit() if e.type == KEYDOWN: if e.key == K_8: y1 -= 10 if e.key == K_2: y1 += 10 if e.key == K_4: x1 -= 10 if e.key == K_6: x1 += 10 if e.key == K_UP: y2 -= 10 if e.key == K_DOWN: y2 += 10 if e.key == K_LEFT: x2 -= 10 if e.key == K_RIGHT: x2 += 10
#算法核心 x12 = x1 + w1 y12 = y1 + h1 x22 = x2 + w2 y22 = y2 + h2 if x2 > x1 and x2 <= x12:#2号矩形碰到1号矩形的右侧 print('2号矩形碰到1号矩形的右侧') if x22 > x1 and x22 <= x12:#2号矩形碰到1号矩形的左侧 print('2号矩形碰到1号矩形的左侧') if y2 > y1 and y2 <= y12:#2号矩形碰到1号矩形的下侧 print('2号矩形碰到1号矩形的下侧') if y22 > y1 and y22 <= y12:#2号矩形碰到1号矩形的上侧 print('2号矩形碰到1号矩形的上侧')
#显示部分 xy1 = [x1,y1,w1,h1] xy2 = [x2,y2,w2,h2] draw.rect(screen,(0,0,0),xy1) draw.rect(screen,(0,0,0),xy2) display.update()
可以看到当两个方形碰撞后,就输出了碰撞方向。END
代码说明代码的1~22行是基本程序,23~40行是移动程序(为了演示),41~53行是算法关键,55~59行是显示程序。
算法说明利用x、y坐标和宽高之间的关系求出四个角的坐标,再相互比较,得出结果。
用所学的知识做一个飞机大战。END
斜体字体为可选项。
图片为作者电脑真实截图,未经允许不可转载。
控制正方形1的方向键为4826,控制正方形2的方向键为上下左右。