【c語言】小程式遊戲——飛機遊戲(一)
阿新 • • 發佈:2018-12-14
下面來介紹一個簡單的遊戲,其中用到的c語言知識屬於基礎內容,所以特別容易上手
~~~~~~~飛機遊戲~~~~~~~~~
首先按照常理我們知道,肯定要在介面上繪製出一個飛機,我們用“*”符號來簡單代表就OK。
我們知道,在視窗的座標系原點是在視窗左上角的,如圖所示
所以我們如果想在這個座標系裡面的某個點上畫出一個飛機,那麼它的座標系應該就是這樣的
根據前一篇文章的介紹,如果轉化為c語言的話,就需要:X0既是打印出X0個“\n”,Y0既是打印出Y0個空格!!!!
!!!!然鵝!!!!
我們可以使用更為簡便的方式實現這個效果
可是在此之前,我們需要初始化一些資料
比如遊戲的介面有多大、飛機的初始位置在什麼地方等
所以,初始化程式碼如下
int height=0,weight=0;
int position_x=0,position_y=0;
void init()
{
height = 20;
weight = 20;
position_x=height/2;
position_y=weight/2;
}
初始化完成之後,我們就可以確定飛機的初始位置了,改進後的程式碼如下
for(int i=0;i<height;i++)
{
for(int j=0;j<weight;j++)
{
if((i == position_x) && (j == position_y))
printf("*");
else
printf(" ");
}
printf("\n");
}
編譯時成功了,但是的出來的結果是你們想要的那樣嗎?
由結果可知,程式是會一直往下列印“*”號,沒有終點
這是為什麼呢?
大神們都知道,編譯器是從上往下一直執行程式碼的,所以打印出來的結果自然也是一直往下列印的啦!
所以,如果我們想要讓飛機一直停留在視窗前面的話有什麼辦法呢?
vc6裡面有個東西叫做清屏函式
一個用於輸出完一次結果之後就把結果清除,在重新輸出,再清除的函式
還有一個叫游標移動函式
一個用於把游標固定在某個位置,就不會一直閃屏的函式
VC中的清屏函式和游標移動函式(俗稱gotoxy()),如下
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void gotoxy(int x,int y)
{
COORD pos;
pos.X = x;
pos.Y = y;
HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(out,pos);
}
void main()
{
system("cls");//清屏函式
gotoxy(0,0);//游標移動函式
}