java满天星星代码_满天星空的代码实现
#include
#include
#include
#include
using namespace std;
#define RGB_AMOUNT250 //顏色數(shù)量
#define SCREEN_WIDTH1000 //屏幕寬度
#define SCREEN_HEIGHT800//屏幕高度
#define STAR_AMOUNT400//星星的數(shù)量
/******************
****星星的狀態(tài)*****
******************/
enum class STAR_STATUS{
STOP,
UP,
LEFT,
DOWN,
RIGHT,
ALL_STATUS
};
/******************
星星結(jié)構(gòu)體的定義
******************/
class Star {
public:
Star(){}
public:
int x;
int y;
int radius;
int rgb;
STAR_STATUS status;
};
Star star[STAR_AMOUNT];
/******************
功能:初始化單個(gè)星星
輸入?yún)?shù):
x 星星的x坐標(biāo) y 星星的y坐標(biāo)
rgb 星星的顏色參數(shù) radius 星星的半徑
status 星星的狀態(tài)
函數(shù)返回值:無(wú)
******************/
void initStar(Star& star, int x, int y, int rgb, int radius, STAR_STATUS status) {
star.x = x;
star.y = y;
star.rgb = RGB(rgb,rgb,rgb);
star.radius = radius;
star.status = status;
}
/******************
功能:初始化
輸入?yún)?shù):
無(wú)
函數(shù)返回值:無(wú)
******************/
void init() {
initgraph(SCREEN_WIDTH, SCREEN_HEIGHT);
int x, y, radius, rgb;
STAR_STATUS status;
for (int i = 0;i < STAR_AMOUNT;i++){
x = rand() % SCREEN_WIDTH;
y = rand() % SCREEN_HEIGHT;
rgb = RGB_AMOUNT-50*(rand() % 3);
radius = rand() % 3;
status = STAR_STATUS::STOP;//所有星星默認(rèn)靜止,不閃爍
initStar(star[i],x,y,rgb,radius,status);
}
}
/******************
功能:將一顆星星放置在屏幕
輸入?yún)?shù):
star 一個(gè) 星型結(jié)構(gòu)體的引用
函數(shù)返回值:無(wú)
******************/
void putStar(Star&star) {
setfillcolor(star.rgb);
solidcircle(star.x, star.y, star.radius);
}
/******************
功能:將所有星星放置在屏幕
輸入?yún)?shù):
無(wú)
函數(shù)返回值:無(wú)
******************/
void putAllStar() {
for (int i = 0;i < STAR_AMOUNT;i++) {
putStar(star[i]);
}
}
/******************
功能:將一顆星星向屏幕上方移動(dòng)
如果移動(dòng)到頂部,則到底部繼續(xù)向上
輸入?yún)?shù):
star 一個(gè) 星型結(jié)構(gòu)體的引用
函數(shù)返回值:無(wú)
******************/
void starMove(Star& star) {
setfillcolor(BLACK);
solidcircle(star.x, star.y, star.radius);
star.y -= 3;
if (star.y <= 0) {
star.y = SCREEN_HEIGHT;
}
setfillcolor(star.rgb);
solidcircle(star.x, star.y, star.radius);
}
/******************
功能:將所有星星向屏幕上方移動(dòng)
如果移動(dòng)到頂部,則到底部繼續(xù)向上
輸入?yún)?shù):
無(wú)
函數(shù)返回值:無(wú)
******************/
void starAllMove() {
for (int i = 0;i < STAR_AMOUNT;i++) {
starMove(star[i]);
}
}
/******************
功能:將一顆星星按照星星的狀態(tài)
進(jìn)行閃爍
輸入?yún)?shù):
star 一個(gè) 星型結(jié)構(gòu)體的引用
函數(shù)返回值:無(wú)
******************/
void starShining(Star& star) {
setfillcolor(BLACK);
solidcircle(star.x, star.y, star.radius);
switch (star.status) {
case STAR_STATUS::DOWN:
star.y += 2;
break;
case STAR_STATUS::UP:
star.y -= 2;
break;
case STAR_STATUS::LEFT:
star.x -= 2;
break;
case STAR_STATUS::RIGHT:
star.x += 2;
break;
default:
break;
}
setfillcolor(star.rgb);
solidcircle(star.x, star.y, star.radius);
star.status =(STAR_STATUS) (rand() % 5);
}
/******************
功能:將所有星星按各自照星星
的狀態(tài)進(jìn)行閃爍
輸入?yún)?shù):
star 一個(gè) 星型結(jié)構(gòu)體的引用
函數(shù)返回值:無(wú)
******************/
void allStarShining() {
for (int i = 0;i < STAR_AMOUNT;i++) {
starShining(star[i]);
}
}
int main() {
init();
putAllStar();
while (1) {
starAllMove();
Sleep(100);
}
system("pause");
return 0;
}
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的java满天星星代码_满天星空的代码实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python化学题_中国大学mooc《化
- 下一篇: ae中心点重置工具_AE脚本:锚点中心点