问题分类 [EasyX]

提问

0

价值

1

答案

85

浏览

发现 EasyX 20220901 的新 bug,关于未创建窗口时 SetWorkingImage(0) 的问题

问题描述

通常,在对某个 IMAGE 对象绘制时,我们会先保存旧的 WorkingImage,然后在 SetWorkingImage 到待绘制的 IMAGE 对象。

这样,我们就可以在对 IMAGE 对象绘制后,使用 SetWorkingImage 将绘制目标恢复到原先的状态。

这是很常见的做法。但是,如果在没有创建绘图窗口的情况下,上述操作就会出现问题。

触发 bug 的代码

#include <graphics.h>

void
ava
huidong

2023-1-15

2

价值

1

答案

812

浏览

win11 下 visual studio 运行 easyx 时无法使用控制台函数交互

正常情况下运行 easyx 时只会弹出 easyx 的图形窗口而不会弹出平时常出现的终端黑色窗口,但 win11 某次版本更新之后它会同时弹出这两个窗口,并且键盘交互只能在黑色的终端窗口中进行,没法对着 easyx 的图形窗口进行键盘交互,并且关闭黑色终端窗口的同时 easyx 的窗口也会随之关闭。

操作系统:Windows 11 家庭中文版,操作系统版本 22621.819

编译环境:Microsoft visual studio 2022 community,EasyX_20220901

以下代码是临时编写的,一个简单的提供键盘交互功能的 e

ava
氟拉基米尔

2022-11-25

0

价值

1

答案

214

浏览

小龙Dev-C++报错

小龙Dev-C++ 自带EasyX 报错 windows系统https://devcpp.gitee.io/manual/support-easyx.html

报错:

在此函数中: 'int main()':

12 2  [错误] 'getch' 未在此范围内声明

12 2  [注解] 建议替换为: 'gety

ava
vcxzgf

2022-11-2

0

价值

1

答案

248

浏览

easyx如何将多张图片播放成为视频

原本是想通过一个for循环将图片进行连续输出,然后通过延时来达到一个图片保留一段时间的效果,最后图片连续播放变成视频。

但是使用如下的函数时,图片根本就读取不了,现在就根本不知道下一步怎么办?求解答?

void image()
{
	//输出图片
	IMAGE img[60];					//定义一个(变量)对象;

	for(int i=1;i<59;i++)		//照片名字从1开始
	{
		//加载图片
		loadimage(&img[i], "./梅西 (i).png", 640,
ava
Time

2022-10-27

0

价值

1

答案

206

浏览

EasyX在dll中进行绘制保存图片问题,无法释放dll

操作环境:windwos10 & vs2017 & EasyX Library for C++ (Ver:20220116)

我希望可以在dll中进行绘制,我可以将点坐标传给参数,绘图与保存完全在dll中实现,然后通过接口去调用

在EasyX中,设备分两种,分别做了一种是默认的绘图窗口,另一种是IMAGE对象的测试

在同一台设备相同环境下,我将这段代码在dll导出程序export工程里以dll方式导出,在控制台应用工程load里进行调用时,可以成功执行绘图并保存,

但是执行完后却无法释放dll导致程序阻塞或者崩溃,我

ava
八至

2022-10-21

0

价值

2

答案

627

浏览

键盘按键同时长按两个键时后按的键无效

我现在想做一个双人小游戏,我需要用awsd或者上下左右键控制两个人的行动,这样很大可能就会导致玩家长按上下左右键或者awsd键,然后现在出现了一个问题就是如果我两个人一起按键盘就会导致后按键盘那个动作无效,就是无法两个人同时长按键盘,我如果两边一起长按的话,只有一个会持续移动,但是如果此时我其中没有被移动的那个人重新按一下键盘,那么刚才持续移动那个会停止(实现过程就是下面的代码把printf换成我设计的人物移动代码,在这里只单独长按一个键可以正常移动)

但是我缩减代码的时候又遇到了个问题

下面是我缩减后的代码

我本来是打算弄一个,按W就显示w,按

ava
有毒

2022-9-12

0

价值

1

答案

399

浏览

请问绘图函数怎么封装进DLL

如果要将EasyX绘图函数封装进DLL,就必须要指定这些函数作用的父窗口

但是EasyX没有像Windows API那样通过传入窗口句柄实现绘图的函数

所以想问下有没有解决办法

#include <Windows.h>
#include <graphics.h>

#define DLL_API __declspec(dllexport)

DLL_API void FaceDraw1(bool f)
{
    setlinecolor(RGB(37, 75, 1
ava
System

2022-8-16

0

价值

1

答案

446

浏览

inputbox问题

编译环境是VScode+MinGW,GBK编码

想试一下inputbox,先直接复制了文档上的代码

#include <graphics.h>
#include <conio.h>

int main()
{
	// 初始化绘图窗口
	initgraph(640, 480);

	// 定义字符串缓冲区,并接收用户输入
	wchar_t s[10];
	InputBox(s, 10, L"请输入半径");

	// 将用户输入转换为数字
	int r = _wtoi(s);

	
ava
用户7b1f

2022-6-19

0

价值

1

答案

655

浏览

easyx的输入法交互

win7下的控制台输入法候选界面是直接输出在控制台窗口最后一行的,我想在一个easyx界面实现这个效果

即通过easyx api获取按键,然后将拼音发送给输入法的dll,获得候选列表并将其渲染在我的窗口上(不显示输入法窗口),这可以实现吗?

ava
无名氏

2022-1-22

2

价值

1

答案

744

浏览

关于结构体内数组元素过大引起的程序崩溃

大家好。

我的编译环境是VC++6.0

如下代码,如果代码正常运行,程序应该陷入无线循环。但他会崩溃,直接结束进程。如果把129501改成129500就没问题了。我想知道这个值的意义和原因。这样以后设计结构体时,才能更好地控制每个结构体内数组元素大小,不至于不小心超了,还一直找不到程序崩溃的原因。

# include <string>
using namespace std;

// 定义一个结构体
struct Node1
{
	double x[129501];	
};

ava
花毛茛

2022-1-12

0

价值

0

答案

691

浏览

VS 2019 使用 “在静态库中使用MFC” 报错,求解决方案!!!

VS 2019 无法使用“在静态库中使用MFC”,

我要生成 XP 应用,程序目前的设置已经参照这个了:VS 2019 生成 XP 应用

提示错误:

1>Sokoan.obj : error LNK2001: 无法解析的外部符号 __imp__CoInitialize@4
1>EasyXa.lib(EasyX.G
ava
Alan-CRL

2021-12-25

0

价值

1

答案

749

浏览

outtextxy 无法输出中文,不愿改字符集

outtextxy 无法输出中文,不愿改字符集

#include <stdio.h>

char name[10];
int main()
{
	for (int i = 0; i <sizeof(p->name); i++)
								{
									TCHAR x[10];
									_stprintf_s(x,_T("% c"),p->name[i]);
									outtextxy(100+30*i, 100 + l,x);
								}
}
ava
叮当

2021-12-16

0

价值

2

答案

1221

浏览

Easyx如何实现图像定点旋转

请问一下Easyx是否能实现图像的定点旋转,rotateimage是以图像中心点为原点进行旋转,而我需要以图像底边中点为原点进行旋转,有无其它的函数可以实现定点旋转效果?

ava
夜瞳·Midnight

2021-12-10

0

价值

1

答案

792

浏览

arc 画圆弧的问题

我修改了坐标系的Y轴方向,和原点的位置,这样和平时使用的二维坐标系相同,现在的问题是

我使用arc函数来绘图的时候,弧度似乎与我想的不同,我想在第1象限绘图,但是好像绘制到第4象限了?请问这是为何?

我的起始弧度设置的是30度(pi/6), 结束弧度设置的是90度(pi/2) 为什么结果不对呢?

include <graphics.h>
#include <conio.h>
#include <math.h>
ava
Sun

2021-10-25

0

价值

1

答案

703

浏览

textheight处理多行字符串的结果不太符合我的预期

对一个有多个换行的字符串调用textheight并没有返回多个换行的总高度,而是单行的高度,请问是bug么?

ava
wlxk

2021-10-19

0

价值

1

答案

784

浏览

在VS2019中对EasyX进行调试,无法显示调试窗口

用VS2019写了个绘制圆环的小程序,想要进行调试时却无法显示调试窗口

ava
LUQ

2021-10-10

0

价值

1

答案

990

浏览

关于使用EasyX逐像素打印过慢的问题

我是 EasyX 的初学者,正使用EasyX做一个简单的游戏。但是我遇到了一个问题

我把游戏做成全屏的效果,它会十分迅速的计算出每个像素的颜色,并且储存在二维数组当中。可是如果使用 putpixel(x,y,color) 函数逐个绘制每个像素,大概需要2~4秒的时间。即使画面每次仅改变一部分像素,相对于144Hz屏幕来说,这个时间也是非常慢的。下面的代码是一个测试。

有什么方法,可以迅速把这个二维数组存储的数据,打印到屏幕吗?

#include <graphics.h>
ava
奶头乐

2021-10-9

0

价值

2

答案

1111

浏览

关于loadimage函数的问题 求大佬解答!

用的是EasyX_20200902版本,使用loadimage函数加载图片时,窗口其他地方会变成黑色,代码中把窗口设置为白色,加载了两张图片,运行结果只显示第二张图片,其他地方都是黑色。不知道是哪里的问题。

#include <iostream>
#include <easyx.h>
#include <graphics.h>
#include "mmsystem.h"
#pragma comment(lib,"Winmm.lib")
#include <stdio.h>
ava

2021-8-28

0

价值

2

答案

1314

浏览

如何稳定帧率

我有一个双线程的窗口程序,其中一个线程会不定期向另一个线程发出重绘命令(通过SendMessage)

我想知道要怎么处理才能使帧数维持在60帧,即当重绘命令过于密集时,我需要怎么做才能适当地忽略掉一部分命令,而又不漏掉必要的命令使画面卡顿?

想过在 WndProc 用 Timer,但是听说精度不怎么样,如果直接开第三个线程的话又感觉太麻烦,我想知道能不能直接在 WndProc 层把这一问题搞定。

ava
无名氏

2021-8-25

1

价值

2

答案

1285

浏览

技术讨论社区