丸投げですみません…。
今現在、C言語とC++などを用いて文字の点滅処理を作る課題出たのですがまったく分かりません。
納期が近づいてるので、参考になるようなアドバイスまたはサンプルコードで説明して頂ければ幸いです。
点滅処理
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 点滅処理
そもそも文字の点滅というのが環境に依存します。
それにC言語やらC++やらどっちでも良い的なのは本当に大丈夫でしょうか?
>納期が近づいてるので、参考になるようなアドバイスまたはサンプルコードで説明して頂ければ幸いです。
まず、フォーラムルールのテンプレートに従って投稿をお願いします。
http://dixq.net/board/board.html
それにC言語やらC++やらどっちでも良い的なのは本当に大丈夫でしょうか?
>納期が近づいてるので、参考になるようなアドバイスまたはサンプルコードで説明して頂ければ幸いです。
まず、フォーラムルールのテンプレートに従って投稿をお願いします。
http://dixq.net/board/board.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
阿部
Re: 点滅処理
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ) {
char Key[256];
int tenmetuflag=0;
int msgnumber,enenumsearchflg=1,walktmp=0;
int attacknumber,tenmetumode=0,attackmode=0,tenmetucounter=0,zoukaryou=0,enezoukaryou=0,turn=1,Eneattackmode=0;
char messagebox[120]="aaaaあああああああああああああああいうえお";
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //ウィンドウ化と初期化処理
SetDrawScreen( DX_SCREEN_BACK ) ; //描画先を裏画面に設定
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]) {
//↑メッセージ処理 ↑画面をクリア ↑キーボード入力状態取得 ↑ESCが押されると終了
if(tenmetuflag==0)
DrawFormatString(120,340,GetColor(255,25,255),"%s",messagebox);
if(Key[ KEY_INPUT_RETURN ] == 1)tenmetumode=1;
//敵キャラ死に際点滅犯人か判定違ったらGAMEOVER画面へ
if(tenmetumode==1){
tenmetucounter++;
if(tenmetucounter%3==0)tenmetuflag=1;else tenmetuflag=0;
if(tenmetucounter==60){
tenmetumode=0;
tenmetucounter=0;
}}
ScreenFlip();
}
DxLib_End();
return 0;
}- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 点滅処理
一応点滅しますが、どちらかと言うとチラツキです。DDf さんが書きました:回答ありがとうございます。
ライブラリー依存しないでの書き方または参考になるようなアドバイスなどありましたらよろしくお願いします。
可能であればC言語主体でお願いします。
#include <stdio.h>
int main(void)
{
while(1){
printf("hello world!!");
printf("\r");
printf(" ");
printf("\r");
}
return 0;
}C言語の基礎の基礎レベルで片付きますね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 点滅処理
多重投稿に注意して下さい。
>最後にに点滅処理後の画面の切り替えはどのような構成で可能でしょうか?
必要なんでしょうか?
どうしても環境依存するので、CTRL-Cでキャンセルするのが一番だと思います。
ちなみに、私はこれで課題OKになるならC言語を習って初期の段階だけだと思います。
つまり、課題の意図を取り違えていないか気になるんですが大丈夫ですか?
>最後にに点滅処理後の画面の切り替えはどのような構成で可能でしょうか?
必要なんでしょうか?
どうしても環境依存するので、CTRL-Cでキャンセルするのが一番だと思います。
ちなみに、私はこれで課題OKになるならC言語を習って初期の段階だけだと思います。
つまり、課題の意図を取り違えていないか気になるんですが大丈夫ですか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
阿部
Re: 点滅処理
こんなかんじでできます
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ) {
char Key[256];
int tenmetuflag=0;
int msgnumber,enenumsearchflg=1,walktmp=0;
int attacknumber,tenmetumode=0,attackmode=0,tenmetucounter=0,zoukaryou=0,enezoukaryou=0,turn=1,Eneattackmode=0;
char messagebox[120]="aaaaあああああああああああああああいうえお";
char messagebox2[120]="画面切り替わったよ";
int state=0;
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //ウィンドウ化と初期化処理
SetDrawScreen( DX_SCREEN_BACK ) ; //描画先を裏画面に設定
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]) {
//↑メッセージ処理 ↑画面をクリア ↑キーボード入力状態取得 ↑ESCが押されると終了
switch(state){
case 0:
if(tenmetuflag==0)
DrawFormatString(120,340,GetColor(255,25,255),"%s",messagebox);
if(Key[ KEY_INPUT_RETURN ] == 1)tenmetumode=1;
if( Key[ KEY_INPUT_SPACE ] == 1)state=1;
//敵キャラ死に際点滅犯人か判定違ったらGAMEOVER画面へ
if(tenmetumode==1){
tenmetucounter++;
if(tenmetucounter%3==0)tenmetuflag=1;else tenmetuflag=0;
if(tenmetucounter==60){
state=1;
tenmetumode=0;
tenmetucounter=0;
}}
break;
case 1:
DrawFormatString(120,340,GetColor(255,25,255),"%s",messagebox2);
break;
}
ScreenFlip();
}
DxLib_End();
return 0;
}- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 点滅処理
阿部さん同じ投稿を2回しないで下さいね。 【補足】微妙には違うみたいですが。
それにDXライブラリで環境に依存しまくっていますので、DDf さんの意図にはそぐわないかと。
※ インデントが乱れているので気をつけたほうが良いと思いますよ。
それにDXライブラリで環境に依存しまくっていますので、DDf さんの意図にはそぐわないかと。
※ インデントが乱れているので気をつけたほうが良いと思いますよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
しひ
Re: 点滅処理
環境が対応しているのであれば、エスケープシーケンスを使う方法もありますね。
http://en.wikipedia.org/wiki/ANSI_escape_code
http://en.wikipedia.org/wiki/ANSI_escape_code
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: 点滅処理
必要なコメントに関して完全にスルーされていますが、ちゃんと利用規約を読んだ上で投稿してください。
投稿の仕方がわからない場合はフォーラムルールのテンプレートに従って投稿をお願いします。
http://dixq.net/board/board.html
まず環境が分からないのと詳しい動作仕様が分かりません。
それがはっきりしないと回答もはっきりしないと思います。
投稿の仕方がわからない場合はフォーラムルールのテンプレートに従って投稿をお願いします。
http://dixq.net/board/board.html
まず環境が分からないのと詳しい動作仕様が分かりません。
それがはっきりしないと回答もはっきりしないと思います。