以前もここで質問させていただいた者なのですが
RPGの戦闘画面について質問があります。
ウィンドウに「〇〇にダメージを与えた」と表示することは
出来たのですがwhileループでScreenFlipとClearDrawScreenを←このへん曖昧です
実行する都合上、文字が一瞬で消えてしまいます。
この場合文字を数秒だけ表示しておくにはどうすればいいのでしょうか?
WaitTimerを文字を表示した直後に書いたのですが
なぜか画面が数秒止まったあとに文字が一瞬表示されるという結果になってしまいます。
使用しているのはVisual Studio2013とDXライブラリでC言語で書いています。
画面を一定時間止める方法
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: 画面を一定時間止める方法
処理の中にWait処理を入れるのはもっともやってはいけない処理の一つです。
参考:
http://dixq.net/g/h_11.html
それは一般的にはフレームカウンタを使って実現します。 こうすれば60フレーム、つまり1秒間文字を表示することが出来ます。
参考:
http://dixq.net/g/h_11.html
それは一般的にはフレームカウンタを使って実現します。 こうすれば60フレーム、つまり1秒間文字を表示することが出来ます。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 画面を一定時間止める方法
そうですね。一応私の書いたRPG講座があるのですが初心者の方には難しすぎるみたいです。
メッセージの制御や、戦闘画面の作り方などもあります。
「マイ 日記 • C言語交流フォーラム ~ mixC++ ~ RPG講座」
http://dixq.net/forum/blog.php?u=114&sd=a&c=2
難しすぎる場合は、まず「ゲームプログラミングの館」を人に説明できる程度理解できるまで勉強してみてください。
「ゲームプログラミングの館」で分からないことがあれば質問して下さい。
「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/
あとDixqさんの作ったRPGのサンプルも有りますよ。
「サンプルプログラミングの館」
http://dixq.net/sm/d10.html
ご本人も書いている通り、コード記述部分を参考にせず考え方だけ参考にして下さい。
メッセージの制御や、戦闘画面の作り方などもあります。
「マイ 日記 • C言語交流フォーラム ~ mixC++ ~ RPG講座」
http://dixq.net/forum/blog.php?u=114&sd=a&c=2
難しすぎる場合は、まず「ゲームプログラミングの館」を人に説明できる程度理解できるまで勉強してみてください。
「ゲームプログラミングの館」で分からないことがあれば質問して下さい。
「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/
あとDixqさんの作ったRPGのサンプルも有りますよ。
「サンプルプログラミングの館」
http://dixq.net/sm/d10.html
ご本人も書いている通り、コード記述部分を参考にせず考え方だけ参考にして下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
Milla
Re: 画面を一定時間止める方法
whileループでゲームループを止めちゃうのはまずい気がする。
それは画面を止めるというより、ゲームの処理を止めちゃうので。
理想はゲームループは回しつつ、画面ウェイトが入ってる状態。
それは画面を止めるというより、ゲームの処理を止めちゃうので。
理想はゲームループは回しつつ、画面ウェイトが入ってる状態。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 画面を一定時間止める方法
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: 画面を一定時間止める方法
ちゃんと私の書いたリンク先を見て頂けましたか?
-
BODY
Re: 画面を一定時間止める方法
お返事ありがとうございました。
皆さんの仰った通りサイトとサンプルプログラムを参考にし
なんとかwhileの中でカウントする方法でなんとか目的を達成することができました。
でもこのやり方って本当はあんまりよくないんでしょうか?
あとcounterに数値を加算するところで
counter++;と表記すると値が加算されずcounter+=1;だと上手くいくんですがこれは
どうしてなのでしょうか・・・
皆さんの仰った通りサイトとサンプルプログラムを参考にし
なんとかwhileの中でカウントする方法でなんとか目的を達成することができました。
でもこのやり方って本当はあんまりよくないんでしょうか?
あとcounterに数値を加算するところで
counter++;と表記すると値が加算されずcounter+=1;だと上手くいくんですがこれは
どうしてなのでしょうか・・・
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 画面を一定時間止める方法
> なんとかwhileの中でカウントする方法でなんとか目的を達成することができました。
> でもこのやり方って本当はあんまりよくないんでしょうか?
while(!ScreenFlip()&&!ClearDrawScreen()&&!ProcessMessage()){
が沢山あるなら良くない方法です。
> あとcounterに数値を加算するところで
> counter++;と表記すると値が加算されずcounter+=1;だと上手くいくんですがこれは
> どうしてなのでしょうか・・・
その問題を再現できる短いコードを提示してください。
そのほうが話しが早いです。
※ 間違っている点に気づいていない人が説明しようとしても、やはり間違っている点を省略してしまうので問題点が明らかになりません。再現できるソースコードは真実を反映します。
> でもこのやり方って本当はあんまりよくないんでしょうか?
while(!ScreenFlip()&&!ClearDrawScreen()&&!ProcessMessage()){
が沢山あるなら良くない方法です。
> あとcounterに数値を加算するところで
> counter++;と表記すると値が加算されずcounter+=1;だと上手くいくんですがこれは
> どうしてなのでしょうか・・・
その問題を再現できる短いコードを提示してください。
そのほうが話しが早いです。
※ 間違っている点に気づいていない人が説明しようとしても、やはり間違っている点を省略してしまうので問題点が明らかになりません。再現できるソースコードは真実を反映します。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。