ページ 1 / 1
キーボードの取得関係
Posted: 2013年6月30日(日) 18:37
by mi_l
過去におそらく似たようなトピックはあると思いますが、質問です。
とりあえずコード)
コード:
void calc_draw()
{
int brt = 0;
SetDrawBlendMode(DX_BLENDMODE_ALPHA , brt);//輝度のセット
DrawGraph(\\\\\\\\);//画像の描画
if(CheckStatePad(configpad.z) > 0)//zキーが押されたら
{
brt += 1;
if(brt >= 255)
brt += 0;
}
}
このようにやってしまうとzキーが押されている間だけ明るくなります・・・よね。
しかしやりたいのは以下みたいなコードです。(おそらく実行しても結果は変わりませんが・・・)
コード:
void calc_draw()
{
int brt = 0;
SetDrawBlendMode(DX_BLENDMODE_ALPHA , brt);//輝度のセット
DrawGraph(\\\\\\\\);//画像の描画
if(CheckStatePad(configpad.z) > 0)//zキーが押されたら
{
while(brt == 255 )//255になるまで
{
//brt++;//コメントにしたのは気にしないでください
brt = brt+1;
}
}
}
えーと・・・
つまり、zキーを押した瞬間、押し続けていようが離そうが255になるまでbrtの加算を続ける処理をしたいのです。
リファレンスを見てもしっくりこなかったので質問しました。
ご教授お願いします。
※文字描画の方も並行してやっています(その過程でこの問題が出てきました・・・)
Re: キーボードの取得関係
Posted: 2013年6月30日(日) 18:43
by h2so5
ループして加算してもどうせ一瞬なので意味が無いです。zキーを押した瞬間にbrtを255にしても同じです。
Re: キーボードの取得関係
Posted: 2013年6月30日(日) 18:54
by mi_l
えーと、下のコードは無視してください!!!
上のコードではzキーが押されてる間だけ徐々に暗くなっていきますよね?
これを、zキーが押された瞬間「押し続けていようが離そうが」255まで1ずつ加算させるにはどのように考えれば良いですか?
という質問です。
Re: キーボードの取得関係
Posted: 2013年6月30日(日) 18:56
by mi_l
暗く、ではなく明るく、でした。
Re: キーボードの取得関係
Posted: 2013年6月30日(日) 18:58
by h2so5
これでどうでしょう?
コード:
int brt = 0;
void calc_draw()
{
SetDrawBlendMode(DX_BLENDMODE_ALPHA , brt);//輝度のセット
DrawGraph(\\\\\\\\);//画像の描画
if((CheckStatePad(configpad.z) > 0 || brt > 0) && brt < 255)
{
brt++;
}
}
Re: キーボードの取得関係
Posted: 2013年6月30日(日) 19:01
by Rittai_3D
コード:
if( CheckStatePad( configpaf.z) > 0 ){
for(int i=0 ; i<255 ; i++ ){
brt =i;
}
}
やりたいことはこれであってますか?スマホからなのでインデントがずれているがもしれません。
Re: キーボードの取得関係
Posted: 2013年6月30日(日) 19:19
by mi_l
h2so5 さんが書きました:これでどうでしょう?
コード:
int brt = 0;
void calc_draw()
{
SetDrawBlendMode(DX_BLENDMODE_ALPHA , brt);//輝度のセット
DrawGraph(\\\\\\\\);//画像の描画
if((CheckStatePad(configpad.z) > 0 || brt > 0) && brt < 255)
{
brt++;
}
}
これだとzキーを押さなくても明るくなりませんか?
(brt>0 && brt<255)の時に・・・
Re: キーボードの取得関係
Posted: 2013年6月30日(日) 19:41
by box
mi_l さんが書きました:
しかしやりたいのは以下みたいなコードです。(おそらく実行しても結果は変わりませんが・・・)
コード:
while(brt == 255 )//255になるまで
これだと、書いてあるコードとコメントが食い違っていますね。
すでにお気づきかもしれませんけれど…。
Re: キーボードの取得関係
Posted: 2013年6月30日(日) 19:44
by mi_l
>>boxさん
下のコードは忘れてください!!!と書きました。(書いてあるはずです)。
Re: キーボードの取得関係
Posted: 2013年6月30日(日) 20:04
by mi_l
皆様返信ありがとうございます。
ちょっとここで付加質問なのですが
コード:
void calc_draw()
{
int brt = 255;
int flag = 0;
SetDrawBlendMode(DX_BLENDMODE_ALPHA , brt);//輝度のセット
if(flag == 0)
DrawGraph(\\\\\\\\);//画像1の描画
if(flag == 1)
DrawGraph(\\\\\\\\);//画像2の描画
if(flag == 2)
DrawGraph(\\\\\\\\);//画像3の描画
if(CheckStatePad(configpad.z) > 0)//zキーが押されたら
{
switch(flag)
{
case 0:
flag = 1;
break;
case 1:
flag = 2;
break;
case 2:
flag = 0;
break;
default:
break;
}
/*//または
if(flag >= 0 && flag < 2)
flag++;
if(flag == 2)
flag = 0;
*/
}
}
輝度でなくフラグの場合です。
これも、zキーを「押してる間」だけではなく「押したら、その後押し続けようが離そうが」フラグには加算された値(2の時は0)が入ってる状態にするにはどうすればよいでしょうか?
Re: キーボードの取得関係
Posted: 2013年6月30日(日) 20:10
by zxc
mi_l さんが書きました:
つまり、zキーを押した瞬間、押し続けていようが離そうが255になるまでbrtの加算を続ける処理をしたいのです。
「zキーを押した瞬間」というのがよく分かりませんが、一回zキーの入力があったら何かしら処理をするというトリガーのようなものですか。 瞬間というからにはその関数が呼ばれるたびにあっというまに255まで増加するかのような印象を受けますが、平行して他の処理もということですし、呼ばれるたびに255まで増加するのか、呼ばれた回数*係数分増加するような、数回呼ばれてはじめて255まで増加するのか、よくわかりません。
それならキー入力の検知をフラグで記録して、フラグが立っていたら加算し続け、規定値に至ればフラグを折る、とかそんな感じになるんでしょうかね。
なんにせよ説明もやりたいことも若干ふわふわしているような印象を受けるので、似たことをしているコードを探す、もしくはもうちょっと考えを煮詰めて、何を達成するためにどのような実装をしたいのか明確にすべきかと思います。
Re: キーボードの取得関係
Posted: 2013年6月30日(日) 20:28
by mi_l
zxc さんが書きました:
「zキーを押した瞬間」というのがよく分かりませんが、一回zキーの入力があったら何かしら処理をするというトリガーのようなものですか。
そういうことです。
私の書いたコードだと「押してる間」だけ処理が行われる事になってしまいます。
それを、zキーが押されたと検知した瞬間、
※一定の間隔で加算します(brtの場合)なのでカウンタの変数も後で付け足します(例としては、カウンタと同じ間隔でbrtも加算みたいな感じです。zキーを離しても加算は続く)(連打防止処理も追加します)
※フラグの場合はフラグの値を変える(例、現在はflag = 0 ー> zキーが押されたと検知したら -> flag = 1(またはflag++;)となる、zキーを離してもflag =1のまま)もちろんこの場合連打すればどんどん
フラグの場合は連打すればした分だけフラグの値は加算されます。
「検知した瞬間」です
zxc さんが書きました:
それならキー入力の検知をフラグで記録して、フラグが立っていたら加算し続け、規定値に至ればフラグを折る、とかそんな感じになるんでしょうかね。
まさにそのことをやりたいのです。
その考え方、サンプルコードなどあれば教えてください。
Re: キーボードの取得関係
Posted: 2013年6月30日(日) 20:54
by zxc
少なくとも自分にとっては質問が抽象的過ぎて、これ以上は書けませんよ。考え方って言ったって、さっき書いたものから、誰かが必要な形にコード化できる程度の情報が読み取れるように意識したつもりなんですが、厳しいでしょうか。当然ですが、あなたが要求しているトリガーとして働くオブジェクトなり関数なりが、どんなものなのか詳細に分かるのはあなただけです。ある程度コード化できるくらいに思考を整理しないと、質問の意図は理解してもらえないでしょうし、回答もちぐはぐなものが増えるでしょう。
コードの提示をしてほしいということでしたが、「トリガー」というキーワードや、実装したいものなどから検索等、ある程度探せるのではないでしょうか。竜神録のコードでも、ショットやボムなどはおそらくトリガーを含んだ実装をしていると思います。日記でもコードを載せた方がいらっしゃったかと。
Re: キーボードの取得関係
Posted: 2013年6月30日(日) 23:26
by mi_l
龍神録のボムを参考にやってみました
22章
20章
以下コード
コード:
typedef struct
{
int flag;//フラグ
int brt;//輝度
int brt_flag;//暗くするフラグ
int cnt;//カウント
}graph_t;
graph_t gra;//生成
memset(gra,0,sizeof(graph_t));//初期化
//計算(brtの場合)
void calc()
{
//gra.flag = 0;//描画
//gra.brt_flag = 0;//暗くするフラグは0(暗くしない)
if(gra.flag == 0)//描画フラグが立っていて(ややこしいですが描画は0->フラグが立っているです。(初期状態))
{
if(gra.brt_flag == 0)//暗くするフラグが立ってなくて
{
if(CheckStatePad(configpad.slow) == 1)//左シフトキーが押されたら
{
gra_flagup();//関数へジャンプ
}
}
gra.cnt++;//カウントを1ずつ加算
//暗くするフラグが立っていて、カウントが100を超えていたら
if(gra.brt_flag == 1 && gra.cnt > 100 )
gra.brt -= gra.cnt;//カウントと共に輝度を下げる
if(gra.brt <= 0)//輝度の値が0以下になったら
{
gra.brt_flag = 0;
gra.flag = 1;//画像を消す
}
}
}
//関数その1
void gra_flagup()
{
gra.brt_flag = 1;//暗くするフラグを立てる
gra.cnt = count;//「count」とはmainにあるカウンタです。(龍神録20章参照)
}
//描画
void Draw()
{
if(gra.flag == 0)//描画フラグが立っているときは
{
SetDrawBlendMode(DX_BLENDMODE_ALPHA , title.brt);//輝度のセット
DrawGraph(\\\\\\\\\);//描画
}
if(gra.flag == 1)
SetDrawBlendMode(DX_BLENDMODE_NOBLEND , 0);//真暗く
}
しかしやりたいことである、
左シフトキーが押されたら(押し続けなくても)brtがカウントとともに自動的に減少し、0以下になったら画像も消えてくれるという感じにはなりませんでした・・・
ボムを見るとボムのキー(ここではXキー)を押すと(押し続けなくても)何カウントか設定した処理をしてくれます。(ので、参考にしました。)
コードは
calc() は22章でいう「 bom_calc()」
flagup()は22章でいう「enter_bom()」
Draw()はそのままgraph()
を意識して書きました。
何処がおかしいのでしょうか。
ご教授お願いします
Re: キーボードの取得関係
Posted: 2013年6月30日(日) 23:31
by mi_l
抜けている部分がありました
コード:
if(gra.brt_flag == 0)//暗くするフラグが立ってなくて
{
gra.brt = 255;//初期値(コレ!!!!)
if(CheckStatePad(configpad.slow) == 1)//左シフトキーが押されていたら
Re: キーボードの取得関係
Posted: 2013年6月30日(日) 23:46
by mi_l
も一つありました
コード:
if(gra.flag == 0)//描画フラグが立っているときは
{
SetDrawBlendMode(DX_BLENDMODE_ALPHA , gra.brt);//輝度のセット(titleとなっていましたが正確には「gra」です)
DrawGraph(\\\\\\\\\);//描画
Re: キーボードの取得関係
Posted: 2013年7月01日(月) 00:20
by へにっくす
mi_l さんが書きました:抜けている部分がありました
コード:
if(gra.brt_flag == 0)//暗くするフラグが立ってなくて
{
gra.brt = 255;//初期値(コレ!!!!)
if(CheckStatePad(configpad.slow) == 1)//左シフトキーが押されていたら
なぜそこで初期値を?
通常描画フラグを立てる(=0)ときにgra.brt=255;にするべきかと。
あと、
コード:
if(gra.brt_flag == 1 && gra.cnt > 100 )
gra.brt -= gra.cnt;//カウントと共に輝度を下げる
輝度の計算が単純すぎ。
輝度の範囲は0~255です。100を超えた値をそのまま引いてますが、これだと3フレームで消える計算です。龍神録22章のコードはそうなってますか?以下、ボム計算の輝度の該当部分。全然違うでしょ?
コード:
bom.cnt++;
if(bom.cnt<40)
bright_set.brt=255-bom.cnt*5;//画面の明るさ設定(暗く)
if(bom.cnt>90)
bright_set.brt=255-40*5+(bom.cnt-90)*5;//画面の明るさ設定(明るく)
if(bom.cnt>130){
bom.flag=0;
bright_set.brt=255;
}
もう一度考えてみてくださいね
個人的には、gra.cntの初期値をcountにしてるのも変です。ここは0でいいんじゃないの?
Re: キーボードの取得関係
Posted: 2013年7月01日(月) 00:25
by softya(ソフト屋)
なんか、ここの私のコードを理解してくれていない気が・・・。応用が効く書き方ですのに。
「龍神録のタイトル画面の表示と遷移 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=13346
Re: キーボードの取得関係
Posted: 2013年7月01日(月) 00:30
by へにっくす
softya さんが書きました:なんか、ここの私のコードを理解してくれていない気が・・・。応用が効く書き方ですのに。
まったくですね
理解できていたなら、こんな質問が出るはず無いですね。
Re: キーボードの取得関係
Posted: 2013年7月01日(月) 02:15
by mi_l
返信ありがとうございます。
少し仕様を変えました
以下のコードでしてほしい処理は、
1、真っ暗から徐々に明るくなっていく(画像は明るくなってから描画されるのではなく、初めに描画され、徐々に明るくなってくることにより見えてくる)
2、左シフトキーを押すまで鑑賞
3、左シフトキーが押されたら徐々に暗くなっていく(ここも描画と同じで完全に暗くなってから画像は消えるようにする(暗くなる前、途中では消えないように))
4、完全に暗くなったら画面を明るくして終わり。
あとはメインでif(calc_graph == 1)次の処理;などする(ここは今回問題ではありませんが・・)
一応ソフト屋さんのコードを参考に書いてみました。
(ここでenumの実践をしてみます)
コード:
enum Graph_state_e
{
GRAPH_IN, //徐々に明るくなり画像が現れる
GRAPH_ViEW, //左シフトキーを押すまで見る(鑑賞)
GRAPH_OUT, //徐々に暗くなっていく
GRAPH_END, //完全に暗くなったら画像を消す
};
typedef struct
{
int g_cnt;//カウント
int brt;//輝度
int flag;//描画フラグ
enum Graph_state_e g_state;//状態
}graph_t;
graph_t gra;//生成
// 初期化
void graph_ini()
{
gra.g_cnt = 0;
gra.brt = 0;
gra.g_state = GRAPH_IN;
}
//memset()はうまくいく??(ソフト屋さんの説明の「ガードが働かない」= 無理 なのでしょうか?)
//計算
int calc_graph()
{
switch(gra.g_state)
{
case GRAPH_IN://徐々に明るくなる状態
//少しずつ明るく
gra.flag = 1;//描画する
gra.g_cnt++;//カウントの加算
gra.brt = gra.g_cnt * 2;//少しずつ輝度を上げる
//輝度の値が255以上になったら・・・
if(gra.brt >= 255)
{
gra.brt = 255;//輝度の値をセットして・・・
gra.g_state = GRAPH_ViEW;//状態を「鑑賞」へ
}
break;
case GRAPH_ViEW://鑑賞の状態
if(CheckStatePad(configpad.slow) == 1)//左シフトキーが押されたら
{
gra.g_state = GRAPH_OUT;//徐々に暗くする状態に
gra.g_cnt = 0;//カウントを0に戻す
}
break;
case GRAPH_OUT://徐々に消えていく状態
gra.g_cnt++;//カウントを加算
gra.brt = 255 - (gra.g_cnt*2);//輝度を下げていく()
//輝度が0以下になったら
if(gra.brt <= 0)
{
gra.brt = 0;//輝度を0にセット
gra.flag = 0;//画像を消す(真っ暗になってから)
gra.g_state = GRAPH_END;//終了の状態に
}
break;
case GRAPH_END:
return 1;//終了
break;
}
//継続
return 0;
}
//描画
void Draw()
{
if(gra.flag == 1)//描画フラグが立っていたら
{
SetDrawBlendMode( DX_BLENDMODE_ALPHA , gra.brt ); //輝度のセット
DrawGraph(\\\\\\\\\\\\\\\\\);//描画
}
else//描画フラグが立っていなかったら
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 255 ); //輝度を255にする(戻す)
}
enumを使ってみましたが・・・・大丈夫でしょうか?一応理解したつもりで書いたのですが・・
勘違いがあればご指摘ください。
お願いします。
Re: キーボードの取得関係
Posted: 2013年7月01日(月) 14:45
by softya(ソフト屋)
惜しいですが、
SetDrawBlendMode( DX_BLENDMODE_ALPHA , gra.brt ); //輝度のセット
したままだと後の描画に支障があります。他の描画にも影響を与えるからです。
今回大丈夫だと思っているでしょうが、日頃から大丈夫な様に書く癖がほしいです。
> //memset()はうまくいく??(ソフト屋さんの説明の「ガードが働かない」= 無理 なのでしょうか?)
今回は上手くいくでしょうが、機能拡張過程でバグらせる可能性は否定しきれません。
あとモジュール化を意識して関数などのルール決めして名前をちゃんと付けるのと、名詞+動詞なのか動詞+名詞なのか関数名の付け方を統一してください。
Re: キーボードの取得関係
Posted: 2013年7月01日(月) 20:10
by mi_l
ソフト屋さん返信ありがとうございます。
SetDrawBlendModeについての助言ありがとうございます。
また、
確かに、関数名や変数名のつけ方をルールづけた方がいいですね。
ありがとうございます。
Re: キーボードの取得関係
Posted: 2013年7月02日(火) 16:05
by mi_l
できたと思ったのですが・・・・
以下コード
コード:
enum Graph_state_e
{
GRAPH_IN, //徐々に明るくなり画像が現れる
GRAPH_ViEW, //左シフトキーを押すまで見る(鑑賞)
GRAPH_OUT, //徐々に暗くなっていく
GRAPH_END, //完全に暗くなったら画像を消す
};
typedef struct
{
int g_cnt;//カウント
int brt;//輝度
int flag;//描画フラグ
enum Graph_state_e g_state;//状態
}graph_t;
graph_t gra;//生成
// 初期化
void graph_ini()
{
gra.g_cnt = 0;
gra.brt = 0;
gra.g_state = GRAPH_IN;
}
//計算
int graph_calc()
{
switch(gra.g_state)
{
case GRAPH_IN://徐々に明るくなる状態
//少しずつ明るく
gra.flag = 1;//描画する
gra.g_cnt++;//カウントの加算
gra.brt = gra.g_cnt * 2;//少しずつ輝度を上げる
//輝度の値が255以上になったら・・・
if(gra.brt >= 255)
{
gra.brt = 255;//輝度の値をセットして・・・
gra.g_state = GRAPH_ViEW;//状態を「鑑賞」へ
}
break;
case GRAPH_ViEW://鑑賞の状態
if(CheckStatePad(configpad.slow) == 1)//左シフトキーが押されたら
{
gra.g_state = GRAPH_OUT;//徐々に暗くする状態に
gra.g_cnt = 0;//カウントを0に戻す
}
break;
case GRAPH_OUT://徐々に消えていく状態
gra.g_cnt++;//カウントを加算
gra.brt = 255 - (gra.g_cnt*2);//輝度を下げていく()
//輝度が0以下になったら
if(gra.brt <= 0)
{
gra.brt = 0;//輝度を0にセット
gra.flag = 0;//画像を消す(真っ暗になってから)
gra.g_state = GRAPH_END;//終了の状態に
}
break;
case GRAPH_END:
return 1;//終了
break;
}
//継続
return 0;
}
//描画
void Draw()
{
SetDrawBlendMode( DX_BLENDMODE_ALPHA , gra.brt ); //輝度のセット
if(gra.flag == 1)//描画フラグが立っていたら
{
DrawGraph(\\\\\\\\\\\\\\\\\);//描画
}
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 255 ); //輝度を255にする(戻す)
}
としましたが、どうしても左シフトキーを押し続けないと暗くなりません・・・・
一回押せば押し続けようが、離そうが、一定の間隔で暗くなる処理をしたいのですが・・・・
龍神録のボムの個所は参考にならないでしょうか?(ボムキーを押せば(押し続けようが離そうが)指定した処理をしてくれるので)
ちょっと(ボムのところの)仕組み(押し続けようが離そうがボムを最後までやってくれる箇所)がわかりません。
ご指摘、ご教授お願いします。
Re: キーボードの取得関係
Posted: 2013年7月02日(火) 18:53
by softya(ソフト屋)
これは、gra.g_state = GRAPH_OUTであればシフトキーは反応しないはずです。
デバッガで、どのように動いているか確認すれば一発で原因が判明すると思いますが確認されましたか?
※ そもそも、コードが理解できていたら、そのような疑問も生じないはずなのでコードを真に理解できていないと思います。
Re: キーボードの取得関係
Posted: 2013年7月03日(水) 11:14
by ilish
横から失礼しますが、皆さんはただ難癖つけてるだけではないですか?
なんで質問の意味を理解していないと言ってるのにサンプルコードを教えられるんですか?
*ほかのトピックもいろいろ見ましたが、それらも難癖つけて、投稿者が考えに考えぬいてだした結論が間違っていると、やれデバックしろだの、理解ができていないですね、だの質問者の意欲を欠く回答ばかり・・・
ここの掲示板って、とある団体がやっててなんか回答か質問かしまくれば上がる「ハッカー」なり称号をよりよくするために遊んでいるのですか?
コードが理解できてないですって!?
mi_lさんは理解できたと思って返信をしてコードを載せたはずです!
自分が正解だと思っていたコードが間違っていて、助けを求めて質問してるのに「デバックしろ」「理解してない」・・・
デバックしてもわからないから投稿してるのだと僕は思います
ふざけるのも大概にして欲しいですねこの掲示板は・・・
結果的に理解できてないなら、考え方を教えるとか、サンプルコードを書いてあげるとかしてあげたらどうですか?
何でもかんでも、デバックしろだの理解してないだのでは、投稿者の意欲がなくなるだけですよ?
ほかのトピックも見ましたが、それで次の、別のトピックを挙げると、前回のを・・・とかwww
すべてがみんな貴方たちみたいなわけではありません。質問内容からでもトピックのどこかから初心者だなと感じる内容があると思います。
トピックでこのようなふざけた回答があれば僕は横から口出しする感覚でこのような文章を書いていきますよ!
Re: キーボードの取得関係
Posted: 2013年7月03日(水) 16:14
by ISLe
ilishさんは過去にmi_lさんが立てたトピックを全て読みました?
わたしはすべて読んでいます。
回答もしました。
そしてあきらめました。
キーを押したら以後継続して状態が変化する、というのは過去にmi_lさんが理解したとおっしゃったコードの簡単な応用です。
このトピックでmi_lさんが提示されているコードは、過去に理解したはずのことがまったく反映されていません。
デバックではなくてデバッグですけど、ブレークポイントを仕掛けて輝度が変化しているタイミングを確認する程度のことがそんなに難しいと感じるのであれば、わたしもコードを書く前にデバッグの仕方を覚えろとアドバイスしますね。
mi_lさんはキー入力がないと変化しないと言いながらキー判定部分のコードをわざわざ除外して提示するといったことを毎回するのですよね。
そんな質問の仕方をされて回答者がmi_lさんの知りたいことを返せるわけがないのですよ。
回答をもらえるだけありがたいんじゃないですかね。
Re: キーボードの取得関係
Posted: 2013年7月03日(水) 16:31
by ISLe
mi_l さんが書きました:としましたが、どうしても左シフトキーを押し続けないと暗くなりません・・・・
一回押せば押し続けようが、離そうが、一定の間隔で暗くなる処理をしたいのですが・・・・
以下のメインループで動かしてみましたが、何の問題もありませんでしたよ。
キーを離してもちゃんと暗くなりました。
コード:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE);
if (DxLib_Init() != 0) return 0;
SetDrawScreen(DX_SCREEN_BACK);
graph_ini();
while (ProcessMessage() == 0 && ScreenFlip() == 0 && ClearDrawScreen() == 0) {
graph_calc();
Draw();
}
DxLib_End();
return 0;
}
#ilishさんが望むのはこんな回答ですかね。
(追記)
コードを見たらgraph_calcの呼び出し元に原因があるというのは明らかなのですよ。
でも質問に書かれていないことを追求すると難癖付けるなと言われかねないですからね。
わたしは不備のある質問にはなるべく回答しないことにしているのでilishさんの意見に一致する部分はあるかもしれません。
Re: キーボードの取得関係
Posted: 2013年7月03日(水) 20:23
by Dixq (管理人)
あたかも他人かのように書いていますが、ilishさんとmi_lさんは同一人物ですよね。
ここの掲示板は、複数の名前を利用している場合、その情報を明かすことが出来る決まりになっています。
(フォーラムルール「5. 個人情報の取り扱い」参照)
mi_lさんは皆さんが回答してくれている内容を真摯に受け止めて理解しようとしていますか?
Re: キーボードの取得関係
Posted: 2013年7月03日(水) 22:18
by softya(ソフト屋)
過去にmi_lさんに何度も危うい危ういと書いてきたので、いいかんげんちゃんと組んでもらわないと何時までも同じ事の繰り返しになるなと思い今回のデバッグしてくれ嵐になったのですが、そうとう辛かったのでしょうか。
申し訳なかったですが、これを乗り越えないと進歩もありませんのでよく考えて頂ければと思います。
※ 私の過去の発言内容を出来れば見なおしてみてください。
Re: キーボードの取得関係
Posted: 2013年7月03日(水) 23:37
by mi_l
うわぁ・・・なんか私のトピック荒れてますね・・・
返信おくれてすみません。
えーと・・・
とりあえず、トピックの皆様の返信をすべて見まして、返信いたします。
softya(ソフト屋) さんが書きました:これは、gra.g_state = GRAPH_OUTであればシフトキーは反応しないはずです。
デバッガで、どのように動いているか確認すれば一発で原因が判明すると思いますが確認されましたか?
※ そもそも、コードが理解できていたら、そのような疑問も生じないはずなのでコードを真に理解できていないと思います。
自分でもそう持っております。
一応デバッグ(ブレークポイントを置いて)ステップインしながらやっていますが・・どうもわかりません。
ISLe さんが書きました:
以下のメインループで動かしてみましたが、何の問題もありませんでしたよ。
キーを離してもちゃんと暗くなりました。
コード:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE);
if (DxLib_Init() != 0) return 0;
SetDrawScreen(DX_SCREEN_BACK);
graph_ini();
while (ProcessMessage() == 0 && ScreenFlip() == 0 && ClearDrawScreen() == 0) {
graph_calc();
Draw();
}
DxLib_End();
return 0;
}
(追記)
コードを見たらgraph_calcの呼び出し元に原因があるというのは明らかなのですよ。
ソフト屋さんへの返信の続きと、一緒になりますが、ソフト屋さんの別のトピックで書いてくれたコードと、私の書いたコードですと、吟味した結果、おそらくgraph_calcは問題ないと思うのです。
そこでISLeさんの返信を読んだのですが、mainでのコードに一部異なっている部分があり、おそらくISLeさんの指摘通り、呼び出し元が間違っている可能性が高いことがわかりました。
Dixq (管理人) さんが書きました:あたかも他人かのように書いていますが、ilishさんとmi_lさんは同一人物ですよね。
ここの掲示板は、複数の名前を利用している場合、その情報を明かすことが出来る決まりになっています。
(フォーラムルール「5. 個人情報の取り扱い」参照)
mi_lさんは皆さんが回答してくれている内容を真摯に受け止めて理解しようとしていますか?
ここは、はっきりさせないといけないところなので言いますが、ilishさんって誰ですか?って感じです。なぜ私と同一人物だと思われたのでしょうか?ちょっとそこがわかりません。
私は、1台のノートPCで名義は「mi_l」で通しております。それ以外のユーザー名は使っておりません!
ilish さんが書きました:横から失礼しますが、皆さんはただ難癖つけてるだけではないですか?
なんで質問の意味を理解していないと言ってるのにサンプルコードを教えられるんですか?
*ほかのトピックもいろいろ見ましたが、それらも難癖つけて、投稿者が考えに考えぬいてだした結論が間違っていると、やれデバックしろだの、理解ができていないですね、だの質問者の意欲を欠く回答ばかり・・・
ここの掲示板って、とある団体がやっててなんか回答か質問かしまくれば上がる「ハッカー」なり称号をよりよくするために遊んでいるのですか?
コードが理解できてないですって!?
mi_lさんは理解できたと思って返信をしてコードを載せたはずです!
自分が正解だと思っていたコードが間違っていて、助けを求めて質問してるのに「デバックしろ」「理解してない」・・・
デバックしてもわからないから投稿してるのだと僕は思います
ふざけるのも大概にして欲しいですねこの掲示板は・・・
結果的に理解できてないなら、考え方を教えるとか、サンプルコードを書いてあげるとかしてあげたらどうですか?
何でもかんでも、デバックしろだの理解してないだのでは、投稿者の意欲がなくなるだけですよ?
ほかのトピックも見ましたが、それで次の、別のトピックを挙げると、前回のを・・・とかwww
すべてがみんな貴方たちみたいなわけではありません。質問内容からでもトピックのどこかから初心者だなと感じる内容があると思います。
トピックでこのようなふざけた回答があれば僕は横から口出しする感覚でこのような文章を書いていきますよ!
ilishさん、確かに私の実力不足、説明不足で、ご教授してくださる皆様から、「まったく反映されていません」とか「理解しているのでしょうか」とか、指摘されていますが、そこまで言う必要もありませんし、回答された方々はそこまで言われる筋合いもないかと思います。
たしかにilishさんの意見にまったく賛同してないかと言われれば嘘になりますが(一部は共感しているところはあります)、これは、私の立てたトピックですので、ilishさんのように思っていて、耐え切れなくなったら私自身で、「mi_l」名義で書きます。
softya(ソフト屋) さんが書きました:過去にmi_lさんに何度も危うい危ういと書いてきたので、いいかんげんちゃんと組んでもらわないと何時までも同じ事の繰り返しになるなと思い今回のデバッグしてくれ嵐になったのですが、そうとう辛かったのでしょうか。
申し訳なかったですが、これを乗り越えないと進歩もありませんのでよく考えて頂ければと思います。
※ 私の過去の発言内容を出来れば見なおしてみてください。
辛くなかったといえば嘘になりますが、ソフト屋さんのいう通り、乗り越えなければならない壁だと思っておりますのでソフト屋さんからの返信に対しては、文句はありません。
こんなことをダラダラと綴られているトピックで、私はご教授いていただきたくないので、新たなトピックを立てます。
*大問題が発生したので、この次に立てるトピックは、フェードアウトが・・という問題の1個前になります。
私のトピック内でいざこざがあったのはトピックを立てた私の責任ですので、この問題は、勝手ながら、ここで終止符を打とうと思います。
次回以降のトピックでも、ご指摘、ご教授お願いします。
Re: キーボードの取得関係
Posted: 2013年7月03日(水) 23:48
by softya(ソフト屋)
すいません。
Dixq (管理人)さんの書き込みには理由があります。
少なくともmi_lさんの最初の書き込みから今の書き込み、そしてilishさんまでが同一の所から書き込まれています。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:08
by Dixq (管理人)
ilishさんとmi_lさんが同一人物であるという証拠はあります。なんなら詳細な個人情報をメッセージでお送りしましょうか?
調べようと思えば、お使いのOSからモニタの解像度、使っているPCがどんなものかまで分かります。
mi_lさんは過去にこんな質問をしていますね。
IPアドレスについて
http://dixq.net/forum/viewtopic.php?f=3&t=13176
このような事態になることを危惧していたのではないでしょうか?
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:08
by mi_l
softya(ソフト屋) さんが書きました:すいません。
Dixq (管理人)さんの書き込みには理由があります。
少なくともmi_lさんの最初の書き込みから今の書き込み、そしてilishさんまでが同一の所から書き込まれています。
えーと、私は一切「mi_l」以外の名義は使っていないので、何とも言えません。
証拠写真(スクリーンショット)もあるのですが、、デスクトップに保存した画像はどのように載せればいいのでしょうか?
画像添付の説明はhttp・・・・・・・・・・・となっていてわかりません。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:09
by みけCAT
mi_l さんが書きました:証拠写真(スクリーンショット)もあるのですが、、デスクトップに保存した画像はどのように載せればいいのでしょうか?
ここにユーザー登録していただくか、適当なアップローダに上げてください。
アップローダの例
http://www.axfc.net/
http://twitpic.com/
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:15
by mi_l
懐かしいですね。
この掲示板で、個人的な私情を言いたくありませんが、トピックにの内容にあります通り、友人からの相談です。
友人からの相談はこうでした。
「ヤフーメールアドレスを2つもって、出○い系に別名義で登録してたら、「同じ人ですよね?」とメールがきたからなんで?」
IPアドレスなのかな?と思い私も皆さんに質問したのです。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:19
by mi_l
mi_l さんが書きました:Dixq (管理人) さんが書きました:ilishさんとmi_lさんが同一人物であるという証拠はあります。なんなら詳細な個人情報をメッセージでお送りしましょうか?
是非、お願いします。
モヤモヤしたままでは次のトピックすら立てられないので・・・
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:20
by Dixq (管理人)
途中から書き足しましたが
調べようと思えば、お使いのOSからモニタの解像度、使っているPCがどんなものかまで分かるんですよ。
それがIPアドレスが同じ上、PC情報まで全部同じでもなお別人だと言っているのであれば、
あなたのPCがにilishさんに使われているとしか思えません。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:23
by Dixq (管理人)
登録して貰えないとメッセージ送れないですね。
すみませんが、明日も仕事なのでもう寝ます。
softyaさん、申し訳ありませんが、明日の夜までに必要なことがあれば対応お願いしていいでしょうか・・。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:25
by softya(ソフト屋)
少なくとも毎回IPアドレスが揺らがないので、同じモデムから接続されている事は確かです。
Dixq (管理人)さんが管理しているログだと、OSやらブラウザやらモニタ解像度やら色数まで記録されています。
完全に同じ場合、ここまで似通ったログを残すには、同じPCを別の人が使う必要があります。
無線LAN乗っ取りでも無理です。
>softyaさん、申し訳ありませんが、明日の夜までに必要なことがあれば対応お願いしていいでしょうか・・。
了解しました。ログの情報を見れないので私宛に送ってもらってよいでしょうか?
【追記】
mi_lさんへ。
私宛にメールをお送りください。
![画像](http://softyasu.net/pic/softya.su.png)
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:31
by mi_l
Dixq (管理人) さんが書きました:途中から書き足しましたが
調べようと思えば、お使いのOSからモニタの解像度、使っているPCがどんなものかまで分かるんですよ。
それがIPアドレスが同じ上、PC情報まで全部同じでもなお別人だと言っているのであれば、
あなたのPCがにilishさんに使われているとしか思えません。
一応、私の家族は理系家族で、親もハード関係の会社に勤めており、家では、このノートPCとリビングにあるデスクトップPCをみんなで使っています。(画像ファイルなどは自分専用の外付けHDDに保存するようにしております)
しかし、プログラムを触っているのは私だけなので、家族は投稿するはずないので、ilishという名義を使ってる方にハッキングでもされているのでしょうか?だとすれば、PCを買い替えたいので、ハッキングされているかわかる方法を教えてください。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:35
by softya(ソフト屋)
まず、ハッキングなら親と相談してください。理系の方なら分かるはずです。
前にあった事件のように当人だけの問題で済みません。ご家族を巻き込む事件です。
なんでしたら、私から説明させて頂きます。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:40
by mi_l
softya(ソフト屋) さんが書きました:まず、ハッキングなら親と相談してくいださい。理系の方なら分かるはずです。
前にあった事件のように当人だけの問題で済みません。ご家族を巻き込む事件です。
なんでしたら、私から説明させて頂きます。
親はもう寝てしまっているので、相談は明日の帰宅後にしたいです。
ですが、その前にどのような事なのか知りたいので説明お願いします。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:44
by ISLe
電子メールはヘッダ情報に送信元のIPアドレスが記録されるので、Yahoo!の別アカウントだけでなく、別のメールサービスを使っていても識別可能です。
IPアドレスから判別できる情報は件のトピックに書いたとおりですが、あくまでもIPアドレス単体から分かることに過ぎません。
割り当てられるIPアドレス自体は固有のものですから、名前やアカウントを変えて書き込んでもサイト管理者は容易にアクセス元を識別できます。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:46
by softya(ソフト屋)
乗っ取られているなら犯罪予告も自由自在です。
つまり、既にどこかに殺人予告をされているかも知れません。
その場合は、某事件のようにmi_lさんか家族の誰かが警察のお世話になることになります。
それを防ぐためには、すぐに警察に相談に行くなどの手を打たないとダメと言うことです。
後手に回っていますし、ウィルスチェッカーで見つけることは困難ですので手詰まりなのです。
今見つけても予告後なら手遅れだと言うことです。
【補足】明日の朝、警察が玄関の戸を叩くかもしれません。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:52
by mi_l
softya(ソフト屋) さんが書きました:乗っ取られているなら犯罪予告も自由自在です。
つまり、既にどこかに殺人予告をされているかも知れません。
その場合は、某事件のようにmi_lさんか家族の誰かが警察のお世話になることになります。
それを防ぐためには、すぐに警察に相談に行くなどの手を打たないとダメと言うことです。
後手に回っていますし、ウィルスチェッカーで見つけることは困難ですので手詰まりなのです。
今見つけても予告後なら手遅れだと言うことです。
【補足】明日の朝、警察が玄関の戸を叩くかもしれません。
のっとられたら、もう調べようがないということですか・・・
それなら、PCを処分して、新しいPCに買い替える・・・というやり方はどうなんでしょうか?
それとも、モデムを変える?ようにしなければならないのでしょうか?
知識がないので文章が変かもしれませんが・・・
ちょっと死活問題なので!
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:55
by softya(ソフト屋)
既に遅いと書いたはずですよ。
起こってしまったことは取り消せませんので、最悪を考えて行動すべきです。
なので、警察や弁護士と相談するが最善の策だと思います。
その前に親と相談して結論を出してください。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 00:56
by ISLe
捜査が入ればPCや関連機器のすべてが証拠として押収されます。
処分なんてしたら証拠隠滅と見られてmi_lさんの立場が危うくなると思いますが。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 01:01
by mi_l
softya(ソフト屋) さんが書きました:既に遅いと書いたはずですよ。
起こってしまったことは取り消せませんので、最悪を考えて行動すべきです。
なので、警察や弁護士と相談するが最善の策だと思います。
その前に親と相談して結論を出してください。
わかりました・・・・・・
明日親と相談してみます・・・
それと、皆様に迷惑をかけたくないのでこの掲示板からは少し離れようと思います。
ありがとうございました。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 01:02
by ISLe
乗っ取られたPCでインターネットに接続しているいまも遠隔操作ウィルスは活動しているかもしれません。
即刻インターネットから物理的に切り離して機器の使用を停止してください。
周りにも迷惑ですから。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 01:10
by softya(ソフト屋)
そうですね。完全に切り離して全て片付くまで接続してはいけません。
ややこしくなるので、PCに触らないほうが良いです。
全ては相談や手続きを済ませて、事件性がないと分かったらPCは何処かのチェックしてくれる所に依頼しましょう。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 01:11
by ISLe
もう見てないかもしれませんが…
岡崎図書館事件のように、これからウィルススキャンしてウィルスを削除してしまったりするとそれも証拠隠滅と見られる可能性があります。
とにかくすべての機器の電源を切って警察に相談して警察の指示があるまで一切触らないことをお勧めします。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 02:14
by トントン
この後どういう方向性になるかわかりませんが。
今、回答者の方達は最悪を想定した助言をしてくれています。
「誠実」に対応するのが良いと思います。
オフトピック
どうでも良い話ですが、プログラマの多くは
無知、学びたいと思う人、誠実な人に対しては
一癖二癖ありますがとても寛大でとても優しい対応をしてくれます。
逆にバカにはとても厳しいです。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 03:05
by ただのバカのようだ
わりといいと思いますよ。聞きたいことを捨て名で聞くのは、むしろ正々堂々と炎上かまわずに言いたいこと言える人のほうが少ないと思います。
掲示板で恥じかいて、精進できるんならかまわずにやるべきです。
さて、突き抜けたバカがこのタイミングで話題をそらします。
自分はusaoさんがsoftyaさんと同一人物であると前からずっと思ってます!!批判ターゲットがほしければ相手してあげます。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 08:47
by Dixq (管理人)
携帯からです。
ハッキングだの乗っ取りだのという話になっていますが私には信じられません。
何故わざわざ犯罪行為である遠隔操作をしてまで、そしてこんな掲示板にまできて質問者を擁護するコメントを投稿するのですか?
ここまで言ってしらを切るのであればこれ以上追求しません。
ただフォーラムルールを守って掲示板を利用して下さいとお願いするだけです。
あまりに悪質化しない限り私は静観したいと思います。
また、一応調査させてもらいましたが、 usaoさんはsoftyaさんと同一人物ではありません。
それから複数の名前を使って質問することは規約違反ですが回答することは規約違反ではありません。(してほしくはないですが…)
現に複数のアカウントを持っている方はいらっしゃいます。
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 09:50
by usao
なんでこのタイミングで私の名前が飛び出してるのでしょう…?
#まぁ自分より明らかに技量(?)が上の方と混同されてるとしたらある意味光栄ではありますが
言いたいことを言うのにわざわざ別の名前使うことに意義(必要性とでもいうか)を感じませんけどね.
例えば私だったら「usao」という名前で言いたいことを言えば済むわけで.
本名で書いているわけでもないのだし.
Re: キーボードの取得関係
Posted: 2013年7月04日(木) 17:08
by ISLe
書かれていることが本当だろうが嘘だろうがかまわないのですよ。
どちらにせよご自身の行いでご自身を追い詰める結果にしかならないのですから。
こちらはブレることなく対応するだけです。
釣られて出てくる方もいますが、収拾つかなくて荒れる(いわゆる炎上)わけではないですし。