从零开始做一个基于pygame引擎的躲闪小游戏(一)-画矩形、画圆、简单的碰撞检测
来源:互联网 发布:python画图pylab 编辑:程序博客网 时间:2024/05/02 04:17
前面我们已经搭建好了pygame开发的环境:http://blog.csdn.net/v_xchen_v/article/details/52698428
1)Step:从在屏幕上画出一个方块开始
import pygamepygame.init()screen_tltle=pygame.display.set_caption("Hide Game")screen =pygame.display.set_mode([600,480])screen.fill([255,255,255])while True: pygame.draw.rect(screen,[255,0,0],[250,250,100,30],3) pygame.display.flip()
import pygame #导入pygame库pygame.init() #模块初始化screen_tltle=pygame.display.set_caption("Hide Game") #设置窗口标题screen =pygame.display.set_mode([600,480]) #建立一个窗口,大小为600*480screen.fill([255,255,255]) #将窗口的背景颜色设置为白色while True: #设置循环的目的是为了不断重复的画方块,以便让我们看清 pygame.draw.rect(screen,[255,0,0],[250,250,100,30],3) #在窗口上画一个方块,颜色为红色[255,0,0]坐标为X=250,Y=250,大小为100*30,线条粗细为3 pygame.display.flip() #将绘制的图形刷新到窗口,如果不写这一条,窗口是不会现实方块的
Step 2)在屏幕上随机位置上生成方块,并让方块向下移动
import pygame,syspygame.init()import randomimport timecubeX=[]cubeY=[]screen_tltle=pygame.display.set_caption("Hide Game")screen =pygame.display.set_mode([1000,500])screen.fill([100,100,100])while True: cubeX.append(1000*random.random()) cubeY.append(0) s=len(cubeX) for i in range(0,s): pygame.draw.rect(screen,[255,0,0],[cubeX[i],cubeY[i],100,30],3) cubeY[i]=cubeY[i]+80 time.sleep(0.1) pygame.display.update() screen.fill([100,100,100]) for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit()
import pygame,sys #载入pygame库pygame.init() #初始化import randomimport timecubeX=[] #建立一个数组存放各个方块的X坐标cubeY=[] #建立一个数组存放各个方块的Y坐标screen_tltle=pygame.display.set_caption("Hide Game")screen =pygame.display.set_mode([1000,500])screen.fill([100,100,100])while True: cubeX.append(1000*random.random()) #增加一个X坐标,新增的X坐标为0-1000之间的一个随机数 cubeY.append(0) #增加一个Y坐标,初始化为0 s=len(cubeX) #数组中元素的个数为s for i in range(0,s): #0-s循环 pygame.draw.rect(screen,[255,0,0],[cubeX[i],cubeY[i],100,30],3) #画一个方块,坐标为X[i],Y[i] cubeY[i]=cubeY[i]+80 #所有的Y坐标,向下移动80 time.sleep(0.1) #控制下落速度 pygame.display.update() screen.fill([100,100,100]) for event in pygame.event.get(): if event.type == pygame.QUIT: #按左上角的X键关闭程序 sys.exit()
Step 3)画一个圆圈,让圆圈可以随着键盘操作左右移动
import pygame,syspygame.init()import randomimport timefrom pygame.locals import *cubeX=[]cubeY=[]myTx=500screen_tltle=pygame.display.set_caption("Hide Game")screen =pygame.display.set_mode([1000,500])screen.fill([100,100,100])generate=0.98while True: if(random.random()>generate): cubeX.append(1000*random.random()) cubeY.append(0) s=len(cubeX) for i in range(0,s): pygame.draw.rect(screen,[255,0,0],[cubeX[i],cubeY[i],100,30],3) cubeY[i]=cubeY[i]+2 pygame.display.update() screen.fill([100,100,100]) pygame.draw.circle(screen,[255,255,255],[int(myTx),400],10) for event in pygame.event.get(): global myTx if event.type == KEYDOWN: if event.key==K_LEFT: myTx=myTx-10 elif event.key==K_RIGHT: myTx=myTx+10 if event.type == pygame.QUIT: sys.exit()
import pygame,syspygame.init()import randomimport timefrom pygame.locals import * #导入pygame本地库,用于捕捉本地中存储的键盘响应listcubeX=[]cubeY=[]myTx=500screen_tltle=pygame.display.set_caption("Hide Game")screen =pygame.display.set_mode([1000,500])screen.fill([100,100,100])generate=0.98while True: if(random.random()>generate): cubeX.append(1000*random.random()) cubeY.append(0) s=len(cubeX) for i in range(0,s): pygame.draw.rect(screen,[255,0,0],[cubeX[i],cubeY[i],100,30],3) cubeY[i]=cubeY[i]+2 pygame.display.update() screen.fill([100,100,100]) pygame.draw.circle(screen,[255,255,255],[int(myTx),400],10) #画一个圆圈,X坐标为myTx的值,Y坐标为400 for event in pygame.event.get(): global myTx if event.type == KEYDOWN: if event.key==K_LEFT: #当键盘<-键被按下时,圆圈左移10 myTx=myTx-10 elif event.key==K_RIGHT:#当键盘->被按下时,圆圈右移10 myTx=myTx+10 if event.type == pygame.QUIT: sys.exit()
Step 4)碰撞检测并显示HP值
import pygame,syspygame.init()import randomfrom pygame.locals import *cubeX=[]cubeY=[]myTx=500generate=0.98HP=100screen_tltle=pygame.display.set_caption("Hide Game")screen =pygame.display.set_mode([1000,500])screen.fill([100,100,100])myfont=pygame.font.SysFont(None,30)while True: if(random.random()>generate): cubeX.append(1000*random.random()) cubeY.append(0) s=len(cubeX) for i in range(0,s): pygame.draw.rect(screen,[255,0,0],[cubeX[i],cubeY[i],100,30],3) cubeY[i]=cubeY[i]+2 pygame.display.update() screen.fill([100,100,100]) pygame.draw.circle(screen,[255,255,255],[int(myTx),400],10) for event in pygame.event.get(): global myTx if event.type == KEYDOWN: if event.key==K_LEFT: myTx=myTx-20 elif event.key==K_RIGHT: myTx=myTx+20 if event.type == pygame.QUIT: sys.exit() for i in range(0,s): if(myTx<cubeX[i]+100 and myTx>cubeX[i] and 400>cubeY[i] and 400<cubeY[i]+30): HP=HP-1 HP_str="HP:"+str(HP) text=myfont.render(HP_str,True,[255,0,0]) screen.blit(text,[20,20])
import pygame,syspygame.init()import randomfrom pygame.locals import *cubeX=[]cubeY=[]myTx=500generate=0.98HP=100screen_tltle=pygame.display.set_caption("Hide Game")screen =pygame.display.set_mode([1000,500])screen.fill([100,100,100])myfont=pygame.font.SysFont(None,30) #设置字体,字号。None表示默认字体while True: if(random.random()>generate): cubeX.append(1000*random.random()) cubeY.append(0) s=len(cubeX) for i in range(0,s): pygame.draw.rect(screen,[255,0,0],[cubeX[i],cubeY[i],100,30],3) cubeY[i]=cubeY[i]+2 pygame.display.update() screen.fill([100,100,100]) pygame.draw.circle(screen,[255,255,255],[int(myTx),400],10) for event in pygame.event.get(): global myTx if event.type == KEYDOWN: if event.key==K_LEFT: myTx=myTx-20 elif event.key==K_RIGHT: myTx=myTx+20 if event.type == pygame.QUIT: sys.exit() for i in range(0,s): if(myTx<cubeX[i]+100 and myTx>cubeX[i] and 400>cubeY[i] and 400<cubeY[i]+30): HP=HP-1 HP_str="HP:"+str(HP) #定义一个字符串,它的值为:HP:HP值 text=myfont.render(HP_str,True,[255,0,0]) #显示的文本内容,是否开启抗锯齿,字体颜色,第四个参数是背景颜色,不设表示透明 screen.blit(text,[20,20]) #文字表示在屏幕上的文本内容和位置
0 0
- 从零开始做一个基于pygame引擎的躲闪小游戏(一)-画矩形、画圆、简单的碰撞检测
- 点、圆、矩形之间的简单碰撞检测
- 求旋转矩形的四个顶点坐标,用来做旋转矩形的碰撞检测
- cocos2d-x中矩形的碰撞检测
- 矩形碰撞检测的解释(转)
- 圆形和矩形的碰撞检测
- 圆与旋转矩形的碰撞检测
- 基于JBox2D物理引擎开发的“雷电”小游戏(五)——碰撞
- 从零开始学会做一个简单的APP
- 基于2D多边形的碰撞检测和响应(一)
- 不该躲闪的爱
- 物理引擎里的碰撞检测
- cocos2dx3.x物理引擎的碰撞检测
- 一个简单的小游戏
- 自己做的一个超级简单的小游戏
- Python pygame 接球的小游戏
- 不用物理引擎,通过在CocoStudio中画的碰撞区域检测碰撞
- 圆与矩形简单碰撞检测
- CentOS常用命令
- JAVA容器
- java中的BigInteger
- 【工具】 可以实现各种图片的各种转换 包括webp格式等互转 google工具
- Java NIO:浅析I/O模型
- 从零开始做一个基于pygame引擎的躲闪小游戏(一)-画矩形、画圆、简单的碰撞检测
- 装ubuntu+换显卡+安cuda记录
- 反向传播背后的四个基本等式
- Unity插件NGUI学习笔记(一)
- 单链表的结构体定义与声明
- TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)
- CSU 1811 Tree Intersection(dfs序+莫队算法)
- Android textview 同时改变字符串中部分字体的颜色与大小
- (2) nginx信号量