DXライブラリでの改行
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリでの改行
残念ながら無いので自分で改行を制御します。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリでの改行
strtok関数などで改行コードを区切りとして文字列を分解して、それぞれの文字列毎に行を変えてやることで実現可能です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
あーけお
Re: DXライブラリでの改行
#include "DxLib.h"
#include "stdio.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){
if(DxLib_Init()==-1){
return -1;
}
int a[10][15]={
{1, 1, 1, 1 ,2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4}, //
{1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
};
int x=0;
int y=0;
int Cr=GetColor(255, 255, 255);
for(x=0; x<10; x++){
for(y=0; y<15; y++){
DrawFormatString("%d", "%d", Cr, "%d\n",250+1*x ,240-32*y ,a[x][y]) ; //①
}
printf("\n");
}
WaitKey();
DxLib_End() ;
return 0 ;
}
コード中の①のようにして、配列を表示させようとしてもできないのですがどのように直すべきですか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリでの改行
引数で数値の所に文字列を使ったり文法的に出鱈目になっています。
「DrawFormatString」 ← リファレンス
http://homepage2.nifty.com/natupaji/DxL ... tml#R17N20
まず、C言語をちゃんと理解されたほうが良いと思いますよ。
DrawFormatString("%d", "%d", Cr, "%d\n",250+1*x ,240-32*y ,a[x][y]) ; //①
ではなく
DrawFormatString(250+1*x,240-32*y, Cr, "%d" , a[x][y]) ; //①
とすれば数値は表示されると思います。
それと
printf("\n");
はグラフィック画面であるDXライブラリのウィンドウでは無意味です。
「DrawFormatString」 ← リファレンス
http://homepage2.nifty.com/natupaji/DxL ... tml#R17N20
まず、C言語をちゃんと理解されたほうが良いと思いますよ。
DrawFormatString("%d", "%d", Cr, "%d\n",250+1*x ,240-32*y ,a[x][y]) ; //①
ではなく
DrawFormatString(250+1*x,240-32*y, Cr, "%d" , a[x][y]) ; //①
とすれば数値は表示されると思います。
それと
printf("\n");
はグラフィック画面であるDXライブラリのウィンドウでは無意味です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DXライブラリでの改行
#include "DxLib.h"
#include "stdio.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){
if(DxLib_Init()==-1){
return -1;
}
int a[10][15]={
{1, 1, 1, 1 ,2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4}, //
{1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //
};
int x=0;
int y=0;
int Cr=GetColor(255, 255, 255);
for(x=0; x<10; x++){
for(y=0; y<15; y++){
DrawFormatString(250+1 * x,240-32 * y, Cr, "%d", a[x][y]) ; //①
}
}
WaitKey();
DxLib_End() ;
return 0 ;
}
座標は%dでは表わさず、直接入力します。
これに、一定の数だけ行くと改行する仕組みをつければ良いと思います。
試してないのであってるかは別として。
(ソフト屋さんと同じ解答になってしまいました)
Dango San
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリでの改行
解決したのでしょうか?解決のチェックマークをお願いします。あーけお さんが書きました:ありがとうございました
今回のは改行は関係ない & 数値を並べたい
と言うことでよろしいですね?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリでの改行
ご本人に残った疑問/問題点を質問してもらわないと、どういう問題が残っているか分かりませんのでお願いします。あーけお さんが書きました:いいえ未解決です
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。