C/C++ 编程实战
一些使用C/C++的案例
别看着我笑了
这个作者很懒,什么都没留下…
展开
-
如何用TextOut输出非字符串型变量
这是一次课后作业,其中的一项要求是输出鼠标的位置,也就是用:case WM_MOUSEMOVE: X=LOWORD(lParam); Y=HIWORD(lParam); if(flag){ InvalidateRect(hWnd,NULL,TRUE); } break;因为X,Y都是WORD类型的变量,找到WORD的定义:typedef unsigned short WORD;...原创 2020-05-07 20:05:30 · 775 阅读 · 0 评论 -
vc++面向对象与可视化程序设计——万花筒的绘制
就是把圆分成若干份对应若干个+1个点,每个点和他后面的每个点都连线,思路很简单,主要是对近几章学的Windows API函数进行一下复习。#include <Windows.h>#include <tchar.h>#include <time.h>#include <stdio.h>#include <math.h>#def...原创 2020-04-29 21:53:39 · 1071 阅读 · 0 评论 -
关于sscanf和sprintf的详细讲解
sscanfsscanf 读取格式化的字符串中的数据。位于头文件cstdio中int sscanf( const char *buffer, const char *format, [ argument ] … );buffer存储的数据format窗体控件字符串argument可选自变量具体参数的含义还是通过下面的例子来体会吧。不过说白了就是把buffer中内...原创 2020-03-13 10:03:01 · 821 阅读 · 0 评论 -
c++面向对象程序设计学习总结:类的构造函数(初始化),析构函数以及二者间的调用顺序
一、构造函数——初始化/赋值所有构造函数的函数名与类名相同!!!我们以表示复数的类来举例:class Complex{ public: //成员函数 private: double real,imag; }1.默认构造函数(无参~):默认构造函数不需要用户调用,而是在建立对象时自动执行。Complex(){/*还可以加上一些语句,例如real=0,image=0;如果...原创 2020-01-25 14:40:13 · 1049 阅读 · 0 评论 -
设置随机种子的函数: srand(种子);的重要性
游戏中,许多情况都是随即发生的。还有一些图案程序,例如屏保,也是随即运动的。这就需要用随机函数。随机函数很简单,只有一个:rand()该函数返回 0~32767 之间的一个整数。(不需要记住 32767 这个数字,大概知道这个范围就行了),该函数在头文件 <stdlib.h> 中,使用前记得引用。然而!!!!虽然产生的数字是随机的,但每次产生的数字序列都一样。 为什么????因为...原创 2020-04-06 23:19:49 · 2726 阅读 · 0 评论 -
c++类模板及函数对象的小白坑
类模板中重载的():()的重载很特殊,因为**如果一个类重载了()那么该类的对象就称为函数对象。**也就是这个类的对象可以作为函数被调用或者作为函数指针传入其他函数。1.首先是区别模板类是在建立对象还是在调用经重载的()函数:也许这个标题很迷,但是我这个小白在做题时确实被搞糊涂了。。。不过()的重载确实经常用到,在这里总结一下。首先说个大致形式:如果在类模板中有()的重载函数:函数返回值...原创 2020-01-30 20:28:16 · 697 阅读 · 0 评论 -
c++面向对象程序设计学习总结之运算符重载
所谓运算符重载,就是运算符本身的功能不足以实现我们的目的,我们需要赋予运算符新的含义来满足需求。(重载的运算符必须与用户定义的自定义类型的对象一起使用,至少有一个参数不是c++标准类型中的,否则原有的功能已经很全,再重载毫无意义)下面均用复数类举例:class Complex{ private: double real,imag ; public: Complex(){real=0...原创 2020-01-28 21:05:06 · 519 阅读 · 0 评论 -
GUIText is obsolete The tyoe or namespace name。。。does not exist
这应该是新版本unity使用Standard Assets的一个bug,原来SimpleActivatorMenu.cs的GUITexture应该修改为UnityEngine.UI.Text,ForcedReset.cs的GUITexture应该修改为UnityEngine.UI.Image,此外还有可能出现The tyoe or namespace name “…” does not exist in the namespace “UnityStandardAssets”,可以先保存当前的场景和脚本,再原创 2020-06-10 20:12:21 · 813 阅读 · 1 评论 -
将汉诺塔问题简单的可视化来形象的理解递归
在初学c语言时我们就是用汉诺塔问题来理解递归的,因为最近又看到了,然而我已经忘记当时是怎么操作的,所以利用最近学的图形学将其可视化加深理解。汉诺塔问题:相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如下图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:...原创 2020-04-25 20:41:40 · 665 阅读 · 0 评论 -
实现游戏的读档和存档
最近学图形学经常用EasyX图形库去实现一些图形学算法,因为这个函数库使用方便,简化了很多配置,我也用它来做了一些小游戏,怎么储存上一次用户运行的信息就很关键,这里的实现也仅仅就是简单的文件读写操作,但是文件不仅仅可以实现游戏的读档和存档,还可以用来处理用户账户、登录信息、玩家统计、地图信息、关卡设计、游戏配置等持久化数据。很多时候我们按下“ESC”就会让游戏暂停,这时如果我们不想玩了,可以选择...原创 2020-04-24 19:53:11 · 6810 阅读 · 1 评论 -
互动粒子仿真效果(摩擦力、引力、击打力)
其实模仿力的作用,莫过于模仿力造成的加速度或者物体的形变,所以要模拟现实世界中的摩擦力、引力、击打力只需要根据他们作用力度给与一定的加速度去影响物体的速度即可,所以这个问题其实很简单。互动粒子仿真的主要功能:(1)粒子运动会受到摩擦力的影响(2)粒子会受到鼠标引力的影响,且距离越近引力越大(加速度越大)(3)粒子会受到鼠标单击(击打力)的影响,且距离越近力越大(加速度越大)(4)粒子会受...原创 2020-04-23 21:09:30 · 838 阅读 · 0 评论 -
实现黑客帝国的片头字符雨并控制其停止,显示“The Matrix”
最近在学图形学,作业涉及到做一个字符雨动画,这不禁让我想到黑客帝国的片头,黑客帝国的特效以及其跨时代意义在今天看来都令人惊叹,可见创作者对未来的洞悉,也能深深感受到计算机图形学的无穷魅力。因为OpenGL的框架略微繁琐,之前对一些图形学原理知识比如图形生成算法、裁剪算法、曲线生成算法等等,一直用EasyX二维图形库去进行绘制,这里也一样,其实和OpenGL相比不过就是简化了那些配置,变成了2维,...原创 2020-04-23 00:16:30 · 597 阅读 · 0 评论 -
用SYSTEMTIME和GetLocalTime实现实时钟表
用的是EasyX结合vs2010实现的,首先来看一下效果:然后是对这个程序重要函数的分析:(1)系统变量类型SYSTEMTIME,用来定义时间对象(SYSTEMTIME ti),然后用GetLocalTime(&ti);获取当前时间:typedef struct _SYSTEMTIME { WORD wYear; WORD wMonth; WORD wDay...原创 2020-03-30 21:33:02 · 927 阅读 · 0 评论 -
c/c++实现勇闯地下一百层(重点在于实现重力加速度)
实现步骤:一块板的上升多块随机板的上升小人随着板上升小人的左右移动小人的重力感下落死亡的判断记录分数随着分数增加难度上升程序中需要注意的细节:1.小人随重力下降的关键语句srand( (time(NULL) );在第二个的代码中语句srand( (time(NULL) ) ; 表示设置一个随机种子,每次运行都能保证随机种子不同。在C语言中,rand()函数可以用来产生随...原创 2020-03-27 20:31:30 · 1969 阅读 · 5 评论 -
c/c++分步实现最经典最简单的贪吃蛇
我的实现步骤:(1)构造小蛇和边界(2)实现小蛇的移动(3)玩家控制小蛇移动(4)判断游戏失败(5)吃食物增加长度实现贪吃蛇游戏关键的几点就在于:(1)蛇的运动以及吃到食物后蛇的长度变化:可谓是牵一发而动全身,因为只要蛇头朝向一个方向移动,所有蛇身的坐标都会变化;同样吃到食物后蛇长增加,需要在尾部添加一个元素。我们从蛇头到蛇尾(假设N个元素),蛇头用1表示,依次到蛇尾用N表示,然后每...原创 2020-03-25 22:40:41 · 265 阅读 · 0 评论