C語言實(shí)現(xiàn)彈跳小球項(xiàng)目
本文實(shí)例為大家分享了C語言實(shí)現(xiàn)彈跳小球項(xiàng)的具體代碼,供大家參考,具體內(nèi)容如下
一、項(xiàng)目描述和最終項(xiàng)目展示
項(xiàng)目描述: 使小球來回的跳動(dòng),跳動(dòng)的路徑是一個(gè) "V "字型
效果展示圖:
接下來讓我們一步步的來實(shí)現(xiàn)上圖效果。
二、輸出一個(gè)小球
一開始就達(dá)到最終的目的是有點(diǎn)難度的,所以我們一步步的來
先輸出一個(gè)靜態(tài)的小球
代碼如下:
#include<stdio.h> //靜止的小球 int main(void) { ?? ?int i,j; ?? ?for(i=0;i<6;i++) ?? ??? ?printf("\n"); ?? ?for(j=0;j<6;j++) ?? ??? ?printf(" "); ?? ?printf("①\n"); ?? ?return 0; }
效果圖如下:
接下來讓小球動(dòng)起來
三、下落的小球
在上一步的基礎(chǔ)上 我們要實(shí)現(xiàn)一個(gè)動(dòng)態(tài)下落的一個(gè)效果
代碼如下:
//下降的小球 #include<stdio.h> #include<windows.h> int main(void) { ?? ?int i,j; ?? ?int x,y; ?? ?int sum=0; ?? ?x=10; ?? ?y=10; ?? ?for(x=1;x<10;x++)//控制行數(shù),即下落的距離 ?? ?{ ?? ??? ?system("cls"); ?? ??? ?sum=0; ?? ??? ?for(i=0;i<x;i++)//輸出行數(shù) ?? ??? ?{ ?? ??? ??? ?printf("\n"); ?? ??? ??? ?sum++; ?? ??? ?} ?? ??? ?for(j=0;j<y;j++)//距離原點(diǎn)的橫著的距離 ?? ??? ?{ ?? ??? ??? ?printf(" "); ?? ??? ?} ?? ??? ?printf("①\n"); ?? ?} ?? ?return 0; }
效果圖如下:
四、來回彈跳的小球
代碼如下:
//上下彈跳的小球 #include<stdio.h> #include<stdlib.h> int main(void) { ?? ?int i,j; ?? ?int x=0; ?? ?int y=10; ?? ?int height=20;//最大高度 ?? ?int velocity=1;//你的加速度 ?? ?while(1) ?? ?{ ?? ??? ?x=x+velocity;//高度是越來越高 ?? ??? ?system("cls"); ?? ??? ?//輸出小球前的空行 ?? ??? ?for(i=0;i<x;i++) ?? ??? ?{ ?? ??? ??? ?printf("\n"); ?? ??? ?} ?? ??? ?for(j=0;j<y;j++) ?? ??? ?{ ?? ??? ??? ?printf(" "); ?? ??? ?} ?? ??? ?printf("①"); ?? ??? ?printf("\n"); ?? ??? ?if( x == height )//到底的時(shí)候,加速度變?yōu)樨?fù)數(shù) ?? ??? ??? ?velocity = -velocity; ?? ??? ?if( x == 0 )//到頂?shù)臅r(shí)候,加速度變?yōu)檎龜?shù) ?? ??? ??? ?velocity = -velocity; ?? ?} }
效果圖如下:
五、最終項(xiàng)目實(shí)現(xiàn)
代碼如下:
#include<stdio.h> #include<stdlib.h> int main(void) { ?? ?int i,j; ?? ?int x=0; ?? ?int y=0; ?? ?int velocity_x=1;//x加速度 ?? ?int velocity_y=1;//y加速度 ?? ?int left=0;//左邊的邊 ?? ?int right=20;//右邊的邊 ?? ?int top=0;//頂部 ?? ?int bottom=10;//底部 ?? ?while(1) ?? ?{ ?? ??? ?x = x+velocity_x; ?? ??? ?y = y+velocity_y; ?? ??? ?system("cls"); ?? ??? ?for(i=0;i<x;i++) ?? ??? ?{ ?? ??? ??? ?printf("\n"); ?? ??? ?} ?? ??? ?for(j=0;j<y;j++) ?? ??? ?{ ?? ??? ??? ?printf(" "); ?? ??? ?} ?? ??? ?printf("①"); ?? ??? ?printf("\n"); ?? ??? ?if( (x==top) || (x==bottom) ) ?? ??? ??? ?//加速度正負(fù)的變化 ?? ??? ?{ ?? ??? ??? ?velocity_x=-velocity_x; ?? ??? ?} ?? ??? ?if( (y==left) || (y==right) ) ?? ??? ?{ ?? ??? ??? ?velocity_y=-velocity_y; ?? ??? ?} ?? ?} }
效果圖:
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解析C++的線性表鏈?zhǔn)酱鎯?chǔ)設(shè)計(jì)與相關(guān)的API實(shí)現(xiàn)
這篇文章主要介紹了解析C++中的線性表鏈?zhǔn)酱鎯?chǔ)設(shè)計(jì)與相關(guān)的API實(shí)現(xiàn),文中的實(shí)例很好地體現(xiàn)了如何創(chuàng)建和遍歷鏈表等基本操作,需要的朋友可以參考下2016-03-03C++ 使用PrintWindow實(shí)現(xiàn)窗口截圖功能
這篇文章主要介紹了C++ 如何使用PrintWindow實(shí)現(xiàn)窗口截圖功能,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-08-08C++使用Kruskal和Prim算法實(shí)現(xiàn)最小生成樹
這篇文章主要介紹了C++使用Kruskal和Prim算法實(shí)現(xiàn)最小生成樹,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01opencv利用鼠標(biāo)滑動(dòng)畫出多彩的形狀
這篇文章主要為大家詳細(xì)介紹了opencv利用鼠標(biāo)滑動(dòng)畫出多彩的形狀,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07詳解Matlab繪制3D玫瑰花的方法(內(nèi)附旋轉(zhuǎn)版本)
這篇文章主要為大家介紹了如何利用Matlab繪制3D版的玫瑰花以及旋轉(zhuǎn)版的3D玫瑰花,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手試一試2022-03-03