C言語でサウンドノベル風表示文字を追加したいのですが><

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
超初心者C丸

C言語でサウンドノベル風表示文字を追加したいのですが><

#1

投稿記事 by 超初心者C丸 » 15年前

自分はここのサイトをみてC言語を学び
まずはすごく簡単なサウンドノベルをつくってみようとおもったんですが
文字がどうがんばってもこれ以上表示することができなくてここの掲示板にHELPを
したしだいです><

コードソースを張ります

#include "DxLib.h"

int i=0,j,ch_i=0,counter=0,White;
char Key[256],oldKey[256]={},disp[80]="",ch[5][80]={
"プログラムを習得するには、実際に自分で書いてみることが大事。",
"参考書を読むことも重要だが、数学のように演習を通して、",
"体に身につけるようにしよう。",
"きっと、よりはっきりと、関数の使い方、",
"プログラムの書き方がわかるだろう。"
};


int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1;
SetDrawScreen( DX_SCREEN_BACK ) ;

White=GetColor(255,255,255);

while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){

for(j=0;j<256;j++){
if(oldKey[j]==0 && Key[j]==1)
Key[j]=2;
oldKey[j]=Key[j];
}

if(Key[KEY_INPUT_RETURN]==2){ // 前回押されてなくて、今回押されていたら
i=0; // iを初期値に戻し
ch_i++; // 表示する配列を1つずらす
if(ch_i==5) // これ以上表示する配列がなくなったらbreak;
break;
}

// 配列の終端-2以下で、今回コピーするiまでの配列要素のi番目が\0じゃなくカウンターが5の倍数なら
if(i<=80-2 && ch[ch_i]!='\0' && counter%5==0){
i+=2; // 全角文字なので配列要素2つずつカウントアップ
strncpy(disp,ch[ch_i],i);// iバイトまでの配列要素をdisp配列にコピー
disp='\0'; // 終端記号を代入
}

DrawFormatString(10,420,White,"%s",disp);//disp配列の文字データを表示

counter++;
ScreenFlip() ;

}

DxLib_End() ;
return 0 ;
}

この(プログラムの書き方がわかるだろう)から
また文字をサウンドノベル風に表示させたいのですが
どこをどういじればサウンドノベル風表示文字を増やせるようになるのか
教えていただけたら幸いです。

超初心者C丸

Re:C言語でサウンドノベル風表示文字を追加したいのですが><

#2

投稿記事 by 超初心者C丸 » 15年前

書き忘れたので、追記です

使っているアプリケーション?は
Vsual c++2008とDxライブラリのみです!

ookami

Re:C言語でサウンドノベル風表示文字を追加したいのですが><

#3

投稿記事 by ookami » 15年前

これって、
http://dixq.net/g/index2.html
のサンプルプログラムそのまんまですか?

softya

Re:C言語でサウンドノベル風表示文字を追加したいのですが><

#4

投稿記事 by softya » 15年前

>自分はここのサイトをみてC言語を学び
そもそもここはC言語を学ぶところではなくゲームプログラミングの講座ですから、C言語自体は別の書籍で学ばれたほうが良いと思います。

一応ノベルゲームの講座サイトはご紹介できますが、C言語やDXライブラリの知識がある程度必要です。
http://karetta.jp/book-cover/game-programming

DXライブラリの本家にも基本のサンプルがあります。
http://homepage2.nifty.com/natupaji/DxL ... am.html#N6
http://homepage2.nifty.com/natupaji/DxL ... m.html#N20

DXライブラリの本家で、ちゃんとしたゲームのソースコードもダウンロード可能です。
http://homepage2.nifty.com/natupaji/DxLib/dxsample.html

で、幾つかチャレンジしてみてください。
・この提示されたコードですが表示を途中で止めることはできますか?
・下記の変数の役割を説明してください。
char Key[256],oldKey[256]={},disp[80]="",ch[5][80]=
・コードに元の「サウンドノベル風文字列表示法1」を見ずにコメントを追加してみてください。
これらはすべて理解すべきところなので出来るだけやってみてください。お待ちしています。

閉鎖

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