鱼C论坛

 找回密码
 立即注册
查看: 2584|回复: 1

[技术交流] 用easyX做了一下动画图大家来交流

[复制链接]
发表于 2022-9-28 02:04:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
11.png


e01.zip (591.19 KB, 下载次数: 0)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-9-28 02:05:49 | 显示全部楼层
main.cpp
/*

    本项目日志
...


*/

/* 需要的头文件 */
 
#include "e.h"



/* 全局变量 */

#define WIN_WIDTH  640 //大型程序里应当避免这种做法,中小型程序则无妨 
#define WIN_HEIGHT 480
#define Bg_num 3


/* 用户输入 */

ExMessage input; //暂未实现 消息机制 学习中 


/* 从硬盘读取图形文件 save in the IMAGE */

IMAGE   bg[Bg_num];// 背景Bg_num个 活动物actor_num个 


/* 图形的座标变量 use on the IMAGE */

//用于控制 背景的移动 最远的应不移动的最慢,近一层的应当快点 最近的应当最快 
int bgx[Bg_num]; //x轴 几个背景就几个x轴 向右移动 造成错落层次的感觉 


//渲染 项目背景
void updateBg()
{
        
        putimage(bgx[0],0,  &bg[0]); //背景不移动 全黑图1200*1000 底色不能动 
        putimage(bgx[1],168,&bg[1]); //小树
        putimage(bgx[2],300,&bg[2]); //小山 
        //bgx[1] +=1;
        //bgx[2] +=2;

}


//消息机制 未实现 学习中 
void event_pressed(int &x)
{
        
        //x=0;
}


/* 图像信息统计 */
 
void Title()
{
        char titlea[]="000000000000";
        char titleb[]="111111111111";
        char titlec[]="the mddle is here";
        outtextxy(100,10,titlea);
        outtextxy( getmaxx() -101-textwidth(titleb) ,10,titleb);
        outtextxy( getmaxx()/2 -textwidth(titlec)/2 ,10,titlec);
        
        /*
        
        非渲染
        文字不是IMAGE对像,需要考虑绘图时消除文字的问题
        或者把文件存入到IMAGE对像统一绘制
        或者使用ito等int型转换char的函数实现每次循环渲染到buff 
        
        */
}


//初始化 背景 后面用 结构e 代替 init()中的 加载背景等函数 
void init()
{
        initgraph(WIN_WIDTH,WIN_HEIGHT); //第3个参数默认0 控制台开关 flag=0关 flag=1不关 
        
        //输出界面文字
        Title();                 
                         
        char name[64]; //文件名变最需要用来读取硬盘上的图片文件 
        
        //加载背景
        
        for(int i=0;i<Bg_num; i++)
        {
                sprintf(name,"F:\\e01\\res\\bg%03d.png",i+5);
                loadimage(&bg[i],name);
                bgx[i]=0;
                
        }

        printf("初始化完成");
        
}


int main(int argc, char** argv) {
        
        init();
        
        PlaySound(TEXT("F:\\e01\\sound\\backgroudMusic.wav"),NULL,SND_ASYNC);

        e qq; //创建空对像 用来集中批量地控制图像 
        
        qq.get_num_name(5,"F:\\e01\\res\\qq.png"); //10个qq载入IMAGE == init()
        
        for(int i=0;i<5;i++)  
        {
                qq.set_statu(i,0);              //都设为1状态 == 各种动作 0 不动 
                qq.set_stay(i,10+i*78,10); //都设为停留在不同的位置
        }
        
        e ball;
        
        ball.get_num_name(10, "F:\\e01\\res\\gg03.png" );
        
        for(int i=0;i<10;i++)
        {
                ball.set_statu(i,1);                         //为下雪作准备 
                ball.set_stay(i,10+i*80,10);         //雪的密度 
                ball.set_addx(i,0);
                ball.set_addy(i,5);                         //下雪动作 
        }

        int on=1;
        while(on)
        {
                event_pressed(on); //输入 对画面实现控制 人机交互 
                
                BeginBatchDraw(); //批量绘图,开始缓存 下面所有行 绘制但不显示 
                
                updateBg();                                      //图层底 0+x层 写入 
                
                FlushBatchDraw(305,305,310,310); //图层底 所有行,显示出来 
                
                qq.draw_buff();                            //图层中 0+x-1写入
                
                FlushBatchDraw(305,305,310,310); //图层中,显示出来 
                
                ball.draw_buff();                //图层上 最后刷新出来的图为0层
                
                EndBatchDraw();                                  //批量绘图结束 显示0层 
                
                Sleep(100);  //0.1秒休眠 提高本项目运行在windows的性能
                
                                                                                 //最后 需,一次下来,显示了3次要按素材设计规划显示的合理性 
                
        }
        
        system("pause");
        closegraph();
        return 0; 
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-28 03:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表