首页 > 编程语言 >C++/python趣味实验之:互动游戏

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

时间:2024-08-25 12:25:49浏览次数:7  
标签:600 python image C++ rect 趣味 cl1 cl2 cl3

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

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

标签:600,python,image,C++,rect,趣味,cl1,cl2,cl3
From: https://blog.csdn.net/weixin_61702409/article/details/141527612

相关文章

  • C++(asctime()、ctime())
    目录1.asctime()2.ctime()3.区别3.1示例对比4.总结在C++中,asctime()和ctime()都是用于将时间转换为可读字符串的函数,但它们有一些细微的区别。1.asctime()作用:asctime()函数将structtm类型的时间结构转换为字符串。这个函数通常与localtime()或gmtime()......
  • win10系统c++与opencv 依赖环境配置
    一、VSC++配置opencv库1、下载opencv(https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.3.0/)2、在官网下载opencv3.3.0.exe文件然后解压到D盘D:\opencv3、配置系统环境:①添加环境变量:控制面板-系统-高级系统设置-环境变量-系统变量Path中添加下......
  • C/C++语言基础--结构体知识详解(包括:结构体数组、字节对齐、位段等内容)
    本专栏目的更新C/C++的基础语法,包括C++的一些新特性前言C语言地结构体是核心内容之一,他运行自定义数据类型,可以将不同地数据类型当作成一个整体,变成一个数据类型,运用及其广泛欢迎点赞+收藏+关注,本人将会持续更新加粗样式文章目录结构体结构体是什么?结构体的申......
  • C++(std::cout 处理 char*)
    目录1.std::cout和char*2.std::cout处理nullptr情况3.数组与指针的区别4.特殊字符的处理5.总结在C++中,std::cout是标准输出流,通常用于将数据输出到控制台。在处理char*类型时,std::cout的行为与处理其他类型有所不同。1.std::cout和char*char*是一个指向字......
  • 突破编程:C++中的组合模式(Composite Pattern)
    突破编程:C++中的组合模式(CompositePattern)在软件设计领域,组合模式(CompositePattern)是一种结构型设计模式,它允许你将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式让客户端代码可以一致地处理单个对象和组合对象,无需关心对象的具体类型,从而简化了客户端代码......
  • 突破编程:C++中的组合模式(Composite Pattern)
    突破编程:C++中的组合模式(CompositePattern)在软件设计领域,组合模式(CompositePattern)是一种结构型设计模式,它允许你将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式让客户端代码可以一致地处理单个对象和组合对象,无需关心对象的具体类型,从而简化了客户端代码......
  • C++竞赛初阶L1-14-第六单元-数组(31~33课)543: T456473 年龄与疾病
    题目内容某医院进行一项研究,想知道某项疾病是否与年龄有关。因此对以往的诊断记录进行整理,统计0-18、19-35、36-60、61及以上这四个年龄段的患者人数占总患者人数的比例。输入格式输入共 2 行。第一行包含一个整数 N(0<n≤100),表示总患者人数。第二行包含 N 个......
  • C++面试基础系列-macro_definition宏定义
    系列文章目录文章目录系列文章目录C++面试基础系列-macro_definition宏定义Overview1.宏定义的概念1.1.基本宏定义1.2.带参数的宏1.3.条件编译1.4.宏的展开1.5.宏的副作用1.6.宏与类型1.7.宏的撤销1.8.宏的可见性1.9.避免宏冲突1.10.宏与函数的区别1.11.字......
  • C++容器算法
    容器算法<algorithm>是c++自带的容器算法,提供一系列实用的算法。在谈到容器算法,我们大概率会用到谓词predicate,谓词返回的类型是布尔类型(bool)可以是lambda表达式、函数对象以及其它可调用的对象。查找find()查找元素find接受三个参数,第三个参数是值类型,set、map自带count......
  • 【8.2 python中的使用re模块实现正则表达式操作】
    python中的使用re模块实现正则表达式操作Python中的re模块提供了对正则表达式的支持。正则表达式(RegularExpression,简称regex或regexp)是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列符合某个句法......