之前,我们已经使用python做出了可以根据C++数据变更的血条
现在,拓展一下这个程序,制作一个可以互动的游戏
既然是游戏,那就需要一个启动界面,所以我们可以制作一个蓝天白云的场景
怎么实现呢?
首先,我们要明白,这只是一个启动界面,所以一定是根据C++方面的数据而启动和关闭的,这时,就需要读取C++在txt存入的数据而运行
file = open('test02.txt', 'r')
number=file.read()
num = int(number)
注意:为了方便判断,尽量将读取数据转化成整型变量
在接收到C++方面的指令后,就可以设置启动背景了
cl1=pygame.image.load('photo/cl1.png')
cl1_rect=cl1.get_rect()
cl2=pygame.image.load('photo/cl2.png')
cl2_rect=cl2.get_rect()
cl2_rect.y=200
cl2_rect.x=100
cl3=pygame.image.load('photo/cl3.png')
cl3_rect=cl3.get_rect()
cl3_rect.y=310
cl3_rect.x=20
定义几朵云
sky=pygame.image.load('photo/sky.png')
sky_rect=sky.get_rect()
print(sky_rect)
sky_rect.center=screen_rect.center
定义蓝天
为了使得背景更加活灵活现,我们可以让云动起来
screen_image.blit(sky,sky_rect)
screen_image.blit(cl1,cl1_rect)
cl1_rect.x+=0.5
if cl1_rect.x>600:
cl1_rect.x-=600
screen_image.blit(cl2,cl2_rect)
cl2_rect.x+=0.5
if cl2_rect.x>600:
cl2_rect.x-=600
screen_image.blit(cl3,cl3_rect)
cl3_rect.x+=0.5
if cl3_rect.x>600:
cl3_rect.x-=600
由于设置的背景是600×600的,所以当云的x值超过这个数值后会自动回到原点
的确是动起来了
那怎么结束启动界面呢?
system("pause");
cout<<"请按照游戏给的提示进行操作"<<endl;
wel(a);
a=5;
system("pause");
system("cls");
cout<<"感谢您的支持"<<endl;
wel(a);
a=6;
system("pause");
我们可以在C++这里通过和玩家互动改变txt中存入的值
这样就可以标记该启动环节该结束了
python读取后判断num的值就可以结束启动界面
elif me_rect.y>600 and name_rect.y>=600:
if cl3_rect.y>0 or gr_rect.y>0:
cl1_rect.y-=1
cl2_rect.y-=1
cl3_rect.y-=1
gr_rect.y-=1
screen_image.blit(gr,gr_rect)
pygame.display.flip()
结束启动界面,让背景向上移动退出,引入游戏界面'gr'
注:此代码嵌在while循环里
我们还可以给云移动的代码一个终止条件,就是当txt的数值为某一特定取值范围内时,才可以执行该段代码
(退出启动界面引入gr的效果)
本期内容就到这里,感谢您的阅读