日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

黑客帝国数字雨代码

發布時間:2023/12/31 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 黑客帝国数字雨代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

知識點:循環、條件判斷、函數、結構體

// 黑客帝國數字雨特效.cpp #include "stdafx.h" #include <stdio.h> #include <graphics.h> //圖形庫頭文件 #include <Windows.h> #define WIDTH 960 //宏定義,定義寬和高 #define HEIGTH 640 #define STR_SIZE 20 //數字雨數組最大存儲 #define STR_NUM 128 //1920/15=128 數字雨的串數 #define STR_WIDTH 15 //雨的距離15,字符寬度 struct Rain //雨的結構 {int x;//數字雨橫向位置int y;//y坐標int speed;//下降速度char str[STR_SIZE];//數字雨數組 }rain[STR_NUM];//結構體數組 char CreateCh(){ //隨機產生一個字符char temp=0;int flag=rand()%3; //rand隨機產生0~3的數字:0、1、2,所以概率每個都是1/3。switch (flag){case 0:temp=rand()%26+'a';break;case 1:temp=rand()%26+'A';break;default:temp=rand()%10+'0';break;}return temp; } void GameInit(){ //初始化//初始化基礎數據for(int i=0;i<STR_NUM;++i){rain[i].x=i*STR_WIDTH;rain[i].y=rand()%HEIGTH; //y坐標產生在屏幕任意位置都可以,就模上規定屏幕的寬度。rain[i].speed=rand()%5+5; //速度不可能為零吧!這樣就是最低速度5,最高速度10。}//初始化字符串for(int i=0;i<STR_NUM;++i){ //數據初始化。這里就相當于二維數組,隨機產生字符。for(int j=0;j<STR_SIZE;++j){rain[i].str[j]=CreateCh();}} } void GameDraw(){ //畫cleardevice();//清屏小尾巴+閃爍;意義:每動一次重新畫一遍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 RainDrop(){ //下雨for(int i=0;i<STR_NUM;++i){rain[i].y+=rain[i].speed;if(rain[i].y-STR_WIDTH*STR_SIZE>HEIGTH){ //如果尾巴(rain[i].y-STR_WIDTH*STR_SIZE)下落到地面,重新回到頭頂上rain[i].y=0;}} } void ChangeCh(){ //隨機改變字符for(int i=0;i<STR_NUM;++i){rain[rand()%STR_NUM].str[rand()%STR_SIZE]=CreateCh(); //隨機選一個結構體的隨機一位字符改變它} } int main() {initgraph(WIDTH,HEIGTH);//創建窗口srand(GetTickCount());GameInit();DWORD t1,t2;t1=t2=GetTickCount(); //從操作系統啟動到現在所經過的毫秒數while (true){BeginBatchDraw();//雙緩沖繪圖開始,先在內存里畫好。防止閃瞎狗眼//任何繪圖操作都將暫時不輸出到屏幕上,直到執行 FlushBatchDraw 或 EndBatchDraw 才將之前的繪圖輸出GameDraw();ChangeCh();if(t2-t1>20){ //超過20毫秒時。區別:使RainDrop()下落延時20毫秒RainDrop();t1=t2;}t2=GetTickCount(); //t2再重新獲取一下時間EndBatchDraw();//內存已畫好,開始顯示。 // Sleep(20); //單位是毫秒,20毫秒。使整個程序暫停20毫秒以后從這里開始繼續運行。并不好,會有卡頓感,不建議使用。區別:使整個程序延時20毫秒}getchar();closegraph();//關閉窗口return 0; }

總結

以上是生活随笔為你收集整理的黑客帝国数字雨代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。