码迷,mamicode.com
首页 > 系统相关 > 详细

Linux ncurses编写 FlapyBird 第一步

时间:2016-09-16 11:25:35      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:

/*
 * flapybird.h
 *
 *  Created on: 2016年9月15日
 *      Author: jon
 */

#include <curses.h>
#include <unistd.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>
#include <assert.h>
#define LEFT_WALL 1
#define RIGHT_WALL (COLS-2)

int ** screenArray;//虚拟屏幕 用数组渲染 1为墙 0为空
/*
 * flapybird.c
 *
 *  Created on: 2016年9月15日
 *      Author: jon
 */


#include "flapybird.h"
//#define DEBUG 1
void init_tcs(void)
{

    initscr();
    curs_set(0);
    attrset(A_REVERSE);
#ifdef DEBUG
    mvprintw(0,COLS/2 - 25,"height:%d,width:%d",LINES,COLS);//lines y轴 cols x轴 左上为0点
    mvaddch(0,0, );
    refresh();
#endif

    init_virtual_screen();
    refresh();
    sleep(10);
}

void init_virtual_screen(void)
{

        screenArray = (int **)malloc(sizeof(int *)*COLS);
        for(int i = 0 ;i < COLS ;i++)
        {
            screenArray[i] = (int *)malloc(sizeof(int)*LINES);
        }
#ifdef DEBUG
        screenArray[COLS-1][LINES-1]=1;
        assert(screenArray[COLS-1][LINES-1]);
#endif
        srand((unsigned)time(NULL));
        int wall;
        int miniWall;
        int freeSpace;
        miniWall = LINES / 3;

        for(int i = 0 ;i < COLS ;i+=5){//隔开一行就绘制一堵墙
             wall = rand()%5 + miniWall;//上半部分墙
             freeSpace =rand()%8 + 4 ;//绘制自由可通过的空间

            for(int j = 0 ; j < wall;j++){
                screenArray[i][j]=1;//绘制墙的上半部分
            }

            for (int j = freeSpace+wall; j < LINES; j++){////绘制墙的下半部分
                screenArray[i][j]=1;
            }

        }

        //显示墙
        for(int i = 0 ;i < COLS ;i++)
            for(int j = 0 ; j < LINES;j++)
            {
                if (screenArray[i][j] == 1)
                    mvaddch(j,i, );
            }

}
int main(int agrc,char *agrv[])
{
    init_tcs();
    nocbreak();
    return 0;

    }

搞定第一步 根据窗口大小自动 生成静态的墙,下一步是让墙移动起来,游戏开发完成之后再调节自动生成的参数,预计还要重构

技术分享

Linux ncurses编写 FlapyBird 第一步

标签:

原文地址:http://www.cnblogs.com/winters1992/p/5876011.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!