C语言实现黑客帝国 数字雨
生活随笔
收集整理的這篇文章主要介紹了
C语言实现黑客帝国 数字雨
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
看了大神C語(yǔ)言Plus的視頻。敲了這段代碼。
#include<stdio.h> #include<graphics.h> #define WIDTH 1440 #define HEIGHT 810 #define STR_SIZE 20#define STR_NUM 192 #define STR_WIDTH 15//定義結(jié)構(gòu)體 struct rain {int x;int y;int speed;//下落速度char str[STR_SIZE];//存儲(chǔ)數(shù)組 }rain[STR_NUM];//創(chuàng)建數(shù)字 char createch() {char temp = 0;int flag = rand() % 3;//0 1 2if (flag == 0) {temp = rand() % 26 + 'a';}else if (flag == 1) {temp = rand() % 26 + 'A';}else {temp = rand() % 10 + '0';}return temp; }void gameinit() {//初始化基礎(chǔ)數(shù)據(jù)for (int i = 0;i < STR_NUM;i++) {rain[i].x = i * STR_WIDTH;rain[i].y = rand() % HEIGHT;rain[i].speed = rand() % 5 + 5; //5->10}//二維數(shù)組,賦初值for (int i = 0; i < STR_NUM; i++){for (int j = 0; j < STR_SIZE; j++){rain[i].str[j] = createch();}} } void gamedraw() {for (int i = 0; i < STR_NUM; i++){for (int j = 0; j < STR_SIZE; j++){outtextxy(rain[i].x, rain[i].y-STR_WIDTH*j, rain[i].str[j]);settextcolor(RGB(0, 255-13*j, 0));//作漸變色}} }void gameplay() {//掉落窗口外的解決-令他高度為0for (int i = 0; i < STR_NUM; i++){rain[i].y += rain[i].speed;if (rain[i].y+STR_SIZE*STR_WIDTH> HEIGHT) {rain[i].y = 0;}} }int main() {initgraph(WIDTH, HEIGHT);srand(GetTickCount());gameinit();DWORD t1, t2;t2=t1 = GetTickCount();while (1) {BeginBatchDraw();//雙緩沖gamedraw();if (t2 - t1 > 20) {gameplay();t1 = t2;}t2 = GetTickCount();EndBatchDraw();}return 0; }效果如下:
?
總結(jié)
以上是生活随笔為你收集整理的C语言实现黑客帝国 数字雨的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 树莓派新手教程
- 下一篇: 【Java开发】Java实现黑客帝国代码