C++是如何从代码到游戏的

这篇具有很好参考价值的文章主要介绍了C++是如何从代码到游戏的。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有一个Student类。C++怎么创建一个学生类的对象?

// 嗯我会!有两种方式:
Student s;
Student *s2 = new Student("张三");

现在这学生的行为有:吃饭,睡觉,上网课。现在你执行个上网课的行为,怎么做?

// 简单啊
s2->upNetworkClass();

通过对象调用成员函数不就成了么。

嗯,上面的代码在学校里都写过吧?有这个基础就够了。

那游戏是啥?无非是一堆图形堆叠呗,把上面的Student类换成窗体类,换成控件类,换成游戏中不同的元素类,然后再组合起来不就完了么。

呐现在,我告诉你,有一个窗体类,叫QWidget,它有一个行为叫show,可以显示窗体。你给我生成一个窗体并显示出来。那就照葫芦画瓢呗:

QWidget *w = new QWidget();
w->show();

来我们看看效果:

C++是如何从代码到游戏的

呀,有点意思哈?但是这距离游戏还差远呢啊。你这窗体也太丑了不是。

没事,窗体丑不要紧,我们给她美化一下!

TDWidget * w = new TDWidget(":/img/welcome.png");
w->show();

QWidget换成了TDWidget,构造函数里传了一张图片,没超纲吧。再看看效果:

C++是如何从代码到游戏的

诶?事情好像开始变得有趣了起来?

但还是不够,我这是游戏,要交互的!你这一张死图能干啥。

交互嘛!加个按钮不完了?我给你一个按钮类,这个类有一个move()行为,可以把自己移动到画面的任何地方。你知道你想要的按钮怎么来了吗?

QPushButton * btn = new QPushButton("按钮",w); //第二个参数代表它属于哪个窗体,如果不写,它就会生成在屏幕上而不是窗体里
btn->move(330,450);

瞅瞅:

C++是如何从代码到游戏的

em.......你这按钮,有是有,画风有点突兀了吧。

没事,再美化一下嘛:

TDPushButton *btn = new TDPushButton(
   ":/img/begin_normal.png", // 常规图片
   ":/img/begin_hover.png", // 鼠标悬停的图片
   ":/img/begin_press.png", // 鼠标按下的图片
   w);    // 父控件
btn->move(330,450);

效果:

C++是如何从代码到游戏的

呀 可以啊。快快快,然后呢,点开始游戏,进入游戏界面!这个咋做?

嗯.....其实界面切换你自己已经会了。

你这个界面不就是一个窗体,想切换界面的话.....你把这个窗体关了,再换张图片开一个新的不就完了。

新的窗体用一张传新的图片做背景,我再顺手给加上四个按钮,代码不贴了,就是上面的代码复制粘贴改改坐标,改改图片:

接下来就是游戏的主体部分了,也巨简单,有图就行:

TDMenuButton *btn1 = new TDMenuButton(":/img/1_normal.png",":/img/1_hover.png",":/img/1_selected.png",this);
btn1->move(100,100);
TDMenuButton *btn2 = new TDMenuButton(":/img/1_normal.png",":/img/1_hover.png",":/img/1_selected.png",this);
btn2->move(165,100);
TDMenuButton *btn3 = new TDMenuButton(":/img/1_normal.png",":/img/1_hover.png",":/img/1_selected.png",this);
btn3->move(100,165);

三个按钮,和上面的TDPushButton没区别,就是换成了TDMenuButton对不对,没超纲吧。

只要你的图片够美,就能生成这样:

C++是如何从代码到游戏的

一个按钮会写,三个按钮也会写,既然学了点C++都想做游戏了,循环总会写吧:

 for(int i = 0; i < 11 ; i++)
 {
  for(int j = 0; j < 6; j++)
  {
   TDMenuButton * btn = new TDMenuButton(":/img/1_normal.png",":/img/1_hover.png",":/img/1_selected.png",this);
   btn->move(100+i*65,100+j*65);
  }
 }

效果:(密恐福利)

C++是如何从代码到游戏的

这.....怎么还有点一言难尽呢......

循环会写,随机数会写吗?随机个头像行吗?

C++是如何从代码到游戏的

嗯......这下终于像点样了。

最后再加亿点点核心逻辑:点击两个相同的图片,判断它能不能连通,如果能连通,就把这两个按钮直接delete掉,效果就是酱紫:

C++是如何从代码到游戏的

就是这样咯,从你学过的C++基础语法,结合现有的框架控件,就可以撸这样一个简单的连连看。

当然了,为了点燃你题目里想要的学习热情,我故意避开一些以你现有知识可能听不懂的部分,还有一些逻辑比较绕的部分。比如:

避开了注册按钮的回调,

避开了随机生成图片的时候要保证成对出现的算法,

避开了把这些按钮和数据做关联,

避开了如何通过数据计算两点能否连通,

等等

但这都不重要,不妨碍你简单体验一下C++是如何从代码到游戏的这个过程。文章来源地址https://www.toymoban.com/news/detail-460443.html

到了这里,关于C++是如何从代码到游戏的的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql创建student表并使用视图查询的相关练习

    Steps: 1.用SQL语句创建学生表student,定义主键,姓名不能重名,性别只能输入男或女,所在系的默认值是 “计算机”。 2.修改student 表中年龄(age)字段属性,数据类型由int 改变为smallint。 3.为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引,索引名为SC_INDEX 。

    2024年02月09日
    浏览(35)
  • 【创建一个网页,实现猜数字游戏】

    要求如下 逻辑如下: 一个button按钮 第二行中,打印“请…数字” 然后一个 输入文本框 然后一个 按钮 第三行 打印 “已经猜的次数” 然后打印 猜的次数 结果显示 猜大了 猜小了 猜对了 在script中 获取button按钮、输入的数据、记录count的值,以及结果值 随机生成一个 随机数

    2024年02月02日
    浏览(40)
  • C++如何实现将一个整数转化为二进制数(使用尽量少的代码量)

    1、使用容器vector  这种方法非常简洁,当然使用数组也可以用不多的代码来进行实现。 将其转化为容易移植的函数如下: 注意在使用之前一定要#includevector头文件 2、一般数组实现 当然,还没有接触容器的小伙伴们也可以用普通的数组来进行实现,其算法仍然是通过对2取余

    2024年02月15日
    浏览(42)
  • 使用Pygame创建一个简单游戏界面

    首先需要安装Pygame 模块,在Python代码中添加引用。 1. 引用代码如下: 2. 定义初始化窗口函数: 在初始化窗口函数中,定义窗口大小和窗口标题。 3. 创建一个循环,不断更新界面和检测事件 加载背景图片,将背景图片对象放置在窗口上,位置(0,0) 最左角,图片有实际的

    2024年02月13日
    浏览(47)
  • Unity之创建第一个2D游戏项目

    一 Unity环境配置 1.1 Untity资源官网下载:https://unity.cn/releases 1.2 Unity Hub集成环境,包含工具和项目的管理 1.3 Unity Editor编辑器 1.4 Visual Studio 2022脚本编辑器 1.5 AndroidSKD,JDK,NDK工具,用于android环境的运行 二 创建Unity项目 2.1 新建2D模板项目 2.2 新建2D物体 2.3 新建C#脚本文件 

    2024年02月04日
    浏览(47)
  • 和朋友一起玩游戏怎么创建局域网

    大家有没有遇到过想和朋友一起玩游戏却不知道怎么创建局域网的情况,其实非常的简单,下面小编教大家怎么做。 点击电脑右下角的网络图标,然后选择打开网络和共享中心。 在网络共享中心中选择设置新的连接或网络。 在设置网络或连接中选择设置无线临时网络,然后

    2024年02月06日
    浏览(86)
  • [翻译] 使用FXGL创建一个非常基本的游戏

    首先,让我们为我们的简单游戏定义一些要求: 一个600x600的窗口。 屏幕上的玩家,由蓝色矩形表示。 可以通过按键盘上的W、S、A或D来移动玩家。 UI由一行文本表示。 当玩家移动时,UI文本会更新以显示玩家在其生命周期内移动了多少像素。 在本教程的最后,你可以获得这样

    2024年02月01日
    浏览(32)
  • python怎么创建一个文件夹,用python创建一个文件夹

    大家好,小编来为大家解答以下问题,python中如何创建一个新文件,python如何创建一个文件夹,今天让我们一起来看看吧! 这篇文章主要介绍了如何通过python新建一个文件中的文件,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小

    2024年04月29日
    浏览(61)
  • 编写一个Student类,包含name和age属性,提供有参构造方法

    2. 请按照下列要求编写程序。 ( 1 ) 编写一个 Student 类,包含 name 和 age 属性,提供有参构造方法。 ( 2 ) 在 Student 类中,重写 toString() 方法,输出 age 和 name 的值。 ( 3 ) 在 Student 类中,重写 hashCode() 和 equals() 方法 hashCode() 的返回值是 name 的 hash 值与 age 的和。 equals(

    2024年02月11日
    浏览(37)
  • 用python做一个小游戏代码,用python制作一个小游戏

    大家好,小编来为大家解答以下问题,如何用python编写一个简单的小游戏,用python做一个小游戏代码,今天让我们一起来看看吧! 今天呢,给大家展示一下Python有趣的小地方,展示给大家看看,我做的小游戏,是否有大家小时候的回忆呢。下面就废话不多说了,给大家展示一

    2024年02月07日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包