问题标题: 酷町堂:五年长久—独家游戏秘籍

9
7
吴庞茂旭
吴庞茂旭
修练者
修练者

大家好,我是五年长久(吴庞茂旭),不久前,我开始了游戏创作,感觉有的好东西不分享一下不行,就创了个帖,发布一些小窍门和实用的方法、函数。

这个帖子永远不关闭,有独家秘笈的也可以在留言区发布,有机会上榜!!!

前言就到这,我们楼下见!

吴庞茂旭在2020-11-22 11:49:23追加了内容

hi,我是五年长久。今天,我和大家分享一个实用的函数!

先来看两段代码,选择哪个好玩:

A段、

#include <iostream>
using namespace std;
int main()
{
	char c;
	while(cin>>c)
	{
	    cout<<c<<endl
	}
    return 0;
}

B段、

#include <conio.h>
#include <iostream>
using namespace std;
int main()
	{
	char c;
	while(c=getch())
	{
	    cout<<c<<endl;
	}
	return 0;
}

大家一定会说,B好玩。

那么,为什么B可以做到输入一个字符然后就输出呢?

接下来是百度百科中对getch的介绍:

	getch():
	所在头文件:conio.h
	函数用途:从控制台读取一个字符,但不显示在屏幕上
	函数原型:int getch(void)
	返回值:读取的字符
	例如:
	char ch;或int ch;
	getch();或ch=getch();
	用getch();会等待你按下任意键,再继续执行下面的语句;
	用ch=getch();会等待你按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句。

那么,有什么易犯错误呢?

1.所在头文件是conio.h。而不是stdio.h。
2.在使用之前要调用initscr(),结束时要调用endwin()。否则会出现不输入字符这个函数
也会返回的情况。
3.在不同平台,输入回车,getch()将返回不同数值,而getchar()统一返回10(即\n)
1)windows平台下ENTER键会产生两个转义字符 \r\n,因此getch返回13(\r)。
2)unix、 linux系统中ENTER键只产生 \n ,因此getch返回10(\n)。
3)MAC OS中ENTER键将产生 \r ,因此getch返回13(\r)。
getch();并非标准C中的函数,不存在C语言中。所以在使用的时候要注意程序的可移植性。国内C语言新手常常使用getch();来暂停程序且不知道此函数来源,建议使用getchar()或者使用<stdlib.h>头文件中的system("PAUSE")调用系统命令暂停;(如果情况允许)代替此功能或更换一款编译器。

那么好,让我们来看看一段代码

# include <conio.h>
# include <iostream.h>
# include <stdio.h>
int main()
{
	char ch;
	printf("请输入一个字符: ");
	ch = getch(); //在输入字符的时候,屏幕上并看不到输入的字符
	printf("输入的字符是:%c ",ch); //输出字符
	return 0;
}

好了,你还想学什么呢?快快告诉我吧!!!

(PS:我真的是正版!!!)

吴庞茂旭在2020-11-26 21:30:20追加了内容

hi,大家好,我是五年长久,今天我给大家带来了一个十分实用的函数!!!

它的名字叫Sleep,在windows.h库中。

Sleep函数

Sleep函数
 
功能: 执行挂起一段时间,也就是等待一段时间在继续执行
 
用法:Sleep(时间)
 
头文件:Windows下为--> windows.h
 
     Linux 下为 --> unistd.h
 
注意:(1)Sleep是区分大小写的,有的编译器是大写,有的是小写。
 
   (2)Sleep括号里的时间,在windows下是已毫秒为单位,而Linux是以秒为单位
原文链接:https://blog.csdn.net/qq_31828515/java/article/details/51615210



那么,这么强大的它有啥子作用呢?

先看一段代码:

#include <iostream>
#include <string>
#include <windows.h>//Sleep is in it
using namespace std;
void output(string s)
{
for(int i=0;i<s.size();i++)
{
cout<<s[i];
Sleep(80);
}
}
int main()
{
output("你想说的话");
return 0;
}
//五年长久原创代码


//五年长久原创代码
你试了吗?对,很多初学者的梦:一个字一个字输出!!!

再看看别人的代码:

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
int main()
{    
    int a = 1;
    while (a)
    {
        printf("Welcome to songjiahao's blog\n");
        Sleep(1000);
    }
    system("pause");
    return 0;
}


原文链接:https://blog.csdn.net/qq_31828515/java/article/details/51615210
(system("pause")我们后面还要讲到,不用着急)

吴庞茂旭在2020-11-27 20:11:11追加了内容

今天看了别人家的代码,感觉就是比我的好……

C++ 实用手写函数库【可以写一些小游戏】
实用函数库,我无聊时会找一些神奇的东西,只是对我来说,因为我太弱了,dalao们会的我都不会QAQ。
 
函数库无需编译,只要放在你要用的目录下就可以了,然后include “函数名.h”。

#include <cstdio>
#include <conio.h>
#include <cstdlib>
#include <cstring>
#include <fstream>
#include <iostream>
#include <windows.h>
#include <algorithm>
#define REP(i,a,b) for (int i=(a);i<=(b);i++)
#define PER(i,a,b) for (int i=(a);i>=(b);i--)
#define max(x,y) ((x)<(y)?(y):(x))
#define min(y,x) ((x)<(y)?(x):(y))
#define MEM(a,b) memset(a,(b),sizeof(a))
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)//判断这个键是否按下
#define KEY_UP(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 0 : 1)//判断这个键是否弹起
#define KEY_EVERY(lpkeyState) GetKeyboardState(lpKeyState)//获得所有的256个键(键盘按键、鼠标按键等等)的状态,lpKeyState是指向一个256bit的数组,存放所有键的状态。
#define KEY_NOW(nVirtKey) GetKeyState(nVirtKey)//用于判断nVirtKey的状态。用返回值的最高位表示,最高位为1表示当前键处于down的状态;最高位为0当前键处于up状态。此函数从消息队列中读取消息进行处理。
#define setcolor(x) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x)//设置颜色
#define getkey(x) GetAsyncKeyState(x)
#define GetWindow() GetForegroundWindow();//得到窗口信息
/*
鼠标左键 : MOUSE_MOVED 
鼠标右键 :MOUSE_EVENT
鼠标滚轮 : MOUSE_WHEELED
MK_CONTROL当CTRL键按下时。
MK_LBUTTON当鼠标左键按下时。
MK_MBUTTON当鼠标中键按下时。
MK_RBUTTON当鼠标右键按下时.
MK_SHIFT当SHIFT按下时。
*/
using std::cin;
using std::cout;
using std::endl;
int brand();
void GOTO(int x,int y);
int brand(){return (rand()<<16)|(rand()<<1)|(rand()&1);}
void bsrand(){srand(GetTickCount());}
void cls(){system("cls");}
void retr(){//退出程序 
    HWND hWnd=GetForegroundWindow();
    ShowWindow(hWnd,SW_HIDE);
    exit(0);
}
void Window_Hide(HWND hWnd){ShowWindow(hWnd,0);}//隐藏窗口
void Window_Show(HWND hWnd){ShowWindow(hWnd,1);}//显示窗口
int getmouse_y(){//获取鼠标在屏幕中x的位置 
    POINT pt; 
    GetCursorPos(&pt);
    return pt.x;
}
int getmouse_x(){//获取鼠标在屏幕中y的位置 
    POINT pt; 
    GetCursorPos(&pt);
    return pt.y;
}
void setmouse(int y,int x){SetCursorPos(x,y);}//设置鼠标在屏幕中的位置 
void click_left(){//鼠标左键点击
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);  
    Sleep(5);//要留给某些应用的反应时间   
    mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); 
}
void click_right(){//鼠标右键点击
    mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);  
    Sleep(5);   
    mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);  
}
void GOTO(int x,int y){//将光标移动到屏幕中的位置
    CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
    HANDLE hConsoleOut;
    hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);
    csbiInfo.dwCursorPosition.Y = x;
    csbiInfo.dwCursorPosition.X = y;
    SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);
}
/* 
附录1:(COLOR) 
<span style="white-space:pre">    </span>字
    1   深蓝色
    2   深绿色
    3   深青色
    4   深红色
    5   深粉色
    6   黄色
    7   深白色
    8   灰色
    9   浅蓝色
    10  浅绿色
    11  浅青色
    12  浅红色
    13  浅粉色
    14  浅黄色
    15  浅白色
 
    背景 
    1~15        黑色
    16~31       深蓝色
    32~47       深绿色
    48~63       深青色
    64~79       深红色
    80~95       深粉色
    96~111      深黄色
    112~127     深白色
    128~143     灰色
    144~159     浅蓝色
    160~175     浅绿色
    176~191     浅青色
    192~207     浅红色
    208~223     浅粉色
    224~239     浅黄色
    240~255     浅白色
 
附录2(KEY NUMBER) 
    VK_LBUTTON             鼠标左键                      0x01 
    VK_RBUTTON             鼠标右键                      0x02 
    VK_CANCEL              Ctrl + Break                  0x03 
    VK_MBUTTON             鼠标中键                      0x04 
 
    VK_BACK                Backspace 键                   0x08 
    VK_TAB                 Tab 键                        0x09 
 
    VK_RETURN              回车键                        0x0D 
 
 
    VK_SHIFT               Shift 键                      0x10 
    VK_CONTROL             Ctrl 键                       0x11 
    VK_MENU                Alt 键                         0x12 
    VK_PAUSE               Pause 键                      0x13 
    VK_CAPITAL             Caps Lock 键                  0x14 
 
    VK_ESCAPE              Esc 键                        0x1B 
 
    VK_SPACE               空格键                       0x20 
    VK_PRIOR               Page Up 键                    0x21 
    VK_NEXT                Page Down 键                  0x22 
    VK_END                 End 键                        0x23 
    VK_HOME                Home 键                       0x24 
    VK_LEFT                左箭头键                      0x25 
    VK_UP                  上箭头键                      0x26 
    VK_RIGHT               右箭头键                      0x27 
    VK_DOWN                下箭头键                      0x28 
    VK_SNAPSHOT            Print Screen 键               0x2C 
    VK_Insert              Insert 键                     0x2D 
    VK_Delete              Delete 键                     0x2E 
 
    '0' – '9'             数字 0 - 9                    0x30 - 0x39 
    'A' – 'Z'             字母 A - Z                    0x41 - 0x5A 
 
    VK_LWIN                左WinKey(104键盘才有)         0x5B 
    VK_RWIN                右WinKey(104键盘才有)         0x5C 
    VK_APPS                AppsKey(104键盘才有)          0x5D 
 
    VK_NUMPAD0            小键盘 0 键                    0x60 
    VK_NUMPAD1            小键盘 1 键                    0x61 
    VK_NUMPAD2            小键盘 2 键                    0x62 
    VK_NUMPAD3            小键盘 3 键                    0x63 
    VK_NUMPAD4            小键盘 4 键                    0x64 
    VK_NUMPAD5            小键盘 5 键                    0x65 
    VK_NUMPAD6            小键盘 6 键                    0x66 
    VK_NUMPAD7            小键盘 7 键                    0x67 
    VK_NUMPAD8            小键盘 8 键                    0x68 
    VK_NUMPAD9            小键盘 9 键                    0x69 
 
    VK_F1 - VK_F24        功能键F1 – F24                0x70 - 0x87 
 
    VK_NUMLOCK            Num Lock 键                    0x90 
    VK_SCROLL             Scroll Lock 键                 0x91 
*/


原文链接:https://blog.csdn.net/qq_41357771/java/article/details/80032227
出处都有,不算抄袭吧!


1
王子逸
王子逸
新手天翼
新手天翼

我来证明一下,这个的确是吴庞茂旭,我和他是同学

他在课间发的,我看到了,他正在移植原来的全部内容

所以。。。是不会结贴的

0
0
0
0
0
0
0
0
0
冮欢
冮欢
资深守护
资深守护

我怀疑你是假的。。。

证据:

1、你应该没有这么多kdd去换头像

2、您的小号帖哪去了?

0
0
蒋文瀚
蒋文瀚
新手光能
新手光能

您的头像不正常,我帮你结贴

0
0
0
0
0
0
0
0
0
我要回答