2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

ねねっちと一緒にプログラムを勉強するスレ

1 :デフォルトの名無しさん:2017/01/26(木) 16:17:13.10 ID:XK9FJlSe.net
ぬるぽって何?

2 :デフォルトの名無しさん:2017/01/26(木) 16:29:41.75 ID:AnAc7r+V.net
コテハンつけろ、NG するから。

3 :デフォルトの名無しさん:2017/01/26(木) 18:47:21.04 ID:voohouec.net
ねねっちって誰?

4 :デフォルトの名無しさん:2017/01/26(木) 19:15:44.58 ID:i5VasQmQ.net
ねづっち

5 :デフォルトの名無しさん:2017/01/26(木) 19:38:57.69 ID:bzEbZ39i.net
javaは嫌どす。けど、一緒にやりたいと思いました。

なんで、ねねっちやねん。せめて、アハゴンにせいや!

6 :デフォルトの名無しさん:2017/01/26(木) 21:10:17.24 ID:8Y97xkh6.net
じゃあC++な

7 :デフォルトの名無しさん:2017/01/26(木) 23:07:35.41 ID:wasE+GOD.net
if (isMyCaramelPudding) {
eat();
} else {
eat();
}

8 :片山博文MZ ◆T6xkBnTXz7B0 :2017/01/27(金) 00:17:24.61 ID:QiqUcfrL.net
音声の波形を表示したり、加工したり、フーリエ変換してみたりしたいな。

9 :デフォルトの名無しさん:2017/01/27(金) 17:37:41.27 ID:i9mC3iQV.net

sssp://o.8ch.net/nwz9.png

10 :デフォルトの名無しさん:2017/01/28(土) 02:58:54.39 ID:tYYoqnnC.net
if(marriage == true){
var love = man * woman;
love++;
}else{
var love = man % girl;
love--;
}

11 :デフォルトの名無しさん:2017/02/01(水) 20:54:57.26 ID:8ReyjKDy.net
誘導されてきましたーヽ( 'ω')ノ
こっちでプログラミング勉強さしてもらいます

12 :ぬーぶ ◆upkqfrxkrw :2017/02/01(水) 20:58:37.17 ID:8ReyjKDy.net
>>11です。宜しくお願いします。
…人が居ない…(´・ω・`)

13 :デフォルトの名無しさん:2017/02/01(水) 21:00:00.52 ID:KG87RO2X.net
スレッド移動元:
初心者プログラマーの寺子屋 #2 [無断転載禁止]・2ch.net
http://tamae.2ch.net/test/read.cgi/prog/1485855405/

14 :デフォルトの名無しさん:2017/02/01(水) 21:01:04.19 ID:toiSGdoE.net
>>12
オッス!

15 :デフォルトの名無しさん:2017/02/01(水) 21:03:36.18 ID:fGZSlE9v.net
こっちでははじめてなんだから言語や環境、今どのあたり勉強してるかぐらい書こうか?

16 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/01(水) 21:12:19.15 ID:KG87RO2X.net
今日はゲームモードの話をするよ。まず、グローバル変数int mode = 0;をソースの上の方に定義しておく。次にメインループはswitchと変数modeで分岐する。
switch (mode) {
case 0: //スタート画面
mode0(); break;
case 1: //ゲームモード
mode1(); break;
case 2: //ゲーム終了
mode2(); break;
}
続く。

17 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/01(水) 21:13:37.19 ID:KG87RO2X.net
続き。さらにmode0,mode1,mode2という3つの関数をvoid mode0() { ... }のようにソースの上の方に定義する。それぞれで画面描画を行う。modeの値を変更すればゲームモードが切り替わる。
注意。関数の中の変数は他の関数では使えない。

18 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/01(水) 21:22:52.01 ID:KG87RO2X.net
mode0関数では、文字列描画でちゃちゃっとスタート画面を作ってくれ。
さらにスタート画面でキー入力でゲーム中(mode1)に切り替わるようにしてくれ。
今日は以上だ。

19 :ぬーぶ ◆upkqfrxkrw :2017/02/01(水) 21:45:48.94 ID:8ReyjKDy.net
>>14
オッス!おらぬーぶ!
宜しくお願いしますデス。

20 :ぬーぶ ◆upkqfrxkrw :2017/02/01(水) 21:46:40.54 ID:8ReyjKDy.net
>>15
せやね、書く

21 :ぬーぶ ◆upkqfrxkrw :2017/02/01(水) 21:53:02.40 ID:8ReyjKDy.net
開発言語:C++
開発環境:Visual Studio C++ 2015
目標:3Dゲーム作り
その他:DXライブラリ使用

C++の進行状況:ゲームに関係するものを優先し基本文法勉強中
好きな関数:if
苦手な関数:while、for、return

英語:中学校範囲クリア / スラング使用可能 / 英語のドキュメントの解読可能(多分)



こんなんで良いかな。

22 :ぬーぶ ◆upkqfrxkrw :2017/02/01(水) 21:56:41.57 ID:8ReyjKDy.net
>>16-18
ど、どういう事なの…
switch文を調べてみればいいのか。

23 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/01(水) 22:01:19.21 ID:KG87RO2X.net
switchは、変数の値に応じて次のように処理が分かれる。
switch (mode) {
case 0: //mode==0だったら
... break;
case 1: //mode==1だったら
... break;
case 2: //mode==2だったら
... break;
}
簡単だろ?

24 :デフォルトの名無しさん:2017/02/01(水) 22:04:37.70 ID:fGZSlE9v.net
>>21
ifやwhileは制御文であって関数では無いぞ?本当に本読んだ?

25 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/01(水) 22:05:11.95 ID:KG87RO2X.net
今までのメインループの処理をmode1関数に移動して、メインループにはswitchを書く。
mode0関数ではスタート画面を表示し、キーが押されたらmode = 1;にする。
これでゲームモードはプレイ中に移行する。

26 :ぬーぶ ◆upkqfrxkrw :2017/02/01(水) 22:12:28.24 ID:8ReyjKDy.net
>>23
おー!なるほど!
もっと詳しく調べてみる。

27 :ぬーぶ ◆upkqfrxkrw :2017/02/01(水) 22:13:00.95 ID:8ReyjKDy.net
>>24
もう関数の定義が分かりません( ??? )
命令全部を関数と呼ぶ始末…

28 :ぬーぶ ◆upkqfrxkrw :2017/02/01(水) 22:13:21.05 ID:8ReyjKDy.net
あ、文字化けしちゃった…(´・ω・`)

29 :デフォルトの名無しさん:2017/02/01(水) 22:15:51.87 ID:lpyRA1Jp.net
ひとまず飽きるまで基本文法に集中しよう
今のレベルなら間違いなく「全て」ゲームに関係するよ

30 :ぬーぶ ◆upkqfrxkrw :2017/02/01(水) 22:18:55.76 ID:8ReyjKDy.net
>>29
で、ですよねー…(´・ω・`)
基本文法ってどこまでが基本文法なの?
最低限覚えるべき命令が明確だと
区切りがついて集中しやすいかも。

31 :ぬーぶ ◆upkqfrxkrw :2017/02/01(水) 22:19:31.53 ID:8ReyjKDy.net
あ、あと質問なんだけど
!extend:checked:vvvvv:1000:512
↑これってこの板で使える?

32 :デフォルトの名無しさん:2017/02/01(水) 22:21:38.94 ID:fGZSlE9v.net
>>27
値を返すサブルーチンだよ
このくらい理解出来ないとゲーム作りとか夢物語だよ?

33 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/01(水) 22:24:14.29 ID:KG87RO2X.net
#include "DxLib.h"
int mode = 0;
void mode0() {
//スタート画面
}
void mode1() {
//プレイ中
}
void mode2() {
//ゲームエンド
}
int WINAPI WinMain(...) {
...
//メインループ
while (...) {
switch (mode) {...}
}
... }

34 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/01(水) 22:32:24.13 ID:KG87RO2X.net
どうだ? 出来そうか?

35 :デフォルトの名無しさん:2017/02/01(水) 22:32:53.47 ID:fGZSlE9v.net
よし、もう寝ろ 

寝床に就いたら「しっかり学業を終えて卒業する」と6回唱えよ

朝起きたら「今日1日しっかり学業する」と3回唱えよ

36 :デフォルトの名無しさん:2017/02/01(水) 22:36:10.03 ID:lpyRA1Jp.net
>>30
C++は成り立ちが特殊なのもあって何が基本ってのが伝えにくいな

ひとまず下のサイトの「標準C++文字列」
までのコード部分が読めれば問題ない...かな?
http://next1.msi.sk.shibaura-it.ac.jp/MULTIMEDIA/CPPPUBLISH/CPPPUBLISH.html

37 : ◆BrBq2CJg6HGd :2017/02/01(水) 23:36:39.36 ID:f7+O1dJJ.net
皆さん初めまして、プログラマー板から来た34アスペです。
よろしくお願いします。

38 :デフォルトの名無しさん:2017/02/02(木) 08:23:03.51 ID:z7302t8D.net
>>36
どちらかというと派生クラスまで必要じゃね?

39 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 14:53:53.77 ID:89CMRg/p.net
ただいまー

40 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 14:55:33.63 ID:89CMRg/p.net
>>32
今現在完全に夢物語やね…(´・ω・`)
returnってゲーム作りにおいてそんなに重要なのか…

41 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 14:56:01.11 ID:89CMRg/p.net
>>34
多分。できると思う。きっと…(自信なし)

42 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 14:58:46.11 ID:89CMRg/p.net
>>36 >>38
おー、有難う。見てみる。
派生クラスまでなの?クラス苦手…(´・ω・`)

43 :デフォルトの名無しさん:2017/02/02(木) 15:02:12.89 ID:wY64K01/.net
>>40
ゲームというかプログラミングで普通に使う

悪い事言わんからもっとやさしめの本買ってプログラムリスト全部写経して全部ステップ実行で動き確かめろ

44 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 15:02:36.15 ID:89CMRg/p.net
あーやっぱり1日経つとID変わっちゃうんか…
あとお願いだから誰か>>31を教えて…(´;ω;`)

45 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 15:05:13.99 ID:89CMRg/p.net
>>43
ひえっ、プログラミングで普通に使うのかリターンって。
本買うお金が…Nothing……_(:3 」∠)_

…前から思ってたんだけど、
プログラム実行したら即ウィンドウ閉じるのって何で?
cinでキー入力待ちにしないとすぐ閉じる。
それともこっちのIDEがバグってるのかな。

46 :デフォルトの名無しさん:2017/02/02(木) 15:09:56.95 ID:wY64K01/.net
それ前に言った
デバッグ実行

通常の実行はプログラムが終わったんだから窓も閉じるのは正常

47 :デフォルトの名無しさん:2017/02/02(木) 15:11:40.05 ID:wY64K01/.net
金無いなら図書館行って借りてこい

48 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 15:27:12.31 ID:89CMRg/p.net
>>46
あ、Ctrl+F5じゃ駄目だったのか

49 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 15:27:28.54 ID:89CMRg/p.net
>>47
寒いけど行くしかないんかぁ…(´・ω・`)

50 :デフォルトの名無しさん:2017/02/02(木) 15:28:58.86 ID:BZ4icX5v.net
人に聞く前にさ、本くらい読んで一通り勉強してから来いよ。
わからないところ聞くのはそれからだろ。なめてんのか?

51 :デフォルトの名無しさん:2017/02/02(木) 16:23:52.29 ID:wY64K01/.net
コンピューター関係の本は分類の都合上棚が別れてたりするから注意な
だいたい総記か電子通信、ビジネスあたり

52 :デフォルトの名無しさん:2017/02/02(木) 16:26:32.25 ID:wY64K01/.net
数学や物理の棚とかも眺めてみたら発見があるかもしれない

53 :デフォルトの名無しさん:2017/02/02(木) 16:39:15.59 ID:wY64K01/.net
http://dotinstall.com/lessons/basic_c
http://dotinstall.com/lessons/basic_unity
http://www.techscore.com/tech/C/index.html/

こういう所で学んでもいいぞ

54 :デフォルトの名無しさん:2017/02/02(木) 16:45:14.41 ID:CLpLcnWW.net
ゲーム作るならC#とUnityでええやろ

55 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 16:53:02.26 ID:89CMRg/p.net
>>51-52
おー、探し物が苦手だから助かった。
ありがとう、そのあたり見てみる。
物理演算とかもあるかな。

56 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 16:54:05.34 ID:89CMRg/p.net
>>53
一番上のサイト分かり易かった。
良い勉強サイトありがとうですm(__)m

57 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 16:56:41.47 ID:89CMRg/p.net
>>54
あんまりゲームエンジンとかは使いたくなくて…
なんていうか、基本的に楽するためのツールは使いたくないかな。
もっと先の話になるけど、ゲームエンジンとかも自分で作ってみたい。

58 :デフォルトの名無しさん:2017/02/02(木) 16:58:08.20 ID:wY64K01/.net
>>54
まあCの部分も理解出来てないみたいだからなあ

gccとか試したければgnupackが便利だ
https://ja.osdn.net/projects/gnupack/

59 :デフォルトの名無しさん:2017/02/02(木) 17:04:00.18 ID:rEFuWNai.net
returnわからないって英語でbe動詞わからないとかそんなレベルだぞ

60 :デフォルトの名無しさん:2017/02/02(木) 17:14:25.17 ID:wY64K01/.net
>>57
その心がけはいいかも知れないが今の時代ハードの進歩に個人が追随するのはなかなか大変

ゲームエンジンはある程度そういう部分を吸収してくれるし、DirectXがWindowsだけなのに対しプラットホームの差もある程度吸収してくれる

61 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 17:17:48.67 ID:16is72Ce.net
>>31
使えるが、1度立てたスレの設定を変えるのは管理者しかできない。

62 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 17:40:36.45 ID:89CMRg/p.net
>>59
うそやん…

63 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 17:43:49.81 ID:89CMRg/p.net
>>61
使えるのか、良かった。

64 :デフォルトの名無しさん:2017/02/02(木) 17:48:38.83 ID:wY64K01/.net
何が分からないかが分からないな

分からないなら分からない所を分かるまで何十回も読み返せよ

分からないものを分からないままにするから永遠に分からないんだよ

65 :デフォルトの名無しさん:2017/02/02(木) 18:01:33.77 ID:wY64K01/.net
思うに君は基礎をすっ飛ばしてとにかく先に進みたいタイプなのか?
それとも根本的な部分が理解出来ないと先に進めないタイプなのか?

前者ならもっと初心者でも使える言語の方がいいし、後者ならアセンブラを一度勉強してみるのも手だろう

66 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 18:17:20.75 ID:89CMRg/p.net
>>65
分からないところはおまじないとして
"とりあえず書いとけ"みたいな感じで使ってるから
それを利用して何かしろって言われると無理だから前者かも。

初心者で使える言語はHSPをやった事がある。
でも自由度が低いからC++をやろうと思った。

67 :デフォルトの名無しさん:2017/02/02(木) 18:24:30.21 ID:wY64K01/.net
自分が書いたコードが何故動いているのかわからない、では思わぬバグとかではまってしまい先に進めないぞ?

68 :デフォルトの名無しさん:2017/02/02(木) 18:24:54.53 ID:CLpLcnWW.net
>>66
HSPでゲーム作れたの?

69 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 18:30:33.99 ID:89CMRg/p.net
>>68
簡単なテキストだけのゲームは作ったけど
何か不便だったからC++に変えた。
あんまり自分に合わなかった。

70 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 18:33:34.27 ID:16is72Ce.net
スタート画面作って見せてよ。>>33みたいな感じでいいから。

71 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 18:35:26.54 ID:89CMRg/p.net
>>70
OK、丁度今から外出だから
夜か、それでも23時までに寝ないとだし
ご飯もお風呂もあるし、明日になるかもしれんけど
取り敢えず作ってみる。テキストのみのメニューで良い?

72 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 18:37:05.15 ID:16is72Ce.net
>>71
テキストのみでOkay.

73 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 20:32:43.24 ID:89CMRg/p.net
ただいまー、お腹空いたー…(´・ω・`)
まだ時間あるから今から作ってみる。
今日中に完成するかな…

74 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 21:14:37.82 ID:16is72Ce.net
確か、HSPにはgotoがあったはずだ。C/C++の関数呼び出しとreturnはHSPのgotoよりも高級なものだ。
関数だと引数が使える。さらに関数呼び出しの際に、関数が終わった後に戻る場所(呼び出しの直後)を覚えてくれる。

75 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 21:18:00.29 ID:16is72Ce.net
さらに関数は戻り値を返すことができる。関数呼び出しの式はそれが返す戻り値として解釈される。
処理を行う構造、制御構造がはっきりしていて、処理のまとまりがひとめで分かる。

76 :デフォルトの名無しさん:2017/02/02(木) 21:19:50.81 ID:0MnIHg2o.net
>>57
> あんまりゲームエンジンとかは使いたくなくて…
DxLib.h つこうてたやん

77 :デフォルトの名無しさん:2017/02/02(木) 21:22:55.17 ID:wY64K01/.net
説明が硬い

78 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 21:24:05.29 ID:89CMRg/p.net
何が間違ってるんだ…
もう何を訊けばいいかすら分からない( ´_ゝ`)
http://ideone.com/5Hs7ug

79 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 21:25:30.14 ID:89CMRg/p.net
>>74-75
戻り値とか引数とかが…どういうものと捉えれば良いの?

80 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 21:26:42.98 ID:89CMRg/p.net
>>76
んーと何て言うか…
GUIを使ったツール、直感的に動かせるツールは
なるべく使いたくない。
DxLibは拡張のライブラリだからCUIだけで済むし、
何より自分が「今プログラミングをしてるんだ」っていう
やる気がでるから、文字だけで作るのに拘りたい。

81 :デフォルトの名無しさん:2017/02/02(木) 21:29:02.41 ID:wY64K01/.net
あのサイトの動画見ても理解出来ないのか

82 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 21:31:34.07 ID:16is72Ce.net
>>78
DXライブラリではprintfは使えないよ。printfはコンソール出力用の関数だ。switchは次のようにしなさい。
switch (mode) {
case 0: mode0(); break;
case 1: mode1(); break;
case 2: mode2(); break;
}
メインループは描画処理を回さないといけないから、キー待ちのWaitKeyは使えないよ。mode0内でキー待たずにキー判定をしてmode=1;しなさい。

83 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 21:33:29.66 ID:16is72Ce.net
描画処理はmode0,mode1それぞれの関数で行いなさい。

84 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 21:36:16.35 ID:16is72Ce.net
DxLibはCUIじゃないよ。内部データは完全にGUIでできてる。

85 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 21:40:53.72 ID:89CMRg/p.net
>>84
え、そうなのか…(´・ω・`)

86 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 21:42:08.14 ID:89CMRg/p.net
実行できるはずなのに何故か動かないHappening!
http://ideone.com/W7q2f3


何で?(・_・)

87 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 21:45:54.75 ID:16is72Ce.net
DxLibの画面はライブラリ自身が用意しているウィンドウだから、Windowsのコンソールとは違う。
DxLibで文字列を描画するにはDxLibの関数を使う。DxLibのマニュアルを参照して適当な描画関数を探せ。

88 :デフォルトの名無しさん:2017/02/02(木) 21:55:43.60 ID:0MnIHg2o.net
大人しくCUIからやるべきだな
ライブラリでラップされてたら、動きを確認しづらいと思うけどな
急がば回れって知ってるか?

89 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 22:01:32.16 ID:16is72Ce.net
#include "DxLib.h"
int mode = 0;
void mode0() {
//スタート画面
DrawString(0,0,"キー押しでスタート",0xFFFFFF);
if(CheckHitKeyAll()) mode = 1;
}
void mode1() {
//プレイ中
DrawString(0,0,"ゲーム中",0xFFFFFF);
}
void mode2() {
//ゲームエンド
}
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
ChangeWindowMode(TRUE);
DxLib_Init();
//メインループ
while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) {
switch (mode) {
case 0:mode0(); break;
case 1:mode1(); break;
case 2:mode2(); break;
}
}
DxLib_End();
return 0;
}

90 :デフォルトの名無しさん:2017/02/02(木) 22:01:59.68 ID:wY64K01/.net
>>86
そのサイトはwindowsじゃないから

91 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 22:03:39.59 ID:16is72Ce.net
>ChangeWindowMode(TRUE);
>DxLib_Init();
順序は大事だよ。マニュアルに書いてあるだろ?

92 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 22:17:16.71 ID:16is72Ce.net
GUIのプログラムはほとんどオンラインではコンパイル・ビルドできない。

93 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 22:27:43.03 ID:16is72Ce.net
たとえオンラインでビルドボットでGUIプログラムがビルドできたとしても、オンラインでは
実行は難しい。オンラインで仮想化実行はコストが高い。

94 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 22:47:14.71 ID:89CMRg/p.net
>>88
急がば突き進む…じゃ駄目かな(´・ω・`)

95 :ぬーぶ ◆upkqfrxkrw :2017/02/02(木) 22:47:33.81 ID:89CMRg/p.net
>>91
あ、順序間違えてた。

96 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 23:01:36.08 ID:16is72Ce.net
//モード切り替え
#include "DxLib.h"
int mode = 0; //モード
//キーバッファのクリア
void gp_clear_key_buffer() {
while (GetInputChar(TRUE)) {}
}
void gp_mode0() {
//スタート画面
DrawString(0,0,"キー押しでスタート",0xFFFFFF);
if(CheckHitKeyAll()) {
mode = 1;gp_clear_key_buffer();}}
void gp_mode1() {
//プレイ中
DrawString(0,0,"プレイ中",0xFFFFFF);
if(CheckHitKeyAll()) {
mode = 2;gp_clear_key_buffer();} }
void gp_mode2() {
//ゲームエンド
DrawString(0,0,"ゲームオーバー",0xFFFFFF); }
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
ChangeWindowMode(TRUE);
DxLib_Init();
gp_clear_key_buffer();
//メインループ
while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) {
switch (mode) {
case 0:gp_mode0(); break;
case 1:gp_mode1(); break;
case 2:gp_mode2(); break; } }
DxLib_End(); return 0; }

97 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 23:07:17.40 ID:16is72Ce.net
キー入力のデータは「キーバッファ」という場所に積み重なる。
プログラムを起動した直後やキー入力を受け付けた直後は、キーバッファにキーデータが残っていたり、
キーを押し下がった状態かもしれない。そこでGetInputChar(TRUE)の繰り返しにより、
キーバッファをクリアして、キーが押されていない状態まで待つ。

98 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 23:20:02.37 ID:16is72Ce.net
【今日のまとめ】
◎ideoneはDxLibプログラムをビルドできない。
◎メインループでは描画処理を回すためキー待ちは避ける。
◎プログラム起動直後はキーバッファをクリアする。

99 :片山博文MZ ◆T6xkBnTXz7B0 :2017/02/02(木) 23:24:01.91 ID:16is72Ce.net
◎モードごとに描画処理を分ける。
◎関数を呼び出す順序は大事。

100 :デフォルトの名無しさん:2017/02/02(木) 23:43:05.98 ID:0MnIHg2o.net
>>94
普通に勉強した方が理解早いだろ
最初のスレ立ててから何日経った?
関数の引数、返り値なんて環境構築除いたら、初日で理解できる話だぞ

総レス数 1002
297 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★