C++/python趣味实验之:互动游戏

之前,我们已经使用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的效果)

本期内容就到这里,感谢您的阅读

  • 14
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值