【DxLib】DrawModiString系関数のバグ(?)

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
32Ryo
記事: 5
登録日時: 1年前

【DxLib】DrawModiString系関数のバグ(?)

#1

投稿記事 by 32Ryo » 1年前

こんにちは。現在DxLibを用いてゲーム制作をしている者です。
以下の処理を実装した所、バグらしきものを発見しました。

処理:
描画したい文字幅(width)が定数MAX_WIDTHより大きい場合、DrawModiStringToHandleを使ってMAX_WIDTHの幅に収める。
文字幅がMAX_WIDTH以下ならそのまま描画する。
(パ○ドラのダメージ表記に使われている感じの処理)

この処理をした結果、ほとんどの文字はうまく描画されました。しかし、p,g,yなどの下にはみ出ている文字が下にはみ出ている部分だけ描画されませんでした。(添付ファイル参照)

動作環境は
OS:Win10
コンパイラ:Visual Studio 2022
DxLib: 3.24b
です。

これはバグでしょうか。それともおま環でしょうか。
添付ファイル
スクリーンショット (57).png
settingのgだけ途切れている
スクリーンショット (57).png (2.28 KiB) 閲覧数: 7918 回

アバター
あたっしゅ
記事: 665
登録日時: 14年前
住所: 東京23区
連絡を取る:

Re: 【DxLib】DrawModiString系関数のバグ(?)

#2

投稿記事 by あたっしゅ » 1年前

[香車]東上☆あらし☆海美「
バグらしきものが発生するソースコードを貼ってください。
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

32Ryo
記事: 5
登録日時: 1年前

Re: 【DxLib】DrawModiString系関数のバグ(?)

#3

投稿記事 by 32Ryo » 1年前

あたっしゅさん
返信ありがとうございます。

こちらが件のソースになります。テスト用として新しく作成しましたが、やはりバグらしき挙動をしました。

コード:

#include "DxLib.h"

#define TEST_STR_NUM 2
#define TEST_MAX_WIDTH 300
#define TEST_STR_SIZE 32

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
	ChangeWindowMode(TRUE);
	if (DxLib_Init() == -1)return 0;
	SetDrawScreen(DX_SCREEN_BACK);

	int fontHandle = 0;
	fontHandle = CreateFontToHandle("Meiryo UI", TEST_STR_SIZE, 1, DX_FONTTYPE_ANTIALIASING); //フォントは適当

	const char* testStr = "アイウ 漢字 XYZ setting gpyq";

	int strWidth = 0;
	strWidth = GetDrawStringWidthToHandle(testStr, -1, fontHandle); //負の値を渡して文字全体の長さを取得

	while (ProcessMessage() == 0) {
		ClearDrawScreen();


		if (TEST_MAX_WIDTH < strWidth) {
			//幅が定数より大きい場合圧縮して描画
			//引数の座標は左上、右上、右下、左下の順
			DrawModiStringToHandle(0, 0, TEST_MAX_WIDTH, 0, TEST_MAX_WIDTH, TEST_STR_SIZE, 0, TEST_STR_SIZE, GetColor(255, 255, 255), fontHandle, GetColor(128, 128, 128), 0, testStr);
		}
		else {
			//定数以下の場合は普通に描画
			DrawStringToHandle(0, 0, testStr, GetColor(255, 255, 255), fontHandle);
		}


		ScreenFlip();
	}
	
	DxLib_End(); //終了
	return 0;
}

アバター
あたっしゅ
記事: 665
登録日時: 14年前
住所: 東京23区
連絡を取る:

Re: 【DxLib】DrawModiString系関数のバグ(?)

#4

投稿記事 by あたっしゅ » 1年前

[香車]東上☆あらし☆海美「
Windwos11 Insider Preview でも、再現したみみ。
アルファベットの下へはみ出る奴は、鬼門みみ。
DxLib 本家 掲示板 行きみみ。

https://dxlib.xsrv.jp/cgi/aska/aska.cgi
雑談&質問掲示板(日付順表示) 雑談風書き込みに適した掲示板です。

https://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?
DXライブラリプログラム&プログラム質問掲示板(スレッド表示)スレッド表示の質問・回答に適した掲示板です。
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

32Ryo
記事: 5
登録日時: 1年前

Re: 【DxLib】DrawModiString系関数のバグ(?)

#5

投稿記事 by 32Ryo » 1年前

あたっしゅさん
返信ありがとうございます。

再現性のあるバグということで、貼っていただいたリンク(DxLib本家掲示板)へバグ報告をしたいと思います。

根本的な問題はまだ解決していませんが、こちらの掲示板では解決としたいと思います。
ご協力ありがとうございました。

32Ryo
記事: 5
登録日時: 1年前

Re: 【DxLib】DrawModiString系関数のバグ(?)

#6

投稿記事 by 32Ryo » 1年前

すみません、このトピックを閉鎖してから本家掲示板の方に投稿したいのですが、閉鎖の仕方が分からず困っています。どなたか知識のある方、トピックを閉鎖する方法を教えていただけませんか。

アバター
あたっしゅ
記事: 665
登録日時: 14年前
住所: 東京23区
連絡を取る:

Re: 【DxLib】DrawModiString系関数のバグ(?)

#7

投稿記事 by あたっしゅ » 1年前

[香車]東上☆あらし☆海美「
ここは、『トピックの閉鎖』ないですので、放置したままで、結構みみ。
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

32Ryo
記事: 5
登録日時: 1年前

Re: 【DxLib】DrawModiString系関数のバグ(?)

#8

投稿記事 by 32Ryo » 1年前

あたっしゅさん
返信ありがとうございます。

こちらからの閉鎖は無いんですね。初めて知りました。
教えていただきありがとうございます。

では、放置させていただきます。

返信

“C言語何でも質問掲示板” へ戻る