怎么在DEV C++中安装EGE

怎么在DEV C++中安装EGE,第1张

不需要了,你把ege的include和lib赋值过去就够了

然后在你的工程中直接包含ege头文件就可以使用了

炮姐解释过:把ege的头文件和库放在标准的默认库和头文件目录下就是为了方便新手的

另外解释一下,你说的那个设置目录:

在IDE中,IDE默认了一个标准的目录,你可以通过“工程-》设置”选项来设置这些目录,目的是比较方便的调用这些文件,不必在你的工程中包含每个文件

满意采纳,不满意请追问

下载地址:百度网盘链接

将ege ,ege.h ,graphics.h复制到Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include

将压缩包内

lib\mingw64\lib

目录下的

libgraphics64.a

复制,粘贴到

C:\Program Files (x86)\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2

目录下

在上方菜单栏选择 工具->编译选项 填入 -lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32

分享一下好代码:

#include "graphics.h"

#include <stdio.h>

#include <time.h>

#include <stdlib.h>

#include "ege/fps.h"

int width = 640, height = 480

struct point //定义点,包含坐标,速度

{

    double x

    double y

    double dx

    double dy

}

struct poly //定义多边形,包含点的个数,和点数组

{

    int n_point

    point p[20]

}

struct polys //定义多边形队列组

{

    int n_poly                 //多边形队列长度

    int color                  //颜色

    int nextcolor, prevcolor   //上一次的颜色,目标颜色

    int chtime, nowtime        //过渡变化时间,当前时间

    int time                   //距离一下次改变颜色的时间

    poly p[100]                //多边形数组

}

double rand_float(double dv, double db) //返回一个db 到 db+dv之间的随机浮点数

{

    return randomf()*dv + db

}

void movepoint(struct point* b) //根据点的速度属性移动这个点,如果移出屏幕则进行反d计算

{

    double dv = 1.0, db = 0.5

    double tw = width / 640.0, th = height / 480.0

    if (b->x <0) b->dx = rand_float(dv, db) * tw

    if (b->y <0) b->dy = rand_float(dv, db) * th

    if (b->x >width) b->dx = -rand_float(dv, db) * tw

    if (b->y >height) b->dy = -rand_float(dv, db) * th

    b->x += b->dx

    b->y += b->dy

}

void movepoly(struct poly* p) //移动单个多边形,内部调用点的移动

{

    int i

    for (i=0i<p->n_point++i)

    {

        movepoint(&(p->p[i]))

    }

}

void movepolys(struct polys* p) //移动多边形队列,包含时间检测,颜色计算

{

    int i

    for (i=p->n_poly-1i>0--i)

    {

        p->p[i] = p->p[i-1]

    }

    movepoly(p->p)

    ++(p->nowtime)

    if (--(p->time) <= 0)

    {

        p->prevcolor = p->color

        p->nextcolor = HSVtoRGB((float)random(360), 1.0f, (float)rand_float(0.5, 0.5))

        p->time = random(1000)

        p->chtime = random(1000)+60

        p->nowtime = 0

    }

    if (p->nowtime >= p->chtime)

    {

        p->color = p->nextcolor

    }

    else

    {

        double dr = p->prevcolor&0xFF, dg = (p->prevcolor>>8)&0xFF, db = (p->prevcolor>>16)&0xFF

        double dt = 1 - p->nowtime / (double)(p->chtime)

        dr -= p->nextcolor&0xFF, dg -= (p->nextcolor>>8)&0xFF, db -= (p->nextcolor>>16)&0xFF

        dr *= dt, dg *= dt, db *= dt

        dr += p->nextcolor&0xFF, dg += (p->nextcolor>>8)&0xFF, db += (p->nextcolor>>16)&0xFF

        p->color = ((int)dr) | ((int)dg<<8) | ((int)db<<16)

    }

}

void initpolys(struct polys* p, int npoly, int npoint) //初始化多边形队列组

{

    int i,j

    p->n_poly = npoly

    p->color = 0

    p->time = 1000

    p->prevcolor = p->color

    p->nextcolor = HSVtoRGB((float)random(360), 1.0f, 0.5f)

    p->chtime = 1000

    p->nowtime = 0

    j = 0

    p->p[j].n_point = npoint

    for (i=0i<npoint++i)

    {

        p->p[j].p[i].x = random(width)

        p->p[j].p[i].y = random(height)

        p->p[j].p[i].dx = (randomf() * 2 + 1)

        p->p[j].p[i].dy = (randomf() * 2 + 1)

    }

    for (j=1j<npoly++j)

    {

        p->p[i] = p->p[i-1]

    }

}

void draw_poly(struct poly* p, int color) //绘制一个多边形

{

    int points[100]

    int i

    for (i=0i<p->n_point++i)

    {

        points[i*2  ] = (int)(p->p[i].x+.5f)

        points[i*2+1] = (int)(p->p[i].y+.5f)

    }

    points[i*2  ] = (int)(p->p[0].x+.5f)

    points[i*2+1] = (int)(p->p[0].y+.5f)

    setcolor(color)

    drawpoly(p->n_point+1, points)

}

void draw_polys(struct polys* p) //绘制多边形队列(只画第一个和最后一个,最后一个用于擦除)

{

    draw_poly(&(p->p[p->n_poly-1]),        0)

    draw_poly(&(p->p[          0]), p->color)

    //for (int i = 0i <4++i)

    //    draw_poly(&(p->p[i]), p->color)

}

int main()

{

    static struct polys p[10] = {{0}}

    int n_points[10] = {4,3,5,6,7}

    int n_poly[10] = {80,40,10,5,1}

    int n_polys = 2, i

    randomize()

    //图形初始化

    {

        setinitmode(1, 0, 0)

        initgraph(-1, -1)

        width  = getmaxx()

        height = getmaxy()

        setrendermode(RENDER_MANUAL)

    }

    //多边形对象初始化

    for (i=0i<n_polys++i)

    {

        initpolys(&p[i], n_poly[i], n_points[i])

    }

    setfont(12, 6, "宋体")

    fps ui_fps

    //主循环

    for ( is_run()delay_fps(60))

    {

        if (kbhit() >0) //有按键按下就退出

        {

            break

        }

        for (i=0i<n_polys++i)

        {

            movepolys(&(p[i]))

        }

        for (i=0i<n_polys++i)

        {

            draw_polys(&(p[i]))

        }

        //imagefilter_blurring(NULL, 0xff, 0x100)

    }

    closegraph()

    return 0

}

1、EGE(Easy Graphics Engine),是windows下的简易绘图库,是一个类似BGI(graphics.h)的面向C/C++语言新手的图形库,它的目标也是为了替代TC的BGI库而存在。

2、它的使用方法与TC中的graphics.h相当接近,对新手来说,简单,友好,容易上手,免费开源,而且因为接口意义直观,即使是之前完全没有接触过图形编程的,也能迅速学会基本的绘图。 目前,EGE图形库已经完美支持VC6, VC2008, VC2010, C-Free, DevCpp, Code::Blocks, wxDev, Eclipse for C/C++等IDE,即支持使用MinGW为编译环境的IDE。如果你需要在VC下使用graphics.h,那么ege将会是很好的替代品。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11396737.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存