#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<easyx.h>
#include<bits/stdc++.h>
#include<time.h>
using namespace std;
//清屏,双缓冲,帧率
void pianzi() {setbkmode(TRANSPARENT);//FPS 60f 帧率const clock_t FPS = 1000 / 60;//1秒/60帧=16(int) 每一帧应该花费的时间int startTime = 0;int freeTime = 0;//当前帧实际执行时间int score = 0;char str[50] = "";while (true) {startTime = clock();//程序运行的毫秒数sprintf(str, "score:%d", score++);settextcolor(BLACK);//双缓冲防止闪屏BeginBatchDraw();cleardevice();//用设置的背景颜色填充整个窗口//防止堆积在一起,模糊outtextxy(20, 20, str);EndBatchDraw();freeTime = clock() - startTime;if (freeTime > 0) {Sleep(FPS - freeTime);}}getchar();
}
//图片加载+透明贴图
void jiazai() {//定义图片变量 int a;IMAGE img_mm;//img 图片//加载图片 scanf("%d",&a);//图片地址:1,绝对路径:带盘符的路径,有斜杠要反斜杠(且格式要正确)//E:\\作业1\\easyx的清屏,双缓冲,帧率控制\\easyx的清屏,双缓冲,帧率控制\\ok\\LLjLEqie8G.jpg.jpg//2,相对路径 :与程序相对的路径(更好,可以在别人电脑运行 )//ok/LLjLEqie8G.jpg.jpgloadimage(&img_mm, "ok/LLjLEqie8G.jpg.jpg");//loadimage(&img_mm, ""480,400);,后面是指定图片大小//输出图片 printf("%d", a);putimage(0, 0, &img_mm);//透明图贴图//也可以用数组IMAGE img_plane;//IMAGE img_plane[2];IMAGE img_plane_mask;loadimage(&img_plane, "位置");loadimage(&img_plane_mask, "位置");putimage(50, 100, &img_plane_mask, NOTSRCERASE);//先绘制掩码图putimage(50, 100, &img_plane, SRCINVERT); //在绘制原图//PNG图片透明贴图IMAGE img_png;loadimage(&img_png, "missage.png");putimage(200, 100, &img_png);//若不行,代表不支持,需要自己搞文件写成下面的形式//drawimg(200,200,&img_png)
}
//动画1
void donghua1() {IMAGE img_enemy[4];char path[100] = { 0 };for (int i = 0; i < 4; i++) {//循环加载图片sprintf(path, "图片位置%d.png", i + 1);loadimage(img_enemy, path);}const int framedealy = 1000 / 60;int framestart = 0;int frametime = 0;/*loadimage(img_enemy + 0, "图片地址");loadimage(img_enemy + 0, "图片地址");loadimage(img_enemy + 0, "图片地址");loadimage(img_enemy + 0, "图片地址");*/int index = 0;int speed = 500;//每隔500毫秒切换一帧while (true) {//游戏主循环framestart = clock();BeginBatchDraw();cleardevice();putimage(0, 0, img_enemy + index);//drawImg(0, 0, img_enemy + i);//自定义的透明图片EndBatchDraw();index++;index = (index + 1) % 4;//index = (clock() / speed) % 4;//控制速度frametime = clock() - framestart;//控制帧率if (framedealy - frametime > 0) {Sleep(framedealy - frametime);}}
}
//donghua2
void donghua2() {const int framedealy = 1000 / 60;int framestart = 0;int frametime = 0;IMAGE img_sheet;loadimage(&img_sheet, "图片地址");int imgsize = 32;//每帧的尺寸int frame = 7;//总共有多少帧(一张图片中有多少小图)int speed = 200;//多少毫秒切换一张图int index = 0;//贴哪一张while (true) {//游戏主循环framestart = clock();BeginBatchDraw();cleardevice();//用这种格式int dstX, int dstY, int dstWidth, int dstHeight, const IMAGE *pSrcImg, int srcX, int srcY, DWORD dwRop = SRCCOPYputimage(250,250,imgsize, imgsize, &img_sheet, index * imgsize, 0);//(坐标,坐标,贴图的宽,贴图的高,哪张图片,小图片在大图片的坐标,小图片在大图片的坐标);EndBatchDraw();index = (clock() / speed) % frame;frametime = clock() - framestart;//控制帧率if (framedealy - frametime > 0) {Sleep(framedealy - frametime);}}
}
int main(){initgraph(1666, 1666, EX_SHOWCONSOLE);setbkcolor(RGB(16, 124, 16));cleardevice();///清屏,双缓冲,帧率//pianzi();//加载图片,输出//jiazai();//动画donghua1();//单帧多图donghua2();//精灵表动画getchar();return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<easyx.h>
#include<bits/stdc++.h>
#include<time.h>
using namespace std;
//清屏,双缓冲,帧率
void pianzi() {
setbkmode(TRANSPARENT);
//FPS 60f 帧率
const clock_t FPS = 1000 / 60;//1秒/60帧=16(int) 每一帧应该花费的时间
int startTime = 0;
int freeTime = 0;//当前帧实际执行时间
int score = 0;
char str[50] = "";
while (true) {
startTime = clock();//程序运行的毫秒数
sprintf(str, "score:%d", score++);
settextcolor(BLACK);
//双缓冲防止闪屏
BeginBatchDraw();
cleardevice();//用设置的背景颜色填充整个窗口//防止堆积在一起,模糊
outtextxy(20, 20, str);
EndBatchDraw();
freeTime = clock() - startTime;
if (freeTime > 0) {
Sleep(FPS - freeTime);
}
}
getchar();
}
//图片加载+透明贴图
void jiazai() {
//定义图片变量 int a;
IMAGE img_mm;//img 图片
//加载图片 scanf("%d",&a);
//图片地址:1,绝对路径:带盘符的路径,有斜杠要反斜杠(且格式要正确)//E:\\作业1\\easyx的清屏,双缓冲,帧率控制\\easyx的清屏,双缓冲,帧率控制\\ok\\LLjLEqie8G.jpg.jpg
//2,相对路径 :与程序相对的路径(更好,可以在别人电脑运行 )//ok/LLjLEqie8G.jpg.jpg
loadimage(&img_mm, "ok/LLjLEqie8G.jpg.jpg");//loadimage(&img_mm, ""480,400);,后面是指定图片大小
//输出图片 printf("%d", a);
putimage(0, 0, &img_mm);
//透明图贴图//也可以用数组
IMAGE img_plane;//IMAGE img_plane[2];
IMAGE img_plane_mask;
loadimage(&img_plane, "位置");
loadimage(&img_plane_mask, "位置");
putimage(50, 100, &img_plane_mask, NOTSRCERASE);//先绘制掩码图
putimage(50, 100, &img_plane, SRCINVERT); //在绘制原图
//PNG图片透明贴图
IMAGE img_png;
loadimage(&img_png, "missage.png");
putimage(200, 100, &img_png);//若不行,代表不支持,需要自己搞文件写成下面的形式
//drawimg(200,200,&img_png)
}
//动画1
void donghua1() {
IMAGE img_enemy[4];
char path[100] = { 0 };
for (int i = 0; i < 4; i++) {//循环加载图片
sprintf(path, "图片位置%d.png", i + 1);
loadimage(img_enemy, path);
}
const int framedealy = 1000 / 60;
int framestart = 0;
int frametime = 0;
/*loadimage(img_enemy + 0, "图片地址");
loadimage(img_enemy + 0, "图片地址");
loadimage(img_enemy + 0, "图片地址");
loadimage(img_enemy + 0, "图片地址");*/
int index = 0;
int speed = 500;//每隔500毫秒切换一帧
while (true) {//游戏主循环
framestart = clock();
BeginBatchDraw();
cleardevice();
putimage(0, 0, img_enemy + index);
//drawImg(0, 0, img_enemy + i);//自定义的透明图片
EndBatchDraw();
index++;
index = (index + 1) % 4;
//index = (clock() / speed) % 4;//控制速度
frametime = clock() - framestart;//控制帧率
if (framedealy - frametime > 0) {
Sleep(framedealy - frametime);
}
}
}
//donghua2
void donghua2() {
const int framedealy = 1000 / 60;
int framestart = 0;
int frametime = 0;
IMAGE img_sheet;
loadimage(&img_sheet, "图片地址");
int imgsize = 32;//每帧的尺寸
int frame = 7;//总共有多少帧(一张图片中有多少小图)
int speed = 200;//多少毫秒切换一张图
int index = 0;//贴哪一张
while (true) {//游戏主循环
framestart = clock();
BeginBatchDraw();
cleardevice();
//用这种格式int dstX, int dstY, int dstWidth, int dstHeight, const IMAGE *pSrcImg, int srcX, int srcY, DWORD dwRop = SRCCOPY
putimage(250,250,imgsize, imgsize, &img_sheet, index * imgsize, 0);
//(坐标,坐标,贴图的宽,贴图的高,哪张图片,小图片在大图片的坐标,小图片在大图片的坐标);
EndBatchDraw();
index = (clock() / speed) % frame;
frametime = clock() - framestart;//控制帧率
if (framedealy - frametime > 0) {
Sleep(framedealy - frametime);
}
}
}
int main(){
initgraph(1666, 1666, EX_SHOWCONSOLE);
setbkcolor(RGB(16, 124, 16));
cleardevice();
///清屏,双缓冲,帧率
//pianzi();
//加载图片,输出
//jiazai();
//动画
donghua1();//单帧多图
donghua2();//精灵表动画
getchar();
return 0;
}