|
Name: 蒼夜 ..ぴよぴよ(26ポイント)
Date: 2009/03/04(水) 22:15
No:29991
|
|
Title: プロジェクトの一括ダウンロード
|
|
プロジェクトの一括ダウンロードをしようとしたら、書庫が壊れていると出て回答できませんでした。どうしたらいいでしょうか?
26ポイント を手に入れた。
|
|
|
|
Name: ばる
Date: 2009/03/10(火) 15:14
No:299911236665661
|
|
Title: Re:プロジェクトの一括ダウンロード
|
|
うちの環境でも同様な状況になりました。
[環境]
WindowsXPHome SP3
Sleipnir 2.8.4
Lhaplus
[状況]
ダウンロード完了したファイルが役264KBしかなく、解凍ソフトで解凍すると
「書庫が壊れている」と表示されたり、解凍できても「1章、10章〜25章」
のフォルダしかない。
管理人さんの仰るようにフリーダウンロードマネージャーを利用してダウンロードすると
問題なく解凍することができました。
私もこのページを見て勉強させて頂いております。
今後ともよろしくお願いします。
|
|
|
|
Name: situmon ..上級者(21,725ポイント)
Date: 2009/03/03(火) 12:06
No:29849
|
|
Title: 雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
今回は雑談です。
dixqさまは東方のキャラクターが作り出す弾幕を簡単に作っていて
すごいとおもいます。
それで思ったのですが、皆様どのようなキャラが好きで
どんな弾幕を作ってみたいと思いますか?
ちなみに自分は すいかと文がすきです。
作ってみたい弾幕は 上のキャラのものではありませんが ブロークンアミュレットなどは きになります。
106ポイント を手に入れた。
|
|
|
|
Name: 脱出の人 ..ぴよぴよ(552ポイント)
Date: 2009/03/03(火) 12:16
No:29851
|
|
Title: Re:雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
お空と天子が好きだぜ!
弾幕ってスペカの事かな?
自分的にはCAVEの弾幕とか見てこうゆう鬼畜な弾幕作りてぇって思ったりしますねw
36ポイント を手に入れた。
|
|
|
|
|
Name: 御津凪 [URL] ..熟練のプログラマー(65,092ポイント)
Date: 2009/03/03(火) 12:52
No:29852
|
|
Title: Re:雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
サンプルプログラミングの館で中途半端な弾幕避けゲーを紹介していただいている者です。
…と軽く宣伝してみたり。
(そのうち完成版を公開予定)
私は主に魅せる弾幕を作ってみたいですね。
特に妖々夢の弾幕とか。
それとは別に、避けれる弾壁でも作ってみたいですね。
基本的に東方のキャラは全員好きですが、
強いて挙げるなら、秘封倶楽部の二人かな。
(幻想郷メンバーじゃないけど気にしない。)
170ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(7,829ポイント)
Date: 2009/03/03(火) 12:53
No:29853
|
|
Title: Re:雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
レミリアや諏訪子が好きですね〜
作ってみたい弾幕はウドンゲのビジョナリーチューリングですねw
ビジョナリーチューリングにはDirectXのポストエフェクトの技法が使われているので、
DirectXのシェーダの勉強も兼ねて…ですが。
89ポイント を手に入れた。
|
|
|
|
|
Name: situmon ..上級者(21,821ポイント)
Date: 2009/03/03(火) 15:02
No:29858
|
|
Title: Re:雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
確かに!
諏訪子は可愛いですよね!でもとんでもなく難しい弾幕ばかり使いますが、
レミリアといえば曲がいいです。
でも全部難しい弾幕です・・・
2倍のポイントを手に入れた! 96ポイント を手に入れた。
|
|
|
|
|
Name: Dixq (管理人) ..ウィザード(1,000,389ポイント)
Date: 2009/03/03(火) 17:31
No:29873
|
|
Title: Re:雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
私が作ってみたい弾幕は生活の身近な所にある何かをテーマにしたものですねぇ。
アンケートによると龍神録の中では虹の弾幕とか花火とか、身近なものを取り入れた弾幕に評価が集まっているように思いました。
何を表現しているのかわからない弾幕より、
「あぁこれが表現してあるのか」と解る方がなんだか楽しい気がします。
後弾幕系ゲームはどうしてもイライラ棒的避け方になりがちですが、
其の言葉通り、イライラとは爽快とは逆の言葉でしょうし、
ユーザーをイライラさせるような弾幕は極力避けて、爽快な弾幕を作りたいなと思っています。
しかし「爽快」っていうのは言葉で書くと簡単ですが、なかなか実装大変なんですよね〜^^;
何を実装すれば爽快になるのかわからない・・・。
まぁこの辺は今度の研究会で打開策を述べますので^^)v
248ポイント を手に入れた。
|
|
|
|
|
Name: 烏 ..初心者(6,785ポイント)
Date: 2009/03/03(火) 17:46
No:29875
|
|
Title: Re:雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
藍やチルノが特に好きです。
作ってみたい弾幕は、なぜか避けられないような弾幕を作ってみたいです。
まるで自分から当たりにいっている様な感覚に陥る感じのものなど作成してみたいと思っています。
95ポイント を手に入れた。
|
|
|
|
|
Name: 桃印 ..初心者(6,282ポイント)
Date: 2009/03/03(火) 20:09
No:29883
|
|
Title: Re:雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
東方と聞いて(ry
私も東方ライクな弾幕STGを作っていますが、やっぱり最初は自分が好きな弾幕を再現したくなりますよね。
最近だと見た目の派手さの割りにシンプルな、霊烏路空の『核熱「ニュークリアフュージョン」』なんかを再現してみたりしてました。いざやってみると、加算の核弾がミス誘いのばらまき弾を隠さないよう弾登録時にソートが必要だったりと、気づかなかった発見とかもありました〜。
しかし「爽快」な弾幕についてはホント難しいですね。
個人的には、いわゆる「気合避け」が爽快感のポイントなのかなと思っていますが。あまりに精密・固定された動きを要求される弾幕は、やはり連続でやっていると疲れるなと。本家でも徹底したパターン弾幕は終盤やターニングポイントで効果的に使われているように思えますし。紅魔郷がシリーズ中でも高い評価を得ているのは、気合避けが多いからかなーとか。
とはいえ、永のアステロイドベルトや地EXのイドエゴなどのような、無茶気合も疲れるのですが(笑
長々と語ってしまいましたが、そんな感じで。
ちなみに早苗さんと妹紅は私の嫁ですので悪しからず。
328ポイント を手に入れた。
|
|
|
|
|
Name: M ..ぴよぴよ(364ポイント)
Date: 2009/03/03(火) 22:43
No:29901
|
|
Title: Re:雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
文ちゃんとにとりは俺の嫁
弾幕は「光る水底のトラウマ」とか「弾幕のロールシャッハ」とか「日出ずる国の天子」とかが好きですね、要するに光り物好き?
70ポイント を手に入れた。
|
|
|
|
|
Name: じゃが ..ぴよぴよ(936ポイント)
Date: 2009/03/03(火) 23:40
No:29910
|
|
Title: Re:雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
霊夢ですかね〜
インペリシャブルシューティングか、ノーマル以上のさとりの通常あたりですね〜
後は、脱出の人さんと被っちゃいますがCAVEの弾壁が好きですねw
70ポイント を手に入れた。
|
|
|
|
|
Name: situmon ..上級者(22,077ポイント)
Date: 2009/03/04(水) 18:49
No:29974
|
|
Title: Re:雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
返事が遅くなってすいません。
>管理人様
自分的に ファイアーワークス はとてもきれいで、またとても爽快なよけができました。
>鳥 様
もしできたら挑戦したいです! それと、いくら難しく作ってもクリアしてしまう人はいるものですよね。
>桃印 様
すいません。ニュークリアフュージョンはあまりの難しさに降参してしまったのでいい思い出はありません・・・それと東方ライクなSTGはプレイさせていただきました。楽しかったです!
たしかふりーむで公開されてませんでしたか?
>M 様
にとりのテレビショッピング!!! 知ってたらわかりますが、
にとりも文も好きです!どちらもキャラも弾幕も最高です。
>じゃが 様
霊夢といえばアンケート一位をほこる人気でしたね。
さとりはあのかんじがなんともいえなくすきです。
でもあんな技(想起)がつかえたらたとえ霊夢でも負けるんじゃないでしょうか?
それと皆様、
ロイヤルフレアはどのように作られているのでしょうか?
また、東方で一番いらいらしたけどクリアしたとき一番やり応えがあった弾幕は何ですか?
自分は、文花帖のレミリアの弾幕はすべてうれしかったです。
ゲームを作っている方に質問ですが
弾や自機、特に敵の画像はどうしていますか?作り方を教えてほしいです。
256ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..上級者(19,389ポイント)
Date: 2009/03/04(水) 19:12
No:29978
|
|
Title: Re:雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
>ロイヤルフレアはどのように作られているのでしょうか?
ロイヤルフレアが作れなかったために、自分の作ったものでは中ボスが美鈴ですw
本当にあれの計算式が未だにわかりません。orz
ループしているように見えてループしてないんですよね;
ごり押しでそれっぽく見せることはできますが・・・
>東方で一番いらいらしたけどクリアしたとき一番やり応えがあった弾幕は何ですか?
495年の波紋ですかね
シンプルですが、取れたときは感動しましたw
個人的にはメディスンのような移動速度が遅くなったり、弾が隠れて見えない、等の
他の弾幕には無いようなものが好きです。
嫌いな人は多いと思いますがw
好きなキャラというより東方の世界観が好きだったり
292ポイント を手に入れた。
|
|
|
|
|
Name: Mikan [URL] ..初心者(7,022ポイント)
Date: 2009/03/04(水) 19:25
No:29979
|
|
Title: Re:雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
>好きなキャラというより東方の世界観が好きだったり
私も世界観(和風?)や音楽が好きですね^^
特に「おてんば恋娘」は大好きで毎日聞いています♪
ニコニコなどではカバーやアレンジがあるので大変楽しめてます。
P.S.
音楽の知識は少しあるのですが、作曲は難しいものですねw
134ポイント を手に入れた。
|
|
|
|
|
Name: 桃印 ..初心者(6,814ポイント)
Date: 2009/03/04(水) 19:29
No:29980
|
|
Title: Re:雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
>たしかふりーむで公開されてませんでしたか?
いえ、まだ半分も出来てないので公開はしてませんよ〜。
situmonさんの仰ってるソフトは知ってるような気がしますが(笑
>東方で一番いらいらしたけどクリアしたとき一番やり応えがあった弾幕
イライラでは地EXの「イドの解放」「スーパーエゴ」ですかねー。気合避けは嫌いじゃないのですが、「弾の当たり判定が分かりづらい」というのは結構ストレスですね。ここら辺は自作の際も気をつけようと思っています。
やり応えがあったのは「幻想風靡」などの耐久気合避け、あとは上手くパターン組むのがコツな「ウー」「フジヤマヴォルケイノ」かな? 文花帖はシステム的にも難易度的にも遣り甲斐があったと感じてます。
>弾や自機、特に敵の画像はどうしていますか?
私は本職(というほどでもないですが)が絵描きで、「ゲームのキャラとか描きたい」→「じゃあ自分で作ろう」という神主パターンなので、ほぼ全て自作ですね。ただ、自分で描けなくても質の高いフリー素材は探せば沢山ありますから、特に苦労することはないと思います。私もゲームが完成したら、流用できる弾画像なんかはフリーで放出したいと思っています。
誤解を解くだけのつもりだったんですが、またもや長くなってしまいました;
でわ。
532ポイント を手に入れた。
|
|
|
|
|
Name: 御津凪 [URL] ..熟練のプログラマー(66,424ポイント)
Date: 2009/03/04(水) 19:40
No:29981
|
|
Title: Re:雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
私もやはり世界観が好きですねー。
恐ろしい場所なんだかほのぼのとした場所なんだかよく分からない感じが特に。
> 音楽の知識は少しあるのですが、作曲は難しいものですねw
確かに難しいですね。
特に自分の思い描くフレーズを音にする時。
はっと思いついたフレーズを音にしようとして、うまくいかなくて色々弄ってたら、元のフレーズを忘れてしまったり…orz
> 神主パターン
私のやっていることもまさにそのパターンですね。
私は ゲームを作りたい→絵も曲も自分で作りたい というパターンです。
154ポイント を手に入れた。
|
|
|
|
|
Name: situmon ..上級者(22,152ポイント)
Date: 2009/03/04(水) 21:01
No:29985
|
|
Title: Re:雑談 好きな東方のキャラと好きな(作ってみたい)弾幕は何ですか?
|
|
曲ならお題さえあればすぐに浮かぶのですが、よいフレーズはでてこなかったり
出てくるときに限って消えます。
また自分も絵はすべて自分で描きます。
神主パターンは多いですね。
メディスンのあの毒は強い!!!
75ポイント を手に入れた。
|
|
|
|
Name: ざこ ..プログラマー(25,667ポイント)
Date: 2009/03/03(火) 19:10
No:29880
|
|
Title: コモンダイアログ
|
|
MFCのVC++6.0を使っています。
ダイアログ1に【リストボックス】と【追加ボタン】があります。
ダイアログ2に【エデットボックス】と【OKボタン】があります。
ダイアログの1の追加ボタンを押すとダイアログ2がでてきます(コモンダイアログ)
それでエデットボックスに何かを入力し、OKボタンを押すとリストボックスに表示されるようにしたいんですが
クラスがそれぞれ別々でアクセスできません。これは継承を使うんでしょうか?それとも他の何かでしょうか?
172ポイント を手に入れた。
|
|
|
|
Name: ざこ ..プログラマー(25,792ポイント)
Date: 2009/03/04(水) 09:19
No:29933
|
|
Title: Re:コモンダイアログ
|
|
うーん、その可能性も考えには入っていましたがpublicは公開でprivateは非公開。非公開はそののクラスのほかのメンバからしかアクセスできない だったと思います。m_listbox(リストボックスのメンバ変数ですが)はpublicになっており、その可能性は消去したのですが。
125ポイント を手に入れた。
|
|
|
|
|
Name: バグ ..ハッカー(149,806ポイント)
Date: 2009/03/04(水) 09:55
No:29936
|
|
Title: Re:コモンダイアログ
|
|
今、テストプログラムを書いてみたのですが、DoModal関数を抜けた時点でダイアログクラスは破棄されてしまうようです。
ですので、DoModal関数でダイアログ2を表示する前に、文字列保持用の変数へのポインタを、あらかじめダイアログ2へ追加しておいた文字列のポインタ変数へ渡しておき、ダイアログ2が閉じる前(今回の場合ならば、ダイアログ2のOnOK関数内で)にポインタの中身を変更してやればいけると思います。
150ポイント を手に入れた。
|
|
|
|
|
Name: バグ ..ハッカー(150,524ポイント)
Date: 2009/03/04(水) 10:05
No:29937
|
|
Title: Re:コモンダイアログ
|
|
サンプルです。ダイアログ1の追加ボタンが押された際と、ダイアログ2のOKボタンが押された際のイベントハンドラをそれぞれ追加するのと、下記のメンバ変数を追加してください。
ダイアログ1
CListBox m_listbox
ダイアログ2
CString* m_pstr
CEdit m_editbox
// 追加ボタンが押された
VOID CDialog1::OnButtonAdd()
{
// ダイアログ2の実体を生成する
CDialog2 dlg;
// 文字列保持用のCStringクラスの実体を生成する
CString str;
// ダイアログ2のCStringへのポインタ変数へstrのアドレスを代入する
dlg.m_pstr = &str;
// ダイアログ2を表示する
dlg.DoModal();
// リストボックスへ文字列を追加する
m_listbox.AddString(str);
}
// ダイアログ2のOKボタンが押された
VOID CDialog2::OnOK()
{
// エディットボックス内の文字列を取り出す
CHAR str[256];
m_editbox.GetWindowText(str, 256);
// CStringクラスへ文字列を代入する
*m_pstr = str;
// ベースクラスのOnOK関数の実行
CDialog::OnOK();
}
2倍のポイントを手に入れた! 718ポイント を手に入れた。
|
|
|
|
|
Name: バグ ..ハッカー(150,962ポイント)
Date: 2009/03/04(水) 10:06
No:29938
|
|
Title: Re:コモンダイアログ
|
|
ごめんなさい、preタグを忘れてました…OTL
// 追加ボタンが押された
VOID CDialog1::OnButtonAdd()
{
// ダイアログ2の実体を生成する
CDialog2 dlg;
// 文字列保持用のCStringクラスの実体を生成する
CString str;
// ダイアログ2のCStringへのポインタ変数へstrのアドレスを代入する
dlg.m_pstr = &str;
// ダイアログ2を表示する
dlg.DoModal();
// リストボックスへ文字列を追加する
m_listbox.AddString(str);
}
// ダイアログ2のOKボタンが押された
VOID CDialog2::OnOK()
{
// エディットボックス内の文字列を取り出す
CHAR str[256];
m_editbox.GetWindowText(str, 256);
// CStringクラスへ文字列を代入する
*m_pstr = str;
// ベースクラスのOnOK関数の実行
CDialog::OnOK();
}
2倍のポイントを手に入れた! 438ポイント を手に入れた。
|
|
|
|
|
Name: ざこ ..プログラマー(26,412ポイント)
Date: 2009/03/04(水) 13:31
No:29947
|
|
Title: Re:コモンダイアログ
|
|
3箇所いじくりました。
1,リストボックスをリストビューにした
2,ダイアログ2にチェックボタンをとりつけた。
3,ダイアログ2にもう1つエデットボックスを付け加えた
ダイアログ2にチェックボタンを追加します。そのチェックボタンがチェックされていたら
上書きをする機能を追加します。色々考えたんですがまず同じように
ダイアログ1
CListBox m_listbox
ダイアログ2
CString* m_pstr
CEdit m_editbox
int m_chkBOX
CButton m_chk
VOID CDialog1::OnButtonAdd()
{
CDialog2 dlg;
CString str_ed1;
CString str_ed2;
int chk;
dlg.m_pstr=&str_ed1;
dlg.m_qstr=&str_ed2;
dlg.m_chkBOX=chk;
i=m_listC.GetItemCount();
dlg.DoModal();
if(chk==0){
m_listC.InsertItem(i,(LPCTSTR)str_ed1);
m_listC.SetItemText(i,1,(LPCTSTR)str_ed2);
}
if(chk==1){
m_listC.InsertItem(○○);
m_listC.SetItemText(●●);
}
}
VOID CDialog2::OnOK()
{
int chk1=m_chk.GetCheck();
char str_ed1[256];
char str_ed2[256];
if(chk1==1){
m_chkBOX=1;
m_ed1.GetWindowText(str_ed1,256);
m_ed2.GetWindowText(str_ed2,256);
*m_pstr=str_ed1;
*m_qstr=str_ed2;
}
else{
m_chkBOX=0;
char str_ed1[256];
char str_ed2[256];
m_ed1.GetWindowText(str_ed1,256);
m_ed2.GetWindowText(str_ed2,256);
*m_pstr=str_ed1;
*m_qstr=str_ed2;
}
CDialog::OnOK();
}
わからない箇所は今の所2点です。
これを実行するとダイアログ2ではチェックボタンの有無によってm_chkBOXを1と0に。
1だと上書き、2だとそのままです。ダイアログ2内ではきちんとできていますがOKボタンを押して
1に移るとおかしくなります。値がおかしくきちんと渡せていないようです。
上書きの機能はまだ入れておりませんが
例
拡張子 移動先
txt C:\\○
XLS C:\\
ダイアログ1がこの状態(拡張子:EDIT1の内容、場所:EDIT2の内容)で
次にダイアログ2で
EDIT1にtxt EDIT2にC:\\△を入力しOKをおすと
拡張子 移動先
txt C:\\△
XLS C:\\
となるように同じEDIT1内容を探し上書きします。
この同じEDIT1の内容がある行を調べるのに何かよい方法はありますか?
長文失礼しました。
597ポイント を手に入れた。
|
|
|
|
|
Name: バグ ..ハッカー(151,175ポイント)
Date: 2009/03/04(水) 14:14
No:29949
|
|
Title: Re:コモンダイアログ
|
|
ダイアログ1のint型のchkをダイアログ2の中で変更したい場合は、アドレスを渡してやらなければいいけません。よって、ダイアログ2のm_chkBOXはポインタにしてやらなければいけません。
ダイアログ2
誤:int m_chkBox;
正:int* m_chkBox;
上記の変更に伴う変更…
誤:dlg.m_chkBOX = chk;
正:dlg.m_chkBOX = &chk;
誤:m_chkBOX = 1;
正:*m_chkBOX = 1;
誤:m_chkBOX = 0;
正:*m_chkBOX = 0;
163ポイント を手に入れた。
|
|
|
|
|
Name: バグ ..ハッカー(151,219ポイント)
Date: 2009/03/04(水) 14:25
No:29951
|
|
Title: Re:コモンダイアログ
|
|
ところで、『上書き』というのがイマイチ理解できないのですが、既に入力されている内容と同じ内容が入力された場合のみ、追加ではなく上書きしたいという事でいいのでしょうか?
44ポイント を手に入れた。
|
|
|
|
|
Name: ざこ ..プログラマー(26,497ポイント)
Date: 2009/03/04(水) 14:37
No:29952
|
|
Title: Re:コモンダイアログ
|
|
そうですね。
EDIT1の内容がリストビューーの一列目に表示されるわけですが
EDIT1の内容はそのままでEDIT2の内容だけ変更したいときに上書きとなります。
EDIT2の内容が同じでも上書きする必要はありません。
※イメージしズらいと思いますので画像貼り付けて起きます。
41ポイント を手に入れた。
|
|
|
|
|
Name: バグ ..ハッカー(151,337ポイント)
Date: 2009/03/04(水) 14:53
No:29954
|
|
Title: Re:コモンダイアログ
|
|
1:追加ボタンを押す
2:ダイアログ2を表示して、拡張子&パスを入力する
3:チェックボックスにチェックが入っていたら、文字列を更新
4:リストビューの全てのアイテムを取得して、文字列を比較する(CStringクラスなら、==演算子が使用できるので比較が楽です)
5:同じ物があれば、何もしない。違うならば、リストビューを更新する
118ポイント を手に入れた。
|
|
|
|
|
Name: ざこ ..プログラマー(26,542ポイント)
Date: 2009/03/04(水) 15:35
No:29956
|
|
Title: Re:コモンダイアログ
|
|
そこまでは考えついたのですが、4がわからないんですよね。FindItemを使おうとしていますがうまくいかずで。
38ポイント を手に入れた。
|
|
|
|
|
Name: ざこ ..プログラマー(26,626ポイント)
Date: 2009/03/04(水) 16:16
No:29960
|
|
Title: Re:コモンダイアログ
|
|
ズバリ、ネットで調べても手ごろなサンプルがないのでまともに組めない→この関数であってるのだろうかと不安
初心者にはありがちかもしれません。
LVLFINDIFNFO find_info;
find_info.flag=LVFI_STRIMG;
int n=(find_info.psz==(char*)&s_ed1);
とまではしてみたんですがきちんと稼動はしません
84ポイント を手に入れた。
|
|
|
|
|
Name: バグ ..ハッカー(151,396ポイント)
Date: 2009/03/04(水) 16:31
No:29962
|
|
Title: Re:コモンダイアログ
|
|
なるほど(^_^;)
もし、その方法が不安ならば、全部のアイテムを自力で取り出して、ループで総当り比較しては如何ですか?
こちらの方法ならば、さほど難しくはないと思いますよ(^-^)
81ポイント を手に入れた。
|
|
|
|
|
Name: ざこ ..プログラマー(26,792ポイント)
Date: 2009/03/04(水) 16:41
No:29964
|
|
Title: Re:コモンダイアログ
|
|
ふうむ、一番厳しいのはクラスごとのメンバ関数を全然知らないってことかな。どこかに一覧があればいいんですが・・MSDNもメンバ関数の中身は簡単にわかりますが逆が全くダメなんで未知の関数だとそこでつまづきますね
2倍のポイントを手に入れた! 166ポイント を手に入れた。
|
|
|
|
Name: yuuki ..ぴよぴよ(397ポイント)
Date: 2009/03/03(火) 21:24
No:29890
|
|
Title: キャラについて
|
|
龍神録プログラミングの館にある、「キャラを描画してみよう」のところで、自分のキャラを読み込ませたいのですが、
#include "../include/GV.h"
extern int img_ch[2][12];
void load(){
LoadDivGraph( "../dat/img/char/0.png" , 12 , 4 , 3 , 73 , 73 , img_ch[0] ) ;
}
のどこを変えればいいのですか?
98ポイント を手に入れた。
|
|
|
|
Name: s-rush ..プログラマー(32,697ポイント)
Date: 2009/03/03(火) 21:51
No:29896
|
|
Title: Re:キャラについて
|
|
読み込ませる画像を変更するだけであれば、
LoadDivGraph関数の第一引数を変えればいいですよ。
つまり
LoadDivGraph( "ここを変えます" , 12 , 4 , 3 , 73 , 73 , img_ch[0] ) ;
というようになります。
91ポイント を手に入れた。
|
|
|
|
|
Name: s-rush ..プログラマー(32,765ポイント)
Date: 2009/03/03(火) 22:01
No:29898
|
|
Title: Re:キャラについて
|
|
>>その画像の名前?をいれればいいのですか?
そうです。
たとえば、画像の名前が ch.png であるなら
LoadDivGraph( "ch.png" , 12 , 4 , 3 , 73 , 73 , img_ch[0] ) ;
というようになります。
ただし、その画像のある場所がソースコードのあるファイル内でない場合、
ちゃんと場所を描いてあげる必要があります。
68ポイント を手に入れた。
|
|
|
|
|
Name: s-rush ..プログラマー(32,924ポイント)
Date: 2009/03/03(火) 22:57
No:29905
|
|
Title: Re:キャラについて
|
|
>>画像が複数ある時はどうすればよいのですか?
というのは、自分のキャラクターが複数あるということですか?
それだと、必要なだけLoadDivGraph関数を呼び出して、メモリにロードする必要があると思います。
しかしその画像が10種類とかあればめんどうですよね??
10種類あれば、LoadDivGraph関数を10回呼び出してあげなければいけないので・・・
for文を使うといいですかね。
146ポイント を手に入れた。
|
|
|
|
|
Name: yuuki ..ぴよぴよ(513ポイント)
Date: 2009/03/03(火) 23:53
No:29913
|
|
Title: Re:キャラについて
|
|
>>画像が複数ある場合はどうしたらいいのでしょうか?
同じキャラクターの画像です。
for文?
コピペのことですか??
2倍のポイントを手に入れた! 34ポイント を手に入れた。
|
|
|
|
|
Name: s-rush ..プログラマー(33,995ポイント)
Date: 2009/03/04(水) 00:00
No:29914
|
|
Title: Re:キャラについて
|
|
>>コピペのことですか??
そうではなくて、for文を使ってLoadDivGraph関数を呼び出します。
サンプルを作ってみました。
コンパイル時にエラーは出ませんでしたが、実行していませんので
ちゃんと動くかどうかは確認していませんが・・・
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了
int i;
int img_ch[10][12];
char input[64];
for(i=0; i<10; i++)
{
sprintf(input, "%d.png", i); //読み込む画像名の生成
LoadDivGraph( input , 12 , 4 , 3 , 73 , 73 , img_ch[i] );
}
WaitKey() ; // 結果を見るためにキー待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
10種類の画像をメモリにロードするだけのプログラムです。
このとき、1つだけ注意してください。
画像の名前を(このプログラムの場合ですが)
0.png
1.png
2.png
…
9.png
というように数字+拡張子というようにしておかなければなりません。
685ポイント を手に入れた。
|
|
|
|
|
Name: yuuki ..ぴよぴよ(947ポイント)
Date: 2009/03/04(水) 00:03
No:29916
|
|
Title: Re:キャラについて
|
|
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了
int i;
int img_ch[10][12];
char input[64];
for(i=0; i<10; i++)
{
sprintf(input, "%d.png", i); //読み込む画像名の生成
LoadDivGraph( input , 12 , 4 , 3 , 73 , 73 , img_ch[i] );
↑ここに入れるのですか?
}
WaitKey() ; // 結果を見るためにキー待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
434ポイント を手に入れた。
|
|
|
|
|
Name: s-rush ..プログラマー(34,331ポイント)
Date: 2009/03/04(水) 00:13
No:29918
|
|
Title: Re:キャラについて
|
|
>>LoadDivGraph( input , 12 , 4 , 3 , 73 , 73 , img_ch[i] );
>> ↑ここに入れるのですか?
何のことでしょうか?
画像を入れ込む変数のことをおっしゃられているのであればimg_ch[i]に格納されています。
つまり
画像名 | 格納されている変数
---------------------------------
0.png | img[0]
1.png | img[1]
2.png | img[2]
3.png | img[3]
4.png | img[4]
5.png | img[5]
6.png | img[6]
7.png | img[7]
8.png | img[8]
9.png | img[9]
というようになっています。
336ポイント を手に入れた。
|
|
|
|
|
Name: kazuoni [URL] ..熟練のプログラマー(68,564ポイント)
Date: 2009/03/04(水) 00:27
No:29920
|
|
Title: Re:キャラについて
|
|
画像が複数あるっという情報だけでは、今やっていることが
有効かどうか分かりませんね。
大きさが違う、方向が違うなどとなっているなら意味がありません。
まだ扱ったことのない物ならば、とりあえず使ってみることをお勧めします。
そのあとに自分で無駄を少なくしていけばいい話ですしね。
とりあえずは
LoadDivGraph( *1 , *2 , *3 , *4 , *5 , *6 , *7 );
で*1〜*7で渡すものを理解しましょう。
詳細は本家を見てください。
ttp://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_graph.html#R3N3
198ポイント を手に入れた。
|
|
|
|
|
Name: s-rush ..プログラマー(34,512ポイント)
Date: 2009/03/04(水) 00:30
No:29923
|
|
Title: Re:キャラについて
|
|
追記
画像の大きさとかはどうなっていますか??
画像の大きさや分割した時の画像の大きさ、方向が違えば
このプログラムは意味をなさないんですが・・・
49ポイント を手に入れた。
|
|
|
|
|
Name: s-rush ..プログラマー(34,692ポイント)
Date: 2009/03/04(水) 00:35
No:29924
|
|
Title: Re:キャラについて
|
|
すでにkazuoniさんに指摘されていましたね^^;
ご指摘ありがとうございました。
>>そこに画像の名前を入れるのですか?
前述のプログラムであれば、
画像の名前を入れる必要はありませんよ。
>sprintf(input, "%d.png", i);
この行ですでに画像の名前を生成してありますので。
まだLoadDivGraphを一度も使われていないのであれば、
kazuoniさんのおっしゃる通り、一度使われてみたらどうですか??
実際にプログラムを打ち込んで動かしてみた方が、理解しやすいかと思います。
180ポイント を手に入れた。
|
|
|
|
|
Name: s-rush ..プログラマー(35,088ポイント)
Date: 2009/03/04(水) 00:51
No:29927
|
|
Title: Re:キャラについて
|
|
>>名前を入れるのが面倒な時は、画像の名前をかえてもいいのですか?
とはどういうことですか?
プログラム内での画像の名前ですか?
それとも元の画像の名前ですか?
どちらにしても、片方の名前を変更したなら他方の名前も同じ名前にする必要があります。
プログラム内での画像の名前のことをおっしゃられているのであれば、
for文で自動生成するようにしてありますので、
元の画像の名前を数字.pngというように名前を変えていただければ、それで充分です。
たとえば、10種類程度なら、LoadDivGraphで10回書けばいいだけなので
それほど苦ではないかもしれませんが、100種類となった場合はどうですか?
LoadDivGraph(…);を100回書くのは面倒ですし、コードも長くなってしまいますよね?
画像サイズや分割後の1つのサイズが同じ、方向も同じといったように
条件が全く同じ下では、前述のプログラムを使用すれば、
少しは楽になると思います。
iのループ条件を変更すればいいだけなので。
396ポイント を手に入れた。
|
|
|
|
|
Name: kazuoni [URL] ..熟練のプログラマー(68,594ポイント)
Date: 2009/03/04(水) 01:53
No:29929
|
|
Title: Re:キャラについて
|
|
絶対っといっては語弊があるかもしれませんが、
基礎的なことなら年齢を問わず、理解できます。
いきなりいろいろなことをやろうとするから混乱しているだけです。
まず今使おうとしているものは関数です。
そして何を入れたらいいか悩んでいるものは引数です。
このことが理解できていないなら基礎からやったほうが、結果的に効率が良くなります。
まずは「C言語 基礎」っとググってみましょう。
それをやらないなら、おそらくレスが無駄に長くなっていくだけです。
30ポイント を手に入れた。
|
|
|
|
|
Name: Dixq (管理人) ..ウィザード(1,001,174ポイント)
Date: 2009/03/04(水) 10:45
No:29941
|
|
Title: Re:キャラについて
|
|
C言語の基礎は理解されていますか?
ゲームプログラミングの館はC言語歴1ヶ月でも出来ると宣伝していますが、C言語の基礎を理解している人をターゲットとしています。
突然ここから勉強を始めようとすると難しいと思います。
まずはC言語の入門サイトで勉強してみてください。
また、年齢は関係ないと思います。
ここに来ている方の中で小学生でもシューティングゲームを作っていらっしゃいますし、
私の友達は中学の頃からパソコン雑誌に自作ソフトを投稿していました。
勉強を効率的にするこつは、基礎を大事にすることだと思いますので、順序良く着実にやってみてください。
2倍のポイントを手に入れた! 370ポイント を手に入れた。
|
|
|
|
Name: M ..ぴよぴよ(770ポイント)
Date: 2009/03/01(日) 14:36
No:29627
|
|
Title: 弾を避けて自動で移動する方法
|
|
環境は、Windows XP で縦型トップビューシューティングを作っている者ですが。
Borland BCC Developerで、DXライブラリを使っています。
今、敵キャラが弾から自動的に避けるコードを作ろうとしています。
ですが、最後には、四隅に寄って移動ができなくなります。
過去ログを探してみたのですが、探し方が下手だったのか見つけれませんでした。
(もし、過去ログに似た質問があれば教えてください。)
まだ試した方法は、ある一定距離以内の弾すべてとのXとYの変化量の和を使って、
どちらに移動したら良いのか判定する方法だけですが、
この方法では、最後には必ず四隅に居座ってしまいます。
東方の「花見塚」のように、計算によって移動の制御を行うには、どうしたらよいでしょうか?
やはり、ベクトルを用いるのでしょうか?
スカラーが壁からの距離に反比例していて中心に向かったベクトルと、弾を避けるベクトルの和みたいな方法も
できますでしょうか?
もっと良い方法とか、考え方だけでも教えてくれれば助かります。
(ソースコード付きだともっと助かります。)
よろしくお願いします<(_ _)>
298ポイント を手に入れた。
|
|
|
|
Name: Dixq (管理人) ..伝説なるハッカー(996,314ポイント)
Date: 2009/03/01(日) 20:29
No:29638
|
|
Title: Re:弾を避けて自動で移動する方法
|
|
私もどうすればいいか結構迷い、未だにどうすれば最善の方法かよくわかりませんが、
端に追いやられるという場合は、場所に優先順位をつけてやればいいように思います。
例えば何も無い時は中央に寄るとか、
今、右か左に避けないといけないという状況の時、右の方が中央に近かったら右に行くとか、
反対方向に行くとリスクが増えたとしても、身動きがとれなさそうになるほど端っこにいってしまう状況ならリスクを負ってでも反対方向に逃げるなど。
ただ弾幕ゲーには切り返しだとかその弾幕特有の性質を個別に判断して独特の避け方をする必要があるものもあり、
なかなか難しいですねぇ;
237ポイント を手に入れた。
|
|
|
|
|
Name: M ..ぴよぴよ(810ポイント)
Date: 2009/03/01(日) 22:10
No:29668
|
|
Title: Re:弾を避けて自動で移動する方法
|
|
なるほど、、、とにかく試行錯誤ということなのですねww
回答を参考に、がんばってみます。
ありがとうございます<(_ _)>
40ポイント を手に入れた。
|
|
|
|
|
Name: Justy ..伝説なるハッカー(325,275ポイント)
Date: 2009/03/01(日) 22:22
No:29680
|
|
Title: Re:弾を避けて自動で移動する方法
|
|
>計算によって移動の制御を行うには、どうしたらよいでしょうか?
東方の花見塚とやらは全く知らないので、この機能を何に使うのか少しみえない
ところがありますが、イカサマ(全てを見通せる視点)なしで計算したいと
いうことでしょうか?
イカサマすればいつの時点でどこに弾があるのか全て完全に把握できるので
確実に避けられるルートを算出することは不可能ではありませんが、
それを使わないとなると、万能な方法というのがなくなるので、なかなか難しいですね。
よく聞く話では学習型のシステムを作って、避け方を覚えさせるというのがあります。
ただ、難易度が結構高いので結構大変です。
あまりこの手の分野は専門ではないのですが、2種類ほど考えてみました。
これは、弾の速度、大きさ、弾同士の密度などによって
アルゴリズムは変わってきたり、全く通用しなかったりすることを
念頭に置いておいてください。
一番手っ取り早そうなのが、レナードジョーンズの
ポテンシャル関数などを使ってプレイヤーを誘導することです。
弾と壁際に斥力系のパラメータを仕込んでおいて、プレイヤー近隣の空きスペースに
向かって引力系のパラメータを設定しておきます。
状況によっては、先読み(1フレーム先の弾の位置を推測して)し、
それを考慮に入れてパラメータを変動させる必要があるかもしれませんが、
調整次第では、まぁまぁきれいに避けてくれそうな気がします。
特に当たり判定が小さければ小さいほどうまくいくかもしれません。
その他、まじめに計算する方法もあります。
まず、プレイヤーが確認できる弾全てにおいて、そのフレームにおける
位置、移動ベクトル、加速ベクトルを記録します。
で、その情報を元に1フレーム後の全ての弾の位置を予測し、今の位置との
ラインを引きます。
このラインにぶつかると弾に当たったことになります。
1フレームで移動可能な場所への移動と移動しなかった場合を検討し、
安全な位置の候補をピックアップし、その位置に対して移動コストやスコアをつけます。
移動はとりあえず最初は8方向くらいで考えればいいかと思いますが、
1フレームの移動距離が長すぎる場合は、その半分とかの長さで移動を行うことも
候補に加えた方がいいかもしれません。
次に、更に次のフレーム(2フレーム後)での全ての弾の位置を求めて
先に求めた1フレーム後の予測位置とのラインを引きます。
先にピックアップした「避けられる位置」から移動したと想定して、
同じように判定し位置をピックアップし、スコアを更新します。
これを一定フレーム分(何フレーム〜何十フレーム)分繰り返し、
もっともスコアが高かったルートを採用しプレイヤーを移動させます。
推測に推測を重ねているので、先のフレームにいけばいくほど
情報は劣化していきますので、何秒も先まで求める必要はないかと思います。
これでこのフレームは終了します。
次のフレームでは、最新の情報を元に同様の処理をしますが、
先に求めたルートを優先的に一定フレーム分調べて、問題なければ
そのルートを採用し、問題があれば新たなルートを調べます。
こんな感じで繰り返していけば、まぁそれなりに避けられるとは思いますが、
・ 移動先候補のスコアの付け方など、難しいところが多々ある
・ プレイヤーの1フレームにおける最大移動量が小さすぎたり、或いは大きすぎたり、
弾の早さとかが極端だったりする場合は、上記の処理ではうまくいかない可能性がある
・ 自然な人間的な移動を目指したりする場合は調整が大変
・ この手法そのものが処理に若干時間がかかるので、やっぱり調整は大変
というデメリットもあるので、形になるまでには時間がかかるかもしれません。
884ポイント を手に入れた。
|
|
|
|
|
Name: Dixq (管理人) ..伝説なるハッカー(996,994ポイント)
Date: 2009/03/02(月) 02:38
No:29758
|
|
Title: Re:弾を避けて自動で移動する方法
|
|
>>東方の花見塚
というのは、対戦型シューティングです。
ネットワークを使って他の人とシューティングで競う(ぷよぷ●でいうおじゃまぷよみたいなものを相手に与えて邪魔することも可能)ゲームです。
もし人と対戦しない時は、コンピュータと対戦出来ます。
私は大真面目に計算する方法で実装した事があります。
しかし次のフレームまでしか考えないアルゴリズムだとすぐに限界が来るので、30フレーム先まで考え、30フレームとも当たり判定ではなかったフィールドに行くよう考えました。
そこが30フレーム先まで一度も危険地帯にはならなかったかどうかは、
シューティングのフィールドの大きさである「380x360」の大きさの配列を用意し、当たり判定範囲が通った場所にフラグを立てていきました。
30フレーム先まで当たり判定を計算していき、最後までフラグがオフだった配列要素の場所が安全地帯です。
しかし「切り替えし」による避け方をしないと避けられない弾幕(連続で自分の方向へ飛んでくる弾幕で、一度追われている方向に大げさによけて弾を弾き付けないと反対方向へ逃げれない弾幕)だと敵の周りをクルクルまわるようになってしまい、
画面上まで来ると、突然出てきた弾にやられてしまうということになりかねませんでした。
そして、自分の周りに似たような安全地帯が出来た時、どちらの方向に行けばいいか決めるのも結構難しかったように思います。
なかなか大変ですね。
Justyさんの斥力の案いいですね。
何も無い時常に中央にいると不自然すぎるので、この辺の斥力はその場に応じて変化させるといいかもしれませんね。
こういうことを考えれば考えるほど花見塚の動きが美しく見えますね^^;
474ポイント を手に入れた。
|
|
|
|
|
Name: Justy ..伝説なるハッカー(325,722ポイント)
Date: 2009/03/03(火) 00:46
No:29834
|
|
Title: Re:弾を避けて自動で移動する方法
|
|
>というのは、対戦型シューティングです
>花見塚の動きが美しく見えますね
なんとなくイメージがつかめました。
だとすると常に一定のアルゴリズムで動かすのではなく、
そのシーン(弾幕)にあった避け方をさせているのではないでしょうか。
いくつかの避け方の判断アルゴリズムとパターンを持たせて、
このときはAの情報を元に避け、次のシーンではBのパターンで、時には
AとBを合わせた情報で避ける、とか。
これなら「切り替えし」をしないと避けられない弾でも、適切に設定すれば
避けられますし。
284ポイント を手に入れた。
|
|
|
|
|
Name: M ..かけだし(1,465ポイント)
Date: 2009/03/03(火) 02:04
No:29836
|
|
Title: Re:弾を避けて自動で移動する方法
|
|
いろいろな回答ありがとうございます。
まず最初のステップとしては、
自分の周り八ヶ所から、弾のベクトルと、自分の移動ベクトルとのあたり判定で数カ所を除外すること。
になるとおもうのですが、
その八ヶ所にすべての弾の判定をすると、そこそこ負担がかからないでしょうか?
8*弾の数 の判定をすることになるということになるとおもうのですが、
まだ実装していないので、どの程度負担があるかわかりませんが、この数を減らすことは不可能でしょうか?
ちなみに弾の保存方法は、今のところ標準ライブラリの deque を使用しています。
(dequeって、誰も使っていないから、重いのかちょっと不安なんですけれどもw)
2倍のポイントを手に入れた! 604ポイント を手に入れた。
|
|
|
|
|
Name: Dixq (管理人) ..伝説なるハッカー(998,829ポイント)
Date: 2009/03/03(火) 02:34
No:29838
|
|
Title: Re:弾を避けて自動で移動する方法
|
|
なるほど、なかなか難しそうですね^^;
確かに撃って来る弾の規則はその弾幕によって予めわかっているわけですから、
ある意味いかさまっぽく内部でそれにあったパターンで避けるようにすればなんとかなりそうですね。
こういうAI的なプログラムってきちんと動けば感動しますよね〜w
117ポイント を手に入れた。
|
|
|
|
|
Name: M ..かけだし(1,663ポイント)
Date: 2009/03/04(水) 06:29
No:29931
| 解決!
|
Title: Re:弾を避けて自動で移動する方法
|
|
とりあえず、学んだことを生かして実際に試してみて、また困ったら
今度は、もっと具体的な質問を持ってきて訪問してみようと思います。
皆さん、ありがとうございました。
59ポイント を手に入れた。
|
|
|
|
Name: JugS ..入門者(4,478ポイント)
Date: 2009/03/03(火) 22:50
No:29903
|
|
Title: SRPGとクォータービュー
|
|
こんばんわ、JugSです
質問ではないのですが
自分の最終目標がSRPGを作ることなので、まずは情報収集ということで
SRPGといえば、まずはクォータービューという考えがあったので探してみたのですが、
これだという、サイトが見つかりません。
SRPGにプログラムついて書いてあるオススメサイトはありませんか?
特にクォータービューについてお願いします。
133ポイント を手に入れた。
|
|
|
|
Name: s-rush ..プログラマー(33,051ポイント)
Date: 2009/03/03(火) 23:16
No:29908
|
|
Title: Re:SRPGとクォータービュー
|
|
飛び入り参加で失礼します。
ロールプレイングゲームプログラミングの本を私は購入しましたが、
初心者にとってはかなり難しいと思います。
少なくとも私にとっては結構難しいと感じました。
この書籍では、クォータービューの製作ですので、
JugSさんにはぴったりかと思います。
ただ、御津凪さんのおっしゃるように、
言語はC++なので、ご注意ください。
127ポイント を手に入れた。
|
|
|
|
|
Name: JugS ..入門者(4,486ポイント)
Date: 2009/03/03(火) 23:41
No:29911
|
|
Title: Re:SRPGとクォータービュー
|
|
御津凪さん
「Queek」なかなか面白そうですね。
さっそく使ってみます。
s-rushさん
ご意見ありがとうございます。
RPGプログラミングの本は、前々から買うかどうか迷っていたんですが、
amazonのレビューではVC対応と書いてあったのですが、
Meでborlandを使っているのですが大丈夫でしょうか?
あと、C++の知識はどのようなことが必要ですか?
8ポイント を手に入れた。
|
|
|
|
|
Name: s-rush ..プログラマー(33,310ポイント)
Date: 2009/03/03(火) 23:52
No:29912
|
|
Title: Re:SRPGとクォータービュー
|
|
私はC++の勉強はほとんどしていないのでよく分かりませんが
(そろそろ本格的にC++にも手を出してみようと思ってはいますが)
クラスというものを多用していたような気がしました。
そのほかのことはすいませんが、よく分からなかったですorz
borlandのことに関しては書籍には何も書かれていなかったので、
分からないです。
RPGプログラミングはVC++2008に対応しているので、
その書籍の開発環境はVC++2008(2005)とされています。
しかし、C言語はもちろんのことC++も習得していることを前提として
話が進められています。
ですので、C++をまだ習得されていないのであれば、先にC++の勉強をすることをお勧めします。
RPGプログラミングでゲームをつくりながらC++の勉強をする・・・
少なくとも私にはできませんでした。
259ポイント を手に入れた。
|
|
|
|
|
Name: JugS ..入門者(4,545ポイント)
Date: 2009/03/04(水) 00:08
No:29917
| 解決!
|
Title: Re:SRPGとクォータービュー
|
|
ちょうどオブジェクト指向について勉強してますから、
クラスについての知識は多少あります。
クラスを使ったプログラムを見てみたいので、買ってみようと思います。
大学に行くので、新しいパソコンを買うのでborlandがだめならVCに切り替えます。
お早い返答ありがとうございました。
59ポイント を手に入れた。
|
|
|
|
|
Name: s-rush ..プログラマー(34,463ポイント)
Date: 2009/03/04(水) 00:17
No:29919
|
|
Title: Re:SRPGとクォータービュー
|
|
borlandは扱ったことはないので分かりませんが、
個人的にはVC++ 2008 EEがおすすめですよ。
追記
RPGプログラミングで書かれている戦闘システムは、
ご存知かどうかは分かりませんが、スパロボやGジェネのようなタイプです。
駒を進めてバトルって感じですかね・・・
ファイナルファンタジーのようなリアルタイム処理?とは違うので重ねてご注意ください。
132ポイント を手に入れた。
|
|
|
|
Name: M ..ぴよぴよ(861ポイント)
Date: 2009/03/02(月) 20:59
No:29809
|
|
Title: 無題
|
|
エクセルで敵を出現させるところで、もし”ReadError”と出た場合は具体的にどのへんが駄目なんでしょうか?
プログラムには誤字脱字はないと思うんですけど・・・
どなたか教えてください。
51ポイント を手に入れた。
|
|
|
|
Name: Justy ..伝説なるハッカー(325,438ポイント)
Date: 2009/03/02(月) 22:07
No:29814
|
|
Title: Re:無題
|
|
ttp://dixq.net/rp/11.html
の話ですか?
であれば、大抵の場合、
・ 対象のファイルのパスが違う
・ すでに他のプロセスから開かれているか何かでロックされている
・ アクセス権限がない
でしょうか。
他にも考えられることはありますが、とりあえずは上記の項目を疑って
調べてみてください。
163ポイント を手に入れた。
|
|
|
|
|
Name: たか ..初心者(7,287ポイント)
Date: 2009/03/02(月) 22:09
No:29815
|
|
Title: Re:無題
|
|
規約をよく読んで質問しましょう。
詳細を記述しないとまともな回答は得られないと思います。
> もし”ReadError”と出た場合は...
「もし出た場合は」というのは実行するたびに違うということでしょうか。
コンパイル自体通らないということでしょうか。
私の推測では「エクセルを使って敵を出現データを作ってみよう」のこの部分だと思うのですが。
if(fp == NULL){
printfDx("read error\n");
return;
}
ファイルが開けなかった場合に"read erorr"と表示する。という意味ですね
エクセルのファイルを置く場所を間違えていたりしませんか?
136ポイント を手に入れた。
|
|
|
|
|
Name: M ..ぴよぴよ(247ポイント)
Date: 2009/03/02(月) 22:49
No:29820
|
|
Title: Re:無題
|
|
すいません、次からちゃんと詳細も書けるよう心掛けます。
ファイルの場所も合ってると思いますし、特に問題もないと思います
ただreaderrorと出るのもたまに出なかったりよくわからないんですよ
コンパイラがBorlandC/C++用なんですけどそれによる違いとかもないですかね?
119ポイント を手に入れた。
|
|
|
|
|
Name: じゃが ..ぴよぴよ(866ポイント)
Date: 2009/03/02(月) 23:40
No:29828
|
|
Title: Re:無題
|
|
それは多分そのファイルを起動させてるからだと思います。
私と私の友人もそのファイルを起動させながらやるとなりました・・・。
ですので、そのファイルを上書き保存してから終了させればいけると思います。
原因はわかんないですが;対処法だけ;
違ったらすいません><
72ポイント を手に入れた。
|
|
|
|
|
Name: M ..ぴよぴよ(278ポイント)
Date: 2009/03/03(火) 00:07
No:29830
|
|
Title: Re:無題
|
|
あ、ほんとだ!
ありがとうこざいました、ちゃんと動きました!!
31ポイント を手に入れた。
|
|
|
|
|
Name: M ..かけだし(1,569ポイント)
Date: 2009/03/03(火) 20:20
No:29884
|
|
Title: Re:無題
|
|
エクセルで敵を出すことには成功したんですけど、同じ内容のデータをエクセルで打ち込んでみて読み込ませようとしても読み込んでくれないんですけど何故でしょうか?
他にもこちらのサイトからダウンロードしたファイルは1KBなのに僕が作ったファイルは15KBだったりするんです・・・
直接には影響はあまり無いんですけど、原因がわかりません。
どなたか教えて下されば嬉しいです。
104ポイント を手に入れた。
|
|
|
|
|
Name: Mist ..熟練のプログラマー(54,122ポイント)
Date: 2009/03/03(火) 20:38
No:29885
|
|
Title: Re:無題
|
|
CSV形式(*.csv)で保存されていますか?
まちがってEXCEL形式(.xls)で保存していません?
保存するときにファイルの種類で「CSV(カンマ区切り)(*.csv)」を選択しないとだめですよ。
49ポイント を手に入れた。
|
|
|
|
|
Name: M ..かけだし(1,604ポイント)
Date: 2009/03/03(火) 20:42
No:29886
| 解決!
|
Title: Re:無題
|
|
ありがとうございます!名前のところだけ変えても駄目だったんですね・・・
35ポイント を手に入れた。
|
|
|
|
|
Name: Libra ..初心者(8,496ポイント)
Date: 2009/02/08(日) 11:46
No:28423
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
プレイしてみました。
背景、エフェクト、演出も凄い凝っていて参考になります。
4種装備でそれぞれ1回ずつプレイしたのですが、レーヴァーテインと恋の迷路、過去を刻む時計がキツイです^^;
最終的にそして誰もいなくなるか止まりです・・・。
<敵がたくさんいるときに魔符のボムを打つとかなり処理落ちします
やはり、ボムの弾一つ一つに敵と撃ち消す弾の距離を計算していると思うので、処理落ちの原因になりますよね。風神録以降のボムは全て円やレーザー系といった形に、ボムの演算回数をかなり減らしていますが、マスタースパークとかの演出あった方がいいですよね。
質問事項
・製作期間はどのくらいでしょうか?
・メモリの動的確保とかは行ってますか?
304ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..中級者(10,018ポイント)
Date: 2009/02/08(日) 12:14
No:28425
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
コメントありがとうございます。m(_ _)m
>レーヴァーテインと恋の迷路、過去を刻む時計がキツイです^^;
レーヴァテインと過去を刻む時計はパターン化すれば簡単ですよ。
レーヴァはボスの周りが結構安全だったり、一時的な安置が上にあったりします。
覚えゲーですねw
過去を刻む時計レーザーをぎりぎりでかわし、自機狙い弾をあまり動かずに避ければ簡単ですよ。
恋の迷路は・・・
自分もきついです。orz
>やはり、ボムの弾一つ一つに敵と撃ち消す弾の距離を計算していると思うので、処理落ちの原因になりますよ
>ね。風神録以降のボムは全て円やレーザー系といった形に、ボムの演算回数をかなり減らしていますが、マス
>タースパークとかの演出あった方がいいですよね。
処理落ち覚悟で、弾を連射するボムを出してみたいと思って実装したのですが、
やはりちょっと無理がありました;
ボスのときはいいんですけどね。
>製作期間はどのくらいでしょうか?
自分はプログラムを知ったのは4か月前で、
約1か月間はゲームじゃなくてプログラムの勉強をしていました。
シューティングゲームを作り始めたのは3か月前ですね。
ゲームの基盤に 約1か月
内容作るのに 約20日
ぐらいですかね。このゲームの製作期間は約2か月です。
毎日少しずつ作っていきました。(一日、二弾幕が限界でした
だから結構作りが荒いところが多いと思いますよw
道中とか会話とかボムの演出とか...etc
残りの一か月は
紅魔郷1〜5面を作っていました。(配布は著作権的に無理なもの
途中で配布したくなってExtraを作ってみました。
>メモリの動的確保とかは行ってますか?
基盤を作り終えた後に動的に確保できるのを知って、とても落胆しました。orz
動的に確保していません。
412ポイント を手に入れた。
|
|
|
|
|
Name: Justy ..伝説なるハッカー(315,663ポイント)
Date: 2009/02/08(日) 12:22
No:28426
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
短時間ですが、遊んでみました。
……クリアはできませんでしたが。
東方を全くやったことのない私から見るとこの手の二次ゲームは
基本どれも同じに見えてしまいますが、これは少し違いました。
素晴らしいですね。龍神録の館があったとはいえ、とても初作成とは思えません。
松明とかのエフェクトも細かく作ってありましたし、ゲームとして普通に楽しめました。
フォグちっくな表現とか、3Dな背景とかDXライブラリでよくやったなぁと思います。
ここまでベースが出来ているので有れば、後は細かな点への配慮と物量ですね。
ただ、惜しむらくは(オリジナルはどうだか知りませんが)背景の3Dと2Dが
ちょっと合っていないことです。
地面は3Dで画面奥が進行方向であるのに対し、プレイヤーが出した弾は
画面の上に向かって飛んでいくので、結構違和感がありました。
イベント中はともかくゲーム本編中はもう少し見下ろし的なカメラの角度にするか、
全体を3D化した方がいいのかもしれませんね。
81ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..中級者(10,438ポイント)
Date: 2009/02/08(日) 13:22
No:28427
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
コメントありがとうございます。m(_ _)m
御褒めの言葉、とてもうれしいです。
ありがとうございます。
ここまで作れたのはこの掲示板があったのと、龍神録の館があったからです。
Justy様にはソートを教えていただきましたし、
管理人様、その他の方にもいろいろ教えていただきました。
龍神録の館があっても、自分一人で今のを作るとなると不可能だったと思います。
>ただ、惜しむらくは(オリジナルはどうだか知りませんが)背景の3Dと2Dが
>ちょっと合っていないことです。
>地面は3Dで画面奥が進行方向であるのに対し、プレイヤーが出した弾は
>画面の上に向かって飛んでいくので、結構違和感がありました。
言われてみれば違和感がありますね・・・
もう少し見下ろした角度にすればよかったです。
確かに、オリジナルではもう少し見下ろした感じになっています。
あまりにも見下ろすようにしたら変になると思いますがw
(ボスのグラフィックがこちらを見ているため)
ちょっと難易度高いですかね・・・
でも本家と違い、こちらはコンティニューできるのでクリアする分には簡単になっていると思います。
420ポイント を手に入れた。
|
|
|
|
|
Name: Dixq (管理人) ..伝説なるハッカー(985,226ポイント)
Date: 2009/02/08(日) 14:13
No:28428
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
おぉぉ!!すごい!!
こだわり方が素晴らしい〜♪
特に背景すごいですね〜。これDXライブラリの関数で描いてるんですか?
鳥肌たちました^^
エフェクトの使い方も本格的ですね。
スペルカードの演出に若干違いを持たせてましたねw
後紅魔郷なのに若干地霊殿はいってたりw
ただ、何度やっても「過去を刻む時計」でレーザーが出なかったので、
見えないところで何度も被弾して、、あの弾幕が越せませんでした(T_T
後、ここまで拘ってらっしゃるなら
弾にアルファ値を持たせて透過の演出してはどうでしょう?
弾が消える時、突然消えるので、消える時は、アルファ値でスーッっと消えていくようにしてみては。
家に帰ってじっくりやらせていただきます〜♪
175ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..中級者(10,808ポイント)
Date: 2009/02/08(日) 14:54
No:28429
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
コメントありがとうございます。m(_ _)m
>特に背景すごいですね〜。これDXライブラリの関数で描いてるんですか?
2/6に龍神録の館に3D背景を作ろう、ができて自分の作った関数等と比べてみましたが
かなり分かりやすく書かれていて、素晴らしいです。
DXライブラリで3Dを作るのはちょっと大変でした;
>エフェクトの使い方も本格的ですね。
>スペルカードの演出に若干違いを持たせてましたねw
>後紅魔郷なのに若干地霊殿はいってたりw
スペルカードの演出、霊夢の針ショットは地霊殿から持ってきましたw
霊夢ホーミングショットは風神録からです。(ボムは違いますが
魔理沙の魔の御札のほうのボムは緋想天からです。
若干アレンジ入ってます。
>ただ、何度やっても「過去を刻む時計」でレーザーが出なかったので、
>見えないところで何度も被弾して、、あの弾幕が越せませんでした(T_T
う〜ん・・・
こちらでは確認ができないのでなんとも・・・
家にあるもう一台のPCでやっても正常でした。
レーヴァテインのレーザーが出たら出るはずなんですけどね・・・(同じファイルの画像なので
でも、早速バグですねw
すみませんorz
(時計のレーザーは自分が書いたので見てほしいかもですw)←これが原因かもしれないですorz
>弾にアルファ値を持たせて透過の演出してはどうでしょう?
>弾が消える時、突然消えるので、消える時は、アルファ値でスーッっと消えていくようにしてみては。
弾がいきなり消えますか?
消える時にエフェクト出しているのですが、こちらも表示されていないのですかね。orz
他の方達は表示されているのでしょうか・・・
不安になってきました;
370ポイント を手に入れた。
|
|
|
|
|
Name: BEMANI ..上級者(15,541ポイント)
Date: 2009/02/08(日) 16:18
No:28430
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
>>yuさん
自分の所ではちゃんとレーザー描画されておりましたよ^^
ゲームの感想ですが、正直驚きました。
約二ヶ月でここまで作れるなんて・・・。
原作では恋のなんとか〜で終わってそれ以降何があるか知らなかったですが
続きにこんなのあるのか〜 と感心してました。
(誰もいなくなったで死にました;難しいんですね〜;)
DxLibの使い勝手と言うものは良く解らないですが
それにしても凄いと思います。
ちょっと気になったかなーと言うのは
キーコンフィグ画面で、押したボタンがなんなのかの表示が無かった・・・
絵が縦長に見えた(フルスクリーンモード時)くらいでした。
後は特に何も気にならなかったです・・・難易度以外はw
180ポイント を手に入れた。
|
|
|
|
|
Name: situmon ..上級者(19,781ポイント)
Date: 2009/02/08(日) 16:38
No:28431
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
やってみました。
すばらしかったです。
でもEXTRAとはいえかなり難しいと思ったのですが・・・
お気に触ったのならすいません。
アイテムをとるのが難しかったり、
弾の速度が速かったので、
でもこれは公開したくなるのも判る気がします。
いつかこんなすごいのが作れるのかな・・・
これからもがんばってください。
84ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..中級者(11,402ポイント)
Date: 2009/02/08(日) 17:29
No:28433
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
コメントありがとうございます。m(_ _)m
>>BEMANI様
>自分の所ではちゃんとレーザー描画されておりましたよ^^
報告ありがとうございます。
少し安心しました。
でも、原因は分かっていません;
>キーコンフィグ画面で、押したボタンがなんなのかの表示が無かった・・・
すみません。orz
そういえばそうですね、押したボタンが表示されていましたね。忘れていましたorz
多分気付かなかったのは、ジョイパッドを持っていないからだと思います;
自分でやってみないと不便さが分かりませんよね;
というか、キーコンフィグ自体ちゃんと正しく動いてくれるかわかりませんでしたが、
大丈夫そうですね。
>絵が縦長に見えた(フルスクリーンモード時)くらいでした。
ディスプレイの問題ですかね?・・・
すみませんが、こちらでは確認できません;
>後は特に何も気にならなかったです・・・難易度以外はw
やはり難しいですか;
でも、本家よりかなり当たり判定小さいですけどね・・・
その分、敵が打つ弾が多いですが;
結構ボムを多く打てるので危ないと思ったら迷わずボムを使えば長く生きてられますよ。
BEMANI様が、やってくれるって言ってくださいましたので、
ゲームを公開をするに至りました。
本当にありがとうございます。m(_ _)m
>>situmon様
>でもEXTRAとはいえかなり難しいと思ったのですが・・・
一応自分は全ショットタイプでノーコンティニュークリアしました;
自分が作っているゲームのバランスを取るのは難しいですね・・・。
>アイテムをとるのが難しかったり
低速移動で魔方陣内ならアイテムを回収できますよ。
また、見えていませんがある一定以上画面の上に行けば画面内のアイテムを全回収できます。
説明書つければよかったorz
>弾の速度が速かったので
これは公開してから自分も思いました。
中ボスが特に弾が速いですね;
調整ミスです。orz
>いつかこんなすごいのが作れるのかな・・・
ゲームを作り始めた頃の自分は酷かったですよw
角度をラジアンと知らずに、120とか入れてましたから・・・
何事も長く、真剣に取り組めばそこそこできるようになると思いますよ。
自分はまだまだですが;
(最初はゲーム作成目的でプログラム始めたんじゃないんですけどねw)
594ポイント を手に入れた。
|
|
|
|
|
Name: kazuoni [URL] ..熟練のプログラマー(55,181ポイント)
Date: 2009/02/08(日) 17:31
No:28434
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
こ、高校一年生・・・tkさんと同じ超若手デスネww
さっそく自分もDLさせていただきました。
自分もJustyさんと同様、3Dの部分は違和感がありましたが、
それ以外は素晴らしい出来だと思います。
絵も自作ですか?
つくづく絵が描ける人がうらやましいと思う今日この頃です。
素材探しより描いたほうが効率が良い気がしますw
制作お疲れ様でした。
2倍のポイントを手に入れた! 10ポイント を手に入れた。
|
|
|
|
|
Name: 桃印 ..入門者(3,566ポイント)
Date: 2009/02/08(日) 17:52
No:28438
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
東方の文字に釣られて飛んできました(えー
自作とはいえフリーでもないゲームを丸コピはうpどうかなーとか思いましたが、蓋を開けてみたら結構独自のアレンジがされてましたね。中ボスの美鈴とか結構良かったと思いますよ〜。
困った部分といえばレバ剣やスターボウブレイクの安地が使えなかったぐらいで(笑)、かなり良くできてると思います。特にカゴメカゴメ他の弾発射の軌跡、レバ剣のレーザー軌跡は凄く綺麗でした。
次はyuさんオリジナルのSTGとか期待しちゃっていいんでしょうか?w
ともあれ製作お疲れ様でした!
2倍のポイントを手に入れた! 484ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..中級者(11,959ポイント)
Date: 2009/02/08(日) 18:17
No:28440
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
コメントありがとうございます。m(_ _)m
>>kazuoni様
>絵も自作ですか?
自作の絵もありますが、大半はフリー素材です。
キャラの絵(ドット含む)は全てフリーの画像です。
自分はあまりうまく絵はかけませんw
絵より効果音を作るのが大変でした;
>>桃印様
>自作とはいえフリーでもないゲームを丸コピはうpどうかなーとか思いましたが
そうですね;
もっとアレンジすればよかったと思います。
でも、再現って書いてありますがあまり忠実じゃないですよねw(システム面が特に
また、フリーの画像で再現するのは結構きつかったです。
>困った部分といえばレバ剣やスターボウブレイクの安地が使えなかったぐらいで(笑)
レバ剣の安置は無くそうと思ったのですが、結局パターンになりましたw
スターボウブレイクの安置を意図的に作るのはかなりきついと思います;
というか回想起の方ではランダム要素が混ざってしまっていますw
>次はyuさんオリジナルのSTGとか期待しちゃっていいんでしょうか?w
とりあえず、今はテスト期間なので当分パソコンでプログラムを書く時間はなさそうです;
今後も作成していけるかわかりません・・・
でも、こんなにたくさんの方たちにやっていただけるとは思わなかったので、
もうちょっと丁寧に作ればよかったな〜と少し悔やんでいます。
オリジナルのSTGは絵、BGM的に不可能だと思いますw
時間があればバージョンアップしてみます。
557ポイント を手に入れた。
|
|
|
|
|
Name: Mikan [URL] ..初心者(6,360ポイント)
Date: 2009/02/08(日) 21:47
No:28456
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
遊んでみました^^
感想ですが、エフェクトすごいです♪ 綺麗に作られているしクォリティ高いです。
レーザーなども綺麗に出ていたので感激しました( ̄□ ̄;)ナント!!
すべて丁寧に作りこまれていて、自分のプログラムと大違い^^:
がんばらねばと、良い刺激をいただきました♪
次回作期待しています☆
109ポイント を手に入れた。
|
|
|
|
|
Name: 柏 ..上級者(17,366ポイント)
Date: 2009/02/08(日) 22:47
No:28466
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
こんばんは。
紅魔郷のエクストラがプレイ出来ると聞いて、閉店間際の電気店でゲームパッド買ってきましたw
全体の感想ですが、非常に面白かったです。
本家ではノーマルをノーコンティニュークリア出来ない程度の腕前なので、クリア出来ませんでしたが、
本当によく出来ていると思います。
プレイ動画でしか見た事はありませんが、弾幕の再現度も高く、普通に見入ってました。
高校一年生というのもビックリしました……まだまだ若いですから、いろんなものを吸収しつつ成長していくことを勝手に期待してます^^;
以下、つらつらと。。。
動作の件ですが、うちの平凡なノートパソコンでもさくさく動きました。
ですが、おっしゃられているようにボムの時と、中ボスが終わった直後(弾が多いとき)などにFPSが40くらいまで下がりますね。単純にうちのノートが低スペックな可能性もありますが……。
レーザーの件ですが、うちの環境では正常に表示されていました。
あと、夢の御札の時のボムですが、恋の迷路の時などに撃つとフランが消えてダメージ通らないのがキツかったですw 地霊殿は詳しくないので分からないのですが、こういう仕様なんでしょうか?
そういえば、会話中にもボムが撃てました(美鈴、フラン共に)。
まぁこれは自分で気をつければどうにでもなりますが^^;
製作お疲れ様です。
テスト勉強もがんばってください!
577ポイント を手に入れた。
|
|
|
|
|
Name: array [URL] ..熟練のプログラマー(48,100ポイント)
Date: 2009/02/08(日) 22:56
No:28470
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
とても完成度高かったです♪
紅魔館をプレイした事が無い私ですが、ニコニコをよく見ており、カリスマがどんなものかwktkしながらプレイさせてもらいましたw
まぁ、カリスマは出てこなさそうですが、楽しかったです。
まだオールクリアしてないのでオールクリア目指そうと思います。
それと、背景やエフェクトのクオリティーの高さに感動しました。
特に、bomを使用してから中心に渦を巻いて動くエフェクト?背景?がプログラムでどう表現されてるのか気になりました。
あと、気づいた点ですが、大破後の「F」の出るタイミングがおかしくないですか? 本来は、コンテゅー時に出現するものだと思ってました。※コンティニュー1歩手前の大破で出てきます。
それと、個人的要望として、龍神録にもある画面下に表示されているボスの位置を表す機能も欲しかったです。
やはり、それがないと難しいゲームがさらに難しく・・・
あ、画像は、私のプレイ最長記録ですw
391ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..中級者(13,038ポイント)
Date: 2009/02/08(日) 23:34
No:28475
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
コメントありがとうございます。m(_ _)m
>>Mikan様
>すべて丁寧に作りこまれていて、自分のプログラムと大違い^^:
>がんばらねばと、良い刺激をいただきました♪
こちらもそちらのゲームを楽しませていただいてますよ♪
ヴァージョンアップするごとにクオリティ上がってますね。
今後も楽しみに待っていますね♪
>>柏様
>高校一年生というのもビックリしました……まだまだ若いですから、いろんなものを吸収しつつ成長していく
>ことを勝手に期待してます^^;
まだ学校ではプログラムの授業をしていないので、
今後も新たな事を発見していくと思いますよ。(多分・・・
>動作の件ですが、うちの平凡なノートパソコンでもさくさく動きました。
>ですが、おっしゃられているようにボムの時と、中ボスが終わった直後(弾が多いとき)などにFPSが40くらい>まで下がりますね。単純にうちのノートが低スペックな可能性もありますが……。
通常時はいいですが、やっぱり弾を乱射するボムは重いですか・・・
もう少し弾を大きくして数を減らせばよかったです;
>あと、夢の御札の時のボムですが、恋の迷路の時などに撃つとフランが消えてダメージ通らないのがキツかっ
>たですw 地霊殿は詳しくないので分からないのですが、こういう仕様なんでしょうか?
紅魔郷でフランのスペルカード発動中でボムを打つとボムが終わるまでダメージが通りません。
原作通りの仕様です。
原作では消えるのではなく蝙蝠になるのですが、グラフィックがないため、消しましたw
>そういえば、会話中にもボムが撃てました(美鈴、フラン共に)。
>まぁこれは自分で気をつければどうにでもなりますが^^;
すみません・・・
こちらのミスです;
デバッグ中は会話を自動で飛ばせるようにしていたので気づきませんでした。orz
>>array様
>紅魔館をプレイした事が無い私ですが、ニコニコをよく見ており、カリスマがどんなものかwktkしながら
>プレイさせてもらいましたw
>まぁ、カリスマは出てこなさそうですが、楽しかったです。
実はラストスペルはフラン&レミリアで同時に出現させようと思ったのですが、
どうしても、弾幕がしょぼくなってしまいましたので、やめました。
(原作のストーリー的にもおかしくなります。レミリアは雨で紅魔館にいけないので霊夢達が代わり紅魔館へ)
添付したファイルは3か月前ぐらいのシステム作成時です。
>それと、背景やエフェクトのクオリティーの高さに感動しました。
>特に、bomを使用してから中心に渦を巻いて動くエフェクト?背景?がプログラムでどう表現されてるのか気に>なりました。
円形の波うった画像を何枚も重ねて小さくしているだけですw
本家とは比べ物にならないぐらい簡素なものです;
>あと、気づいた点ですが、「F」の出るタイミングがおかしくないですか? 本来は、コンテゅー時に出現す
>るものだと思ってました。※コンティニュー1歩手前の大破で出てきます。
紅魔郷ではコンティニュー時に出ますが、システムが地霊殿よりなので、地霊殿通りに一歩手前にしました。
そこで出さないとパワーでボムを打つので、ノーコンティニュークリアする場合がとてもきつくなってしまいます。
>個人的要望として、龍神録にもある画面下に表示されているボスの位置を表す機能も欲しかったです。
>やはり、それがないと難しいゲームがさらに難しく・・・
確かにフォーオブアカインド時とか誰に攻撃しているかわかりませんね・・・
今週の水曜日にでも皆さんの意見を参考に修正版をだしますね。
テストは18日からです・・・
1,079ポイント を手に入れた。
|
|
|
|
|
Name: 木霊 ..プログラマー(29,937ポイント)
Date: 2009/02/09(月) 00:28
No:28480
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
遊ばせて頂きました。相変わらず感想が下手なので簡潔ですが・・・
かなり難しいですね〜w 自分は中ボスで一回目のコンティニューを使ってしまいますw
しかし、ここまで作れてまだ高校生とは・・・末恐ろしいものを感じますね・・・
バグ報告↓
フォーオブアカインド最中に、リセット等でステージの最初からスタートした時、
中ボスが数体(当たり判定無し)出現したままの状態でゲームが進みます。
それでも構わずに中ボスまでたどり着くとアイテム大(赤)になります。
238ポイント を手に入れた。
|
|
|
|
|
Name: Dixq (管理人) ..伝説なるハッカー(985,843ポイント)
Date: 2009/02/09(月) 01:29
No:28485
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
こ、、、高1・・・。恐れ入りましたm(_ _;)m
よく見るとボスの体力が復活する時もちゃんとメーターがあがるような演出になってますし、
低速移動に切り替える瞬間のエフェクトもキレイですし、
龍神録でメンドクサクて実装しなかった部分がどれもきちんと実装してあってすごいなと思いました。
解説している元となっているゲームがこれじゃ全然ダメですね(´Д`;
龍神録2の制作が完了したら、今度は龍神録プログラミングの館IIでも作りますか〜w
で、、レーザーですが、あれから2回やりましたが、やはり表示されません。。。
データファイル解凍して中身見てみましたが、レーザーらしき画像はちゃんと入ってました。
もしよければそのレーザーの画像ファイル名教えてもらえませんか?
しかし何でこんなことがおこるんでしょうね・・。
龍神録公開した時も意味不明なバグが報告されてホント困惑しましたw
「画像が1/4かけて表示される」なんて変な報告もありましたw
ビデオカードも対応してる奴だし、ドライバも最新だといわれたら成す術が無いんですよね・・。
その時、ほとんど全てのPCで動作を保証するようなソフトを作る業者さんは大変なんだろうな〜と思いました。
今からその業者さんになるわけですが・・w
410ポイント を手に入れた。
|
|
|
|
|
Name: 烏 ..初心者(6,278ポイント)
Date: 2009/02/09(月) 01:30
No:28486
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
プレイさせていただきました。
紅魔郷のEXは実際にプレイしたことが無かったので、とても嬉しかったですw
3Dステージもとても良かったです。
コンテニューが無かったら中ボスさえ超えられませんでしたorz
水曜日の修正版も楽しみに待っています。
88ポイント を手に入れた。
|
|
|
|
|
Name: 御津凪 [URL] ..熟練のプログラマー(56,176ポイント)
Date: 2009/02/09(月) 10:54
No:28502
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
遅くなりましたが一回プレイさせていただきました。
(日曜に「プログラム修正してくれ」と会社に召喚されたので…)
完成度、高いですね。すばらしいと思います。
ただ、こちらではボム中やボスのスペル中は処理落ちが出て、
避けやすかったです。
実はEXステージは一度もプレイしたことがなかったのですが、
処理落ちのおかげで残りスペル4枚で続行不可(コンテニュー使い果たし)となりました。
> フォーオブアカインド
キャラに付いている魔方陣を見れば本体だと認識できるのでは?
ところで、欠ける・表示されないなどの現象ですが、恐らく DirectDraw のハードウェア対応が
問題なのではないでしょうか。
対応しているビデオカードが少ない(Direct3Dがメインとなったため)といわれていますし、
ハード対応していたら逆にそれが原因でおかしくなったり。
(特に「画像が1/4かけて表示される」なんてバグはハード側の問題らしいです)
318ポイント を落としてしまった。
|
|
|
|
|
Name: yu [URL] ..中級者(14,034ポイント)
Date: 2009/02/09(月) 17:47
No:28518
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
コメントありがとうございます。m(_ _)m
>>木霊様
>かなり難しいですね〜w 自分は中ボスで一回目のコンティニューを使ってしまいますw
修正版では、どうしても先が見たいけど見られない方に
コンティニューを何回もできるようにしたいと思っています。
難しくしすぎました。orz
>バグ報告
報告ありがとうございます。m(_ _)m
初期化をし忘れていました。orz
修正しておきます。
>>Dixq様
>低速移動に切り替える瞬間のエフェクトもキレイですし、
低速移動時の魔方陣は手書きで、良く見るとがたがたですw
>解説している元となっているゲームがこれじゃ全然ダメですね(´Д`;
>龍神録2の制作が完了したら、今度は龍神録プログラミングの館IIでも作りますか〜w
龍神録と比べると足元にも及んでいませんよ;
龍神録2をとても楽しみに待っています♪
館Uはもっと発展的な内容ですか?w
>もしよければそのレーザーの画像ファイル名教えてもらえませんか?
表示されませんか・・・;
画像ファイル名は "../flan_dat/img/bullet/l0.png"
これの3番目の先のとがった青いレーザーです。
コンピュータのことについてはあまり詳しくないので、何故バグが起きるか分かりません。orz
>>烏様
>コンテニューが無かったら中ボスさえ超えられませんでしたorz
雑魚敵は本当に適当に配置していますので、バランスがおかしいです。
ステージ後半とかボムつかわないときつい箇所があったりします。orz
>水曜日の修正版も楽しみに待っています。
バグを無くしたりとあまり変更点はありませんよw
>>御津凪様
>ただ、こちらではボム中やボスのスペル中は処理落ちが出て、
スペル中の背景は何枚も画像をαブレンドしているので重いかもしれませんね。
>フォーオブアカインド
>キャラに付いている魔方陣を見れば本体だと認識できるのでは?
自分は自機ばかり見ているので、上のボスを見ている暇がなくて
音を頼りにあたっているか判断してるのですが、
下に表示があったほうが上を見なくていいかな〜と思いました。
上記で書いた自分の書き方がいけませんでした。認識はできますね。すみませんorz
996ポイント を手に入れた。
|
|
|
|
|
Name: kaiten ..初心者(8,684ポイント)
Date: 2009/02/10(火) 08:32
No:28555
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
話を聞いてるだけでも面白そうで仕方ない…早く帰ってやってみたいw
画像の問題は自分も似たような問題に遭遇したことがあります。
vistaとXPで開発していたのですが、vistaでコンパイルしたものをXPで動かしたときに画像が不可解な表示になりました。
おそらく御津凪さんの言うとおりだと思うのですが一応。
2倍のポイントを手に入れた! 284ポイント を手に入れた。
|
|
|
|
|
Name: BEMANI ..上級者(15,871ポイント)
Date: 2009/02/10(火) 16:54
No:28605
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
>>yuさん
>キーコンフィグ
キーコンフィグ自体は出来てると思います。
(□, ×, R1しか使ってないので他のキーは解らないですけども;)
>難易度
ボスよりも道中のほうが難しく感じました。
あと、中ボスの弾がすごく速いように感じましたが
自分はビーマニで早い譜面を見慣れているので避けてて結構楽しかったりします><
一番最後はQEDで終わりですかね・・・。
なんとかクリアはできました。
実はノーコンテニューで最後まで・・・のような設定はないですよね?w
>BEMANI様が、やってくれるって言ってくださいましたので・・・
もしこれからも制作され、アップしようかどうか迷うことがあるのであれば是非アップして下さい。
そして、是非是非遊ばせてください^^
他の方の作品を見ると、自分の作品作りのモチベーションが上がったりして結構いい刺激になります。
227ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..中級者(14,265ポイント)
Date: 2009/02/10(火) 17:20
No:28608
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
コメントありがとうございます。m(_ _)m
>>kaiten様
>vistaとXPで開発していたのですが、vistaでコンパイルしたものをXPで動かしたときに画像が不可解な表示になりました。
自分のパソコンはvistaです。
管理者様のパソコンはXPだったような・・・
関係がありそうですね;
>>BEMANI様
>キーコンフィグ自体は出来てると思います。
実はバグを見つけました;
同じボタンにいくつものボタンを登録できてしまいます。orz
気を付けてください。
一つのボタンにキーを全て設定するとキーコンフィグが開けなくなります。
結果、セーブデータを消さないと再度設定ができなくなります。
>ボスよりも道中のほうが難しく感じました。
>あと、中ボスの弾がすごく速いように感じましたが
道中は覚えゲーですね・・・
中ボスの弾幕のバランスが悪かったので昨日修正しました。
>一番最後はQEDで終わりですかね・・・。
>なんとかクリアはできました。
>実はノーコンテニューで最後まで・・・のような設定はないですよね?w
今のシステム上、そのようにするのはちょっときつかったりしますw
QEDでラストです。
しかし、ノーコンテニュークリアすると若干ゲームに変化が・・・(本当にどうでもよいことですが
今後新しくゲームを作成するかわかりませんが、
ゲームができしだいアップしようかと思います。
自分の作ったゲームで遊んでいただけたのなら幸いです。
BEMANI様わざわざありがとうございます。
そちらのゲームもできることなら遊んでみたいです♪
73ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..中級者(14,398ポイント)
Date: 2009/02/11(水) 10:49
No:28651
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
今わかっているバグを修正したものをアップしました。
その他変更箇所もあります。
セーブデータは引き継げます。STGフォルダの中にsave_dat.datファイルを入れてください。
一番上の投稿記事のURLよりダウンロードしてください。m(_ _)m
また、最後まで行きたい人のためにコンテニューが何回でもできるようにしました。
コンティニューの仕方は説明書を読んでください。(通常通りではコンテニューできません。
VISTAではなくXPでコンパイルしたかったのですが、肝心のXPが無いです・・・
まだまだ、バグがありそうですが、楽しんで頂けたらうれしいです。
108ポイント を手に入れた。
|
|
|
|
|
Name: array ..熟練のプログラマー(48,200ポイント)
Date: 2009/02/11(水) 12:19
No:28655
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
過去を刻む時計 で私もレーザーが表示されなく乗り切れなかったのですが、修正されてました。
あと、ボスターゲットが実装されてて嬉しかったです。サブにも付いてて驚きましたw
やっとこさクリアできました♪楽しませてもらいました^^
100ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..中級者(14,632ポイント)
Date: 2009/02/11(水) 15:05
No:28664
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
>過去を刻む時計 で私もレーザーが表示されなく乗り切れなかったのですが、修正されてました。
そこは特に何も修正しなかったのですが・・・w
でも、表示されててよかったです。
コンパイル毎に何かが変わるのでしょうか・・・;
>やっとこさクリアできました♪楽しませてもらいました^^
こちらもプレイして頂きありがとうございました。^^
後、今回の修正で触ってもいないところにバグが発生しました。orz
スペルカード中にボムを打つとスペルカード名の表示がおかしくなります。
※修正しました。(原因は分かっていません;コンパイルしたら直りました)
自分のVC++の設定がおかしいのですかね。orz
度々すみません。m(_ _;)m
234ポイント を手に入れた。
|
|
|
|
|
Name: lbfuvab ..上級者(16,207ポイント)
Date: 2009/02/11(水) 22:15
No:28680
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
既知のバグかもしれませんが、
魔理沙でマスパを撃ってる最中にタイトルへ移動すると
エフェクトが消えなくなります。
後もしかして、弾の当たり判定とアイテム判定は兼用ですか?
72ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..中級者(14,684ポイント)
Date: 2009/02/11(水) 23:00
No:28685
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
バグ報告ありがとうございます。m(_ _)m
バグが多いですね;
修正しておきます。
>後もしかして、弾の当たり判定とアイテム判定は兼用ですか?
いえ、アイテムと弾は別にしてあります。
何か不具合が生じましたか?
52ポイント を手に入れた。
|
|
|
|
|
Name: 烏 ..初心者(6,690ポイント)
Date: 2009/02/11(水) 23:16
No:28687
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
さっそくプレイさせてもらいました。
何回でもコンテニューができる機能のおかげで最後までいくことができましたw(回数-5くらいでorz
サブターゲットは驚きましたw
波紋の前の演出がとてもよかったですw
とても楽しませてもらいました^^
ここからは疑問にですが、波紋のクリア時の全体が遅くなるところは、全体の処理を3回に1回という方法をとっておられるのでしょうか?
FPSが20になっていたためにそう思ったのですが、間違っていたらすいません。
224ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..中級者(14,960ポイント)
Date: 2009/02/12(木) 00:00
No:28691
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
コメントありがとうございます。m(_ _)m
>波紋の前の演出がとてもよかったですw
実は、そこの演出で一定時間動作ができなくなったと思いますが、
あれは咲夜用に作ったもので、ボス(及びボス弾幕)だけが動けるようになります。
(バグがありそうで怖い・・・)
肝心の咲夜が出ていませんがw
>波紋のクリア時の全体が遅くなるところは、全体の処理を3回に1回という方法をとっておられるのでしょう
>か?
>FPSが20になっていたためにそう思ったのですが、間違っていたらすいません。
はい。その通りです。
本当はFPSを強制的に落としたくなかったのですが、
変更箇所があまりにも多すぎたため、そのようにさせていただきました。
バグゲーですが、楽しんで頂けたのならこちらとしてもとてもうれしいです。^^
276ポイント を手に入れた。
|
|
|
|
|
Name: じゃが ..ぴよぴよ(794ポイント)
Date: 2009/02/12(木) 16:55
No:28708
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
プレイさせていただきました〜。
感想はいうまでもなくすごいですね@@
フォースオブアカインドとそして誰もいなくなるかの演出が少し変わっている部分が心に残ってますねw
一応ノーコンでできましたが、QEDが当たり判定見えるとはいえ避けれませんね・・・orz
それにしても、同じ高校生でしたか・・・。
自分も1ヶ月前から作り始めていますが、ちんぷんかんぷんなことが多すぎますw
yuさんも目標に頑張ってみたいと思います^^
2倍のポイントを手に入れた! 412ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..上級者(15,702ポイント)
Date: 2009/02/12(木) 20:00
No:28717
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
コメントありがとうございます。m(_ _)m
>一応ノーコンでできましたが、QEDが当たり判定見えるとはいえ避けれませんね・・・orz
おぉ!ノーコンテニュークリアできましたか。
プレイして頂きありがとうございます
自分はQEDを一機捨てるような気持ちでやっていますw
>自分も1ヶ月前から作り始めていますが、ちんぷんかんぷんなことが多すぎますw
>yuさんも目標に頑張ってみたいと思います^^
始めは自分も分からないことだらけでしたが、だんだん慣れてくると思いますよ。
後、シューティングを作成していると丁度、高校一年生の代数幾何の分野とかぶっていたので、(若干物理学も
(三角比,2点間の距離,円の方程式,弧度法,加法定理・・・)
学校での数学が簡単になりましたw
楽しくプログラムの勉強もできましたし、数学の勉強もできたのでよかったと思います。
(普通に勉強したほうが早いと思いますが・・・)
ソースが汚いので目標にしてはいけない気がします・・・
いつか、オープンソースを出来るようなものが作れたら、公開したいなぁ〜と思っていますが、
まだまだ先になりそうです;
今度は汚いプログラムを書きなおしてメモリの動的確保、クラス化をしたいと思っています。
今は忙しくてできませんがorz
2倍のポイントを手に入れた! 742ポイント を手に入れた。
|
|
|
|
|
Name: 通りすがり ..中級者(13,984ポイント)
Date: 2009/02/12(木) 20:28
No:28719
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
東方と聞いてやらせていただきました。
あまりに凄かったんでZUN2代目!?なんて思ったりしましたww
自分のPCVistaなんですが「過去を刻む時計」のレーザーが出ませんでしたね。
あと新しいバグ?
「そして誰もいなくなるのか?」のスペカの終わる前にボムを使うと、
QEDでボスが消えずにボムのダメージ与えられました。(1回のみ)
説明下手ですいません。
6ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..上級者(15,950ポイント)
Date: 2009/02/13(金) 00:03
No:28728
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
コメントありがとうございます。m(_ _)m
>あまりに凄かったんでZUN2代目!?なんて思ったりしましたww
ありがとうございますw
でも、Dixq様の方が近いZUNさんに近いと思いますよw
>自分のPCVistaなんですが「過去を刻む時計」のレーザーが出ませんでしたね。
そうですか・・・
こちらとしてもとても残念です;
せっかくやっていただいているのに、テンション下がりますよね・・・
なんとか改善策はないものでしょうかorz
>「そして誰もいなくなるのか?」のスペカの終わる前にボムを使うと、
>QEDでボスが消えずにボムのダメージ与えられました。(1回のみ)
ボムを発動した瞬間にボスを消すか消さないかの判定がでるので、
そのようなことがおきてしまいます。
今度時間があれば修正しておきますね。
後、fpsダウン時にリセットすると戻らないバグが・・・(ゲームを再度開始して、ボスまでいくと直ります
本当にこのようなバグが多いですorz
248ポイント を手に入れた。
|
|
|
|
|
Name: 木霊 ..プログラマー(29,770ポイント)
Date: 2009/02/13(金) 03:11
No:28736
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
「過去を刻む時計」のレーザーですが、自分のPCでは
霊夢使用時にオプション「夢の御札」時は表示されますが
オプション「霊の御札」時は表示されませんでした。
魔理沙はまだ未使用なので不明です。
はっきりと見えてるわけじゃないのですが、レーザー部分が
時計部分の内側に「拡大されずに」表示されてるような気がしました。
(時計部分の内部が青く見えたのでそう思った)
レーザー部分が表示されない時の使用キャラと使用オプションも
聞いてみた方がいいかもしれませんね。
キャラ、オプションに関係なさそうならOSやグラフィックボードの問題という事に絞れそうなので。
167ポイント を落としてしまった。
|
|
|
|
|
Name: yu [URL] ..上級者(16,094ポイント)
Date: 2009/02/14(土) 16:01
No:28757
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
>木霊様
自分で霊夢を何度か使用し、
レーザーが表示されないのを確認しました。
調べたところ、霊夢のボム使用時に配列の最大要素数を超えてアクセスしていました;
それで、レーザーのハンドルが消えてしまっていました。
勝手に自分で環境のせいにしていました。
木霊様本当にありがとうございました。m(_ _)m
そして、皆様すみませんでした。orz
(想定しないアクセスは危険ですね・・・)
修正したのをアップしましたので、今までので遊ぶのはやめてください。
これでレーザーが表示されるようになるはず・・・です。
144ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..かけだし(1,905ポイント)
Date: 2009/02/21(土) 04:42
No:29067
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
プレイしてみました。
高校生でここまでできるとは…orz
当たり判定のエフェクトも良く出来ていますし、
背景も3D描画されていてとても綺麗でした。
ただ、背景の関係でショットの射出方向が少し違和感がありました。
もう一つ違和感を感じたことですが、
会話の時に表示されるキャラの立ち絵が縦長になってしまっていました。
これはおそらく開発なさった環境とこちらの環境のうち、
ウィンドウの縦横の比率が違うことに原因があると思います。
私のパソコンのウィンドウは13.3型なので少し横の幅が狭いです。
中ボスが美鈴になっていて、本家とはまた違った形に仕上がっていると思います。
美鈴の弾幕も良かったです。
紅魔郷Extraではコンテニューがないのでカゴメカゴメまでしか行ったことがありませんが;;
恋の迷路はやはり覚えゲーですね…
212ポイント を手に入れた。
|
|
|
|
|
Name: lawliet ..ぴよぴよ(84ポイント)
Date: 2009/02/21(土) 06:31
No:29071
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
playしました
完成度高いですね
3D背景に感動しました
play度も高いので 楽しめます^-^
しかし やりますね^^;
素晴らしいです
68ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..上級者(16,890ポイント)
Date: 2009/02/21(土) 20:13
No:29123
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
コメントありがとうございます。m(_ _)m
>>cosmo様
背景がやはり変ですかw
次回作るときがあったら気を付けたいと思います。
自分のパソコンはノートPCで、画面が横長なので
幅が狭い画面だと縦長に見えてしまうのかもしれませんね・・・
>美鈴の弾幕も良かったです。
ありごとうございます。
美鈴はこんな弾幕じゃねーよ。とか言われることを覚悟していた分うれしいですw
(ニコニコ動画等にUPしたら言われると思いますが)
>>lawliet様
ありがとうございますm(_ _)m
でも、ゲームの物量が少ないので、何かを追加しようかと考えています。
今はテスト期間中なのできついですが、
今度は音楽同調弾幕を作ってみようかなーっと(2番煎じですが・・・
思っているので、
完成しましたら、よければ遊んでやってください。
30秒程度作りましたが難易度はLuna程かも・・・orz
そしてセンスが無く、とてもしょぼいものになってしまいましたw(30秒で伝わる程度の低クオリティ
管理者様の作成された同調弾幕のすごさを改めて実感しました。
290ポイント を手に入れた。
|
|
|
|
|
Name: あふぉげ ..ぴよぴよ(95ポイント)
Date: 2009/02/21(土) 21:07
No:29124
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
おぉ・・・これは凄いクオリティ・・・
Cを独学で初歩の初歩をやってる自分とは程遠いw
最初はカゴメカゴメで詰むとはorz
全画面ならもっとマシだったかなぁ・・・
とりあえずこれは素晴らしいです!(大した事言えなくてすみません)
あと画像の表示に使ったのってreadmeに書いてあるやつだけですよね?
あんなに色々出来るのか・・・オソロシヤ
95ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..上級者(17,360ポイント)
Date: 2009/02/22(日) 08:30
No:29144
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
コメントありがとうございます。m(_ _)m
>Cを独学で初歩の初歩をやってる自分とは程遠いw
自分も5か月程前はC言語の存在すら知りませんでしたよw
学校のプログラムの授業の予習になるかなーと思って始めました。
まだ学校で一回もプログラムの授業をやっていませんが;
(まずC言語なのか?・・・orz)
>あと画像の表示に使ったのってreadmeに書いてあるやつだけですよね?
素材集め、SE作成がゲーム作成で一番時間がかかったかもしれませんorz
プログラム書いたけど肝心の素材が無い!ってことがよくありました。
画像は微妙に自分で書いたりもしています。
弾画像とか、魔方陣とか、エフェクト画像とか・・・
キャラとかはペンタブを持っていないので書けませんw
224ポイント を手に入れた。
|
|
|
|
|
Name: Dixq (管理人) ..伝説なるハッカー(993,854ポイント)
Date: 2009/02/22(日) 19:51
No:29153
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
以前何度トライしても見えないレーザーで打ち破られてたのでしばらくプレイしてませんでしたが、
バグ直ったバージョンでやってみました。
無事エンディング見れました。難易度もちょうどよく、とても楽しめました^^
きっとここを改善するとグッとクオリティアップするだろうなと思う点があったのでかいて見ます。
・移動開始を滑らかに
・シーン切り替わりを滑らかに
移動開始やシーン切り替えを滑らかにするのは面倒なのですが、この辺に気を使う事でクオリティアップするのでは無いかと思います。
例えば3D背景が最初視点移動すると思いますが、その移動角度がある時間一定の速さで変わってると思います。
これを滑らかにするとグッとクオリティアップになるのではないでしょうか。
今視点移動する時間が、カウント100〜200の間だとします。
角度MoveAngleに入れたPI/360ラジアンずつ視点移動しているとすると
初期化でMoveAngle=PI/360を入れたのち
if(count>100 && count<=200){//視点移動
視点 += MoveAngle;
}
みたいになってると思いますがこれを
初期化でMoveAngle=0;としたのち
if(count>100 && count<=130){//角度段々加速
MoveAngle += PI/360/30;
}
else if(count>170 && count<=200){//角度段々減速
MoveAngle -= PI/360/30;
}
if(count>100 && count<=200){//視点移動
視点 += MoveAngle;
}
こんな風に、加速、減速をしてみてはどうでしょう?
ちなみに具体的な値は今適当に考えたので全然あわないかもしれません。
後、前者の方法はPI/360*100ラジアン移動するのに対し、後者はそれより少ないので注意です。
598ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(5,752ポイント)
Date: 2009/02/24(火) 19:04
No:29253
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
起動する度に毎回メッセージボックスが出てくるのはちょっと…と思います。
最近ですが、
「今後このメッセージを表示しない」
というチェックボックス付のメッセージボックスを作成する関数を見つけました。
#include "shlwapi.h" ←SHMessageBoxCheck関数が定義されているヘッダー
#pragma comment(lib,"shlwapi.lib")
//メッセージボックス
void SHMessageBoxCheck(){
(NULL ,
TEXT("フルスクリーンモードで起動しますか?(推奨)") ,
TEXT("スクリーン設定") ,
MB_YESNO | MB_ICONQUESTION ,
IDNO,TEXT("{(ここに何らかの半角英数を指定しておく
…おそらくレジストリの場所を意味?)}"));
}
これを使うと毎回メッセージボックスが表示されなくなると思います。(本家みたいに)
SHMessageBoxCheck関数の解説ページ:
↓
日本語ページ(ブログ)
h ttp://www.usefullcode.net/2006/12/post_43.html
MSDNリファレンス(英語)
h ttp://msdn.microsoft.com/en-us/library/bb773836(VS.85).aspx
も書いておきます。
宜しかったら是非使ってみてください。
2倍のポイントを手に入れた! 754ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..上級者(17,917ポイント)
Date: 2009/02/24(火) 20:57
No:29262
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
返信が遅れてしまいました。すみません。
>>Dixq様
>無事エンディング見れました。難易度もちょうどよく、とても楽しめました^^
こちらも、プレイして頂きありがとうございます^^
楽しめたのならこちらとしてもとてもうれしいです。
>移動開始を滑らかに
本当ですね。
視点の動きがカクカクしてます。
わざわざありがとうございます。m(_ _)m
滑らかに移動するように修正しておきます。
>>cosmo様
フルスクリーンモードか、ウィンドウモードかを、ゲーム内で変更したかったのですが、
変更できるようにしたら画像が途切れ途切れに描画されてしまい、実装できなかったので
そのような形をとらせて頂きました。(一回目の変更は大丈夫ですが二回目からおかしくなりました
毎回選択するのは面倒くさいですよね;
SHMessageBoxCheck()関数ですが、
僕はC言語以外の知識がないので使い方がさっぱりですw
URLの方を覗いてみましたが全く分かりませんでした・・・
わざわざ教えていただき申し訳ないのですが、
コンフィグ用のexeをひとつ作って代用したいと考えています。
456ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(5,838ポイント)
Date: 2009/02/24(火) 22:24
No:29277
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
>SHMessageBoxCheck()関数ですが、
>僕はC言語以外の知識がないので使い方がさっぱりですw
う〜んそうですか…ちょっと余計だったかもしれないです…(**;
>フルスクリーンモードか、ウィンドウモードかを、ゲーム内で変更したかったのですが、
>変更できるようにしたら画像が途切れ途切れに描画されてしまい、実装できなかった
と言うのはどういうことでしょうか?綺麗に描画されずにしましまになってしまう…ってことですか?
ゲーム内で選択するときは選択した後に画面の解像度が変わってしまうと思いますので、
設定を変更したらもう一度ゲームを再起動させるような実装なんか良いかもしれません。
コンフィグ用のexeを一つ作るのも良いですね!
次回の修正版に期待してます。
86ポイント を手に入れた。
|
|
|
|
|
Name: 御津凪 [URL] ..熟練のプログラマー(62,049ポイント)
Date: 2009/02/24(火) 22:35
No:29280
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
>フルスクリーンモードか、ウィンドウモードかを、ゲーム内で変更したかったのですが、
>変更できるようにしたら画像が途切れ途切れに描画されてしまい、実装できなかった
これは、切り替えを行なった時に、
読み込んだ画像などを再度読み込みなおしていないのが原因かと思われます。
(一部の画像などが失われるため)
切り替え時に読み直すのも良いですが、
再起動を行なわせたほうが簡単でしょう。
168ポイント を手に入れた。
|
|
|
|
|
Name: Justy ..伝説なるハッカー(321,845ポイント)
Date: 2009/02/24(火) 22:45
No:29283
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
>SHMessageBoxCheck
一応念のため。
これが使えるのは Windows2000以降に限られます。
DXライブラリが Windows98などの旧世代のOSでも動くことを考えると、
もし SHMessageBoxCheck関数を使うのでれば OSを見分けて使えないようなら
別の方法で訊くようにした方がいいかと思います。
>>変更できるようにしたら画像が途切れ途切れに描画されてしまい
>と言うのはどういうことでしょうか
御津凪さんが書かれてるように、サーフェースがロストしているんでしょうね。
そのあたりについては、ChangeWindowMode()のリファレンスの方で<注意>のところに
特記されています。
344ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..上級者(18,076ポイント)
Date: 2009/02/25(水) 13:09
No:29325
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
>>cosmo様、御津凪様、Justy様
ウィンドウモードを変更したときにグラフィックハンドルが消えていたので、
再度ロードはしていました。
ですが・・・裏画面化の設定まで消えているとは・・・orz
リファレンスを見てきて気が付きました。
>>変更できるようにしたら画像が途切れ途切れに描画されてしまい
あいまいな表現でしたorz
すみません;
これで、ゲーム内でウィンドウかフルスクリーンかを変更できるようになりました^^
ありがとうございました!
159ポイント を手に入れた。
|
|
|
|
|
Name: GIL ..ぴよぴよ(68ポイント)
Date: 2009/02/25(水) 20:01
No:29372
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
こんにちは。
ゲームの方プレイさせて頂きました。
1から10まで原作に忠実かと思いきや、独特のアレンジもあってとても楽しめましたよー
しかしどこか懐かしかったです。ノーコンテニューは出来ませんでしたが・・・
私のボロPCのせいかも知れませんが、弾数が多い所では40辺りまでFPSが落ちることもあります。
主に道中が重かったですね。今後のバージョンアップに勝手に期待してますw
なんだかプログラム組みたくなりました。館に行ってきます。ノシ
68ポイント を手に入れた。
|
|
|
|
|
Name: ひよこ ..上級者(18,147ポイント)
Date: 2009/03/01(日) 00:07
No:29598
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
ゲームをプレイさせてもらいましたが、余りにすごいので驚きました。
ここまですごい弾幕は・・・かんたんな計算しかできない自分には無理ですね。
バグはなかったと思います。あと機能について何ですがライフが0になってあと何回?のところで0からでも
キーを押すと再開できるがいいと思いました。そのおかげで無事?クリア。
新しくゲームができたら個人的に見てみたいです。
162ポイント を手に入れた。
|
|
|
|
|
Name: yuuki ..ぴよぴよ(168ポイント)
Date: 2009/03/01(日) 21:52
No:29654
|
|
Title: Re:自分なりに東方を再現してみました。
|
|
はじめまして、yuukiと申します。
突然ですが、東方のフリー画像などをどこで取っていますか?
僕も東方を自分なりにカスタマイズして楽しみたいのですが、yahooなどで探しても、良い画像が一向に出ません(汗)
できればある場所などを教えていただけないでしょうか?
ほんとに突然ですいません(汗)
お願いします m(_ _)m
108ポイント を手に入れた。
|
|
|
|
|
Name: 且 ..ぴよぴよ(55ポイント)
Date: 2009/03/02(月) 02:50
No:29761
|
|
Title: 無題
|
|
一通りやってみました。面白かったです。
これはC言語なのですか?
でしたら、ぜひ一通りソースを公開してほしいです
55ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..上級者(18,980ポイント)
Date: 2009/03/02(月) 14:53
No:29781
|
|
Title: Re:無題
|
|
>>yuuki様
すでにDixq様が仰っているように、Readmeをご覧になってください。
使用させて頂いた画像の全てのサイトの名前(著作者)が書いてあります。
名前で検索すれば出てくるかと思います。
微妙に自分で作成したものありますが、大半はエフェクトとか文字です。
画像はいいのですが、BGMは許可を貰って使わせて頂いているものがありますので、注意してください。
素材集めがかなり大変でした。orz
かなり多くのサイトを回りましたw
>>且様
プレイしていただきありがとうございます。
ソースですが、
自分のソースはとても汚くて、人に見せられるようなものでは無いです。すみませんorz
変数名、関数名が分かりにくいですし、
処理も回りくどいことをしたりしています。(特にゲーム作成を始めたときに作ったもの
弾幕のソースなら全然いいですよ。(龍神録で言うとboss_shotH.cppです)
龍神録と基本的に変わっていないのでw
ソースは一度書き直したいと思っています。
いつになるか分かりませんが・・・
416ポイント を手に入れた。
|
|
|
|
|
Name: 脱出の人 ..ぴよぴよ(365ポイント)
Date: 2009/03/02(月) 20:52
No:29808
|
|
Title: Re:無題
|
|
yuukiさん
>DLしても、なぜかメモ帳になってしまって・・・
>意味のわからない文字がならんでいるのです
多分解凍ソフトが無いんじゃないですか?
解凍ソフトでググれば出てきますよ。
そのファイルの拡張子が.zipなら解凍ソフトが必要ですよ。
質問に答えるのが下手なので何かおかしかったらすいません。
88ポイント を手に入れた。
|
|
|
|
|
Name: yuuki ..ぴよぴよ(299ポイント)
Date: 2009/03/03(火) 17:58
No:29876
|
|
Title: Re:無題
|
|
>yuさん
KMAP様のところに行っても、ユーザー枠がいっぱいです、みたいなことを言われるのですが、
メールが来ません>< もしよろしければ、ドット絵をくれませんか?
48ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..上級者(19,097ポイント)
Date: 2009/03/03(火) 18:59
No:29879
|
|
Title: Re:無題
|
|
KMAP様のドット絵は弾幕風Wikiにありましたよ。
HPはアクセスできないらしいです。
ttp://f27.aaa.livedoor.jp/~thdmhul/pukiwiki/pukiwiki.php?%C1%C7%BA%E0
本当に素晴らしいドット絵ですね・・・
92ポイント を手に入れた。
|
|
|
|
Name: ざこ ..プログラマー(25,439ポイント)
Date: 2009/03/03(火) 15:48
No:29864
|
|
Title: MoveFileについて
|
|
APIのMoveFileとはどういうものでしょうか? 中身自体はMSDNで調べてわかってるんですけど
MoveFile("C:\\○○",C:\\●●");
○○がテキストファイル、●●がフォルダ名です。フォルダの中にテキストファイルが移動するというものですか?
実行してもまるで変化がないです。
85ポイント を手に入れた。
|
|
|
|
Name: バグ ..ハッカー(149,526ポイント)
Date: 2009/03/03(火) 16:31
No:29870
|
|
Title: Re:MoveFileについて
|
|
ディレクトリ名だけでは駄目だと思います。
第2引数をディレクトリ名+ファイル名に変更してはどうでしょうか?
45ポイント を手に入れた。
|
|
|
|
|
Name: ざこ ..プログラマー(25,492ポイント)
Date: 2009/03/03(火) 17:24
No:29872
|
|
Title: Re:MoveFileについて
|
|
うーんやっぱなりませんね。ファイル名がおかしいのかな
フォルダ名はC:\VC++\DragDrop\Debug
ファイル名はC:\VC++\DragDrop\ReadMe.txt;
パッと見何かおかしい所あればおしえてください
53ポイント を手に入れた。
|
|
|
|
|
Name: 御津凪 [URL] ..熟練のプログラマー(65,598ポイント)
Date: 2009/03/03(火) 17:40
No:29874
|
|
Title: Re:MoveFileについて
|
|
見たところパス表記自体に問題はないようですね。
(上記のパスで、ファイル名にセミコロンが書かれているのは単なる入力ミスでしょうか?)
MoveFile("C:\\VC++\\DragDrop\\ReadMe.txt","C:\\VC++\\DragDrop\\Debug");
MoveFile("C:\\VC++\\DragDrop\\ReadMe.txt","C:\\VC++\\DragDrop\\Debug\\"); // \\をつけてみる
MoveFile("C:\\VC++\\DragDrop\\ReadMe.txt","C:\\VC++\\DragDrop\\Debug\\ReadMe.txt"); // 移動先もフルパス
これらの方法ではダメ(MoveFile 関数が 0 を返す)だったということですか?
207ポイント を手に入れた。
|
|
|
|
|
Name: ざこ ..プログラマー(25,495ポイント)
Date: 2009/03/03(火) 18:14
No:29878
| 解決!
|
Title: Re:MoveFileについて
|
|
すいません。ちゃんと移動しました。
MoveFile("C:\\VC++\\DragDrop\\ReadMe.txt","C:\\VC++\\DragDrop\\DebugC:\\VC++\\DragDrop\\ReadMe.txt");
としていました。。すいませんでした
3ポイント を手に入れた。
|
|
|
|
Name: ユカイ ..ぴよぴよ(770ポイント)
Date: 2009/03/03(火) 14:05
No:29854
|
|
Title: kazuoniさんにお願いです。
|
|
すみませんが、前のタイトルで、敵がステージにランダムに6匹表示されるというやつでもう一回プログラムを載せていただけませんか?
あと、全部捕まえたらゲームクリアーの表示がでるようにするには、どうやったらいいですか?
85ポイント を手に入れた。
|
|
|
|
Name: kazuoni [URL] ..熟練のプログラマー(67,664ポイント)
Date: 2009/03/03(火) 14:27
No:29855
|
|
Title: Re:kazuoniさんにお願いです。
|
|
>もう一回プログラムを載せていただけませんか?
個人的なことでしたら、自分のページに来て、
メールフォームなり、BBSなりにその旨を書いて下さい。
ここは皆さんが参考にされる場でもありますんで。。
>全部捕まえたらゲームクリアーの表示がでるようにするには、どうやったらいいですか?
自分で考えましたか?
「こういう流れで考えて、ここまで記述しました。しかし、うまくいきません」
なら適切かどうかは別として、
アドバイスができると思います。
今後、どう膨らましていくかにもよりますが、
もしエンド画面のみ作りたいのなら、
if文でflagが立ったらゲームの処理をやめ、エンド画面のみを描写する
で良いと思います。
これが、オープニング画面、ロード画面、エンディングロール・・・
なんて増えていきそうなら、switch文で分岐していくと見やすいコードになります。
292ポイント を手に入れた。
|
|
|
|
|
Name: ユカイ ..ぴよぴよ(782ポイント)
Date: 2009/03/03(火) 14:38
No:29856
|
|
Title: Re:kazuoniさんにお願いです。
|
|
すいません、気をつけます。
一応こんな感じなんですけど、やはりエラーがでますね。
12ポイント を手に入れた。
|
|
|
|
|
Name: kazuoni [URL] ..熟練のプログラマー(67,894ポイント)
Date: 2009/03/03(火) 15:44
No:29863
|
|
Title: Re:kazuoniさんにお願いです。
|
|
クラスを使うでよろしいですか?
まずクラスの構造を勉強してみてください。
申し訳ないですが、まだC++は勉強不足で人に説明できるほどではありません。
なので、このようなクラスを作成して、こういうことを実現したい!
と明確にすると、他の方からアドバイスがいただけるかもしれません。
明確にするところは、
「protected派生にある、GAMESTATEなどの、コードから推測できないもの(関数、型含めて)」
です。
ユカイさんが何の為にクラスを利用したいかが自分には理解しかねます。
関数ではだめなのですか?
230ポイント を手に入れた。
|
|
|
|
|
Name: ユカイ ..ぴよぴよ(821ポイント)
Date: 2009/03/03(火) 15:48
No:29866
|
|
Title: Re:kazuoniさんにお願いです。
|
|
関数でも大丈夫です。
追加したプログラムはたぶんこれかな?って感じのを入れただけです。
39ポイント を手に入れた。
|
|
|
|
|
Name: ユカイ ..ぴよぴよ(848ポイント)
Date: 2009/03/03(火) 16:18
No:29869
|
|
Title: Re:kazuoniさんにお願いです。
|
|
はい、がんばってみます!!
また質問するかもしれないです。
27ポイント を手に入れた。
|
|
|
|
Name: situmon ..上級者(21,575ポイント)
Date: 2009/03/02(月) 19:29
No:29802
|
|
Title: エラーが・・・
|
|
switch(main){ //mainの値で分ける
case 0://タイトル表示
if(CheckSoundMem(sound_bgm[0]) == 0){//タイトルの曲を流す
PlaySoundMem( sound_bgm[0] , DX_PLAYTYPE_BACK ) ;
}
Title(main,by);//タイトル画面を表示させる
if( Key[KEY_INPUT_DOWN]==1){//下を押したら
if(by<304)
by+=48;
}
if( Key[KEY_INPUT_UP]==1){//上を押したら
if(by>256)
by-=48;
}
if (Key[KEY_INPUT_RETURN]==1){//決定キーを押されたら
if(by==256){
if(CheckSoundMem(sound_bgm[0]) == 1){//タイトルの曲をとめる
StopSoundMem( sound_bgm[0] ) ;
}
main=1;//ゲームが始まるようmainフラグを1に
}
if(by==304)
DxLib_End() ;//終了
}
break;
case 1:
//ゲームの中身ですが長いので省きます。
break;
}
としたら
main.cpp(54) : error C3872: '0x3000': この文字を識別子で使用することはできません
main.cpp(55) : error C2065: ' ' : 定義されていない識別子です。
main.cpp(55) : error C2143: 構文エラー : ';' が 'case' の前にありません。
とでてきましたが直接の原因がわかりません。
どうすればわかりますか?
2倍のポイントを手に入れた! 638ポイント を手に入れた。
|
|
|
|
Name: situmon ..上級者(21,619ポイント)
Date: 2009/03/03(火) 12:02
No:29848
| 解決!
|
Title: Re:エラーが・・・
|
|
そういうことですか!
やはりエラーはそのとおりのことをいっていたのですね。
バグさまMistさまありがとうございました!
44ポイント を手に入れた。
|
|
|
|
Name: cppb ..ぴよぴよ(313ポイント)
Date: 2009/03/02(月) 23:22
No:29824
|
|
Title: GetHitKeyStateAll_2関数について
|
|
はじめまして。
先日プログラミング(C++)を始め、C言語〜ゲームプログラミングの館〜で勉強させて頂いています。
勉強していて少し詰まったところが。
int GetHitKeyStateAll_2(int KeyStateBuf[]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key[i]==1) KeyStateBuf[i]++;
else KeyStateBuf[i]=0;
}
return 0;
}
GetHitKeyStateAll_2関数(というのでしょうか?)を
GetHitKeyStateAll_2(Key)
と実行した際、Keyに[KEY_INPUT_UP]などが代入される理由がわかりませんでした。
(もちろんコピーして実行すると正しく動くのですが)
これがわかれば、もしかしてreturn以外でも値を返せる?複数返せる?と思いまして。
わかる人からすれば、おかしな質問だったりするのかもしれませんが、
教えて頂けると幸いです。
313ポイント を手に入れた。
|
|
|
|
Name: kazuoni [URL] ..熟練のプログラマー(67,482ポイント)
Date: 2009/03/02(月) 23:34
No:29825
|
|
Title: Re:GetHitKeyStateAll_2関数について
|
|
関数の戻り値は0です。
引数に渡しているint型の配列に256個のキー入力に対し、
「押されていたらインクリメント」
「押されていなければ0を代入」
っと実行しているだけです。
>Keyに[KEY_INPUT_UP]などが代入される
Key[KEY_INPUT_UP]では配列名KeyのKEY_INPUT_UP番目を指しているだけです。
2倍のポイントを手に入れた! 156ポイント を手に入れた。
|
|
|
|
|
Name: Mato ..ぴよぴよ(251ポイント)
Date: 2009/03/02(月) 23:36
No:29826
|
|
Title: Re:GetHitKeyStateAll_2関数について
|
|
はじめまして。
GetHitKeyStateAll_2関数ですね。
引数として渡している、つまり、(Key)の部分の変数Keyが配列になっていますね。
配列の場合、ポインタと同じような扱いになりますので(というと語弊があるだろうか)、(returnに頼らずとも)関数内で値を変えることも可能です。
139ポイント を手に入れた。
|
|
|
|
|
Name: cppb ..ぴよぴよ(485ポイント)
Date: 2009/03/02(月) 23:54
No:29829
|
|
Title: Re:GetHitKeyStateAll_2関数について
|
|
回答ありがとうございます。少しわかった気はしますが、間違っているかも。
>kazuoniさん
関数の内容はわかっているつもりです。
連続で押されていたらフレーム分加算、押されていなかったら0にリセットというのを全キー分行っているんですよね。
間違っていたらすみません。
>Key[KEY_INPUT_UP]では配列名KeyのKEY_INPUT_UP番目を指しているだけです。
KEY_INPUT_UPという変数があるということでしょうか。
これはいつ発生(?)しているんでしょうか、少しわかりません。すみません。
>Matoさん
配列の場合は関数が実行されたのち、最終的な値が元の配列にも代入されるということでしょうか。
ポインタを勉強していないため、まずいかもしれません。ポインタについて学ぼうと思います。
172ポイント を手に入れた。
|
|
|
|
|
Name: Mato ..ぴよぴよ(383ポイント)
Date: 2009/03/03(火) 00:18
No:29831
|
|
Title: Re:GetHitKeyStateAll_2関数について
|
|
KEY_INPUT_UPは、DxLib.hの中で#defineされていたと思いますよ。
具体的な値は忘れました、すいません。
引数が配列の場合は、最終的に元の配列に代入されると言うより、最初から元の配列に代入されています。
ポインタは、プログラムを本格的に始めるなら避けられない壁だと思いますので、頑張って下さい。
自分の発言を見直してみて、配列の場合は”関数内で値を変えることも可能です”って言ったのはまずかったなぁと反省。
”変なことしない限りは変わります”に変えさせて下さい。
132ポイント を手に入れた。
|
|
|
|
|
Name: cppb ..ぴよぴよ(636ポイント)
Date: 2009/03/03(火) 00:35
No:29832
| 解決!
|
Title: Re:GetHitKeyStateAll_2関数について
|
|
>Matoさん
#defineもいま一つわからないので、ポインタと一緒に勉強してきます。頑張ります。ありがとうございます。
ややこしい数字をKEY_INPUT_**という別名で扱えるよう、あらかじめ代入しているのですね。
>最初から元の配列に代入されています。
関数が実行し終わってからでなく、インクリメントが起きた時に外の値も変わっている
と解釈しました。(自分の中で…)
>変なことしない限りは変わります
例外もあるということで覚えておきます。
回答ありがとうございました。自分なりに解釈し、自分の中では解決しました!
間違っていたら教えて頂けると幸いです。
>↓のkazuoniさん
ありがとうございます。#defineは定数なのですね。
勉強してきました。配列の場合は値ではなく、アドレスというものが渡っていたのですね。
要するに色々な入口の一つから中身をいじくっている……ような。
すっきりしました。
kazuoniさん、Matoさん、親切にありがとうございました。
151ポイント を手に入れた。
|
|
|
|
|
Name: kazuoni [URL] ..熟練のプログラマー(67,546ポイント)
Date: 2009/03/03(火) 00:36
No:29833
|
|
Title: Re:GetHitKeyStateAll_2関数について
|
|
>数字をKEY_INPUT_**という別名で扱えるよう、あらかじめ代入しているのですね
置き換えられるのが正しい表現のような気がしますが、そんな感じです。
ただ、代入としてしまうと、定義後も代入可能っとしてしまいそうなので、
不適切かもしれないです。
>(自分の中で…)
ちょっと勉強すればちゃんと理解できるはずですよ^^
C++なら参照渡しっという手もありますが、まずはポインタが先ですかね。
64ポイント を手に入れた。
|
|
|
|
Name: yuuki ..ぴよぴよ(8ポイント)
Date: 2009/02/28(土) 12:31
No:29545
|
|
Title: 超初心者ですがよろしくお願いします
|
|
はじめまして、yuukiといいます。
早速なのですが、皆さんのようなゲームが作りたいのですが、「まずは実行してみよう」のところでつまずいてしまって、よくわからないのです(><)main.cppというものはprojectの中のどこにあるのでしょうか?
あと、コンパイルの使い方もよくわからないので、教えていただけますか?
8ポイント を手に入れた。
|
|
|
|
Name: (≡ω≡) ..ぴよぴよ(326ポイント)
Date: 2009/02/28(土) 14:18
No:29551
|
|
Title: Re:超初心者ですがよろしくお願いします
|
|
まずは、入門編の0を、ひたすら上からなぞってください。
1.本文どおりにコンパイラとエディタの設定
2.とりあえず、本文どおりに使ってみる(開いてみる)
(新規作成か、元からそのファイルがあるのかは確認してくださね)
コンパイルっていうのは、入門編の本文中にもありますが、自分が書いた命令文(ソースプログラム)を、パソコンに実行させるために行う一種の基本動作とです。
(「メイク」とか、「ビルド」ってコマンドがそれにあたります)
ショートカットキーがF5になっているので、本文中では、「F5を押してください」と書いてあります。
初心者だと、読んでいるだけで混乱してくるかもしれませんが(自分はそうでした)、根気よくあがいてみてください。まずはそれからです。
326ポイント を手に入れた。
|
|
|
|
|
Name: yuuki ..ぴよぴよ(28ポイント)
Date: 2009/02/28(土) 23:02
No:29589
|
|
Title: Re:超初心者ですがよろしくお願いします
|
|
ありがとうございます!
がんばってあがきます(><;)
あと、お勧めの(0の内容がよくわかる)入門サイトってありますか?
できれば教えてほしいです。(何分か探してみましたが全然でません(><)
20ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(12,895ポイント)
Date: 2009/02/28(土) 23:30
No:29595
|
|
Title: Re:超初心者ですがよろしくお願いします
|
|
出ないことはないでしょう。
googleで「C言語 入門」と検索すればかなり出てきますよ。
42ポイント を手に入れた。
|
|
|
|
|
Name: SooA ..かけだし(2,487ポイント)
Date: 2009/03/01(日) 00:14
No:29599
|
|
Title: Re:超初心者ですがよろしくお願いします
|
|
「竜神録プログラミングの館」のページ最下に
「本家HPトップページへ」のボタンがあります。
「ゲームプログラミングの館」でインストールから
DXライブラリの最初のステップまでを説明されていますので
ご覧になってください。
60ポイント を手に入れた。
|
|
|
|
|
Name: yuuki ..ぴよぴよ(77ポイント)
Date: 2009/03/01(日) 01:00
No:29601
|
|
Title: Re:超初心者ですがよろしくお願いします
|
|
とつぜんですが、入門の通りにしていっても、コンパイルするときにファイル選択の時に「test.c」が選択できません。なぜでしょうか?
49ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(6,495ポイント)
Date: 2009/03/01(日) 08:38
No:29613
|
|
Title: Re:超初心者ですがよろしくお願いします
|
|
>コンパイルするときにファイル選択の時に「test.c」が選択できません。
どういうことですか?
開発環境が書かれていませんが、このサイトの手順に従っているとのことなので、
VC++2008 EEをお使いのものとして説明します。
VC++2008 EEの場合ですが、
サンプルプログラムのビルドを実行する時は
「ソリューションをビルドする」
という項目を選択してビルドすればサンプルプログラムは実行できると思います。
特に特別な事情が無い限り「ソリューションをビルドする」を選択して構わないと思います。
189ポイント を手に入れた。
|
|
|
|
|
Name: yuuki ..ぴよぴよ(15ポイント)
Date: 2009/03/01(日) 09:53
No:29616
|
|
Title: Re:超初心者ですがよろしくお願いします
|
|
使っているものは VBCompile です
もしくは microsoft visual C++ 2008 Express Edithon です
(↑はかんけいないかもしれませんが・・・。)
62ポイント を落としてしまった。
|
|
|
|
|
Name: cosmo ..初心者(6,814ポイント)
Date: 2009/03/01(日) 10:05
No:29617
|
|
Title: Re:超初心者ですがよろしくお願いします
|
|
VBCompileってVisual Basicのコンパイラですよね…?
このサイトのサンプルはC言語なので、Microsoft Visual C++ 2008 Express Editionで
ビルドするとサンプルが実行出来ますけど…
51ポイント を手に入れた。
|
|
|
|
|
Name: yuuki ..ぴよぴよ(0ポイント)
Date: 2009/03/01(日) 10:12
No:29618
|
|
Title: Re:超初心者ですがよろしくお願いします
|
|
そうですか!
ありがとうございます!(test.cは完了しました)
#define GLOBAL_INSTANCE
#include "../include/GV.h"
int Key[256];
int GetHitKeyStateAll_2(int GetHitKeyStateAll_InputKey[]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key[i]==1) GetHitKeyStateAll_InputKey[i]++;
else GetHitKeyStateAll_InputKey[i]=0;
}
return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
//↑メッセージ処理 ↑画面をクリア ↑入力状態を保存 ↑ESCが押されていない
//ココ!←コードとは何ですか?
ScreenFlip();
}
DxLib_End();
return 0;
}
これを一応コンパイルはしたのですが、実行の仕方がわかりません;
どう実行したらよいのでしょうか?
43ポイント を落としてしまった。
|
|
|
|
|
Name: cosmo ..初心者(6,889ポイント)
Date: 2009/03/01(日) 10:25
No:29619
|
|
Title: Re:超初心者ですがよろしくお願いします
|
|
VC++2008 EEでコンパイルしたんですよね?
それならば、
メニューバーのデバッグ(D)→デバッグなしで開始(H)
とすると実行できますよ。
又は、Debugフォルダのexeファイルをクリックすると実行する事が出来ます。
デバッグ開始(S)で開始するのは中規模プログラム以上のプログラムを作成した時に
コンパイルは通ってしまうが、実行時に例外が発生した時にエラーを追跡する時なんかに使うので
まだ使う機会はありません…(多分)。
プログラムがどの様に動いているかをどうしても確かめたい時はやってみる価値はあるかもしれませんが…
ゲームプログラミングの館程度のプログラムはビルド時に出たバグを取り除くと、
バグが入り込む心配はありません。
それに、デバッグ開始(S)で開始すると実行速度が落ちてしまいます。
それと、コードはプレタグで囲みましょう。
プレタグで囲んでいないコードは見にくいです。
規約をもう少しきちんと読んでください。
75ポイント を手に入れた。
|
|
|
|
|
Name: yuuki ..ぴよぴよ(60ポイント)
Date: 2009/03/01(日) 10:34
No:29620
| 解決!
|
Title: Re:超初心者ですがよろしくお願いします
|
|
非常にわかりやすい解説ありがとうございます!
おかげでできました!
ほんとうにありがとうございましたm(_ _)m
60ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(6,974ポイント)
Date: 2009/03/01(日) 11:53
No:29622
|
|
Title: Re:超初心者ですがよろしくお願いします
|
|
すいません…、追記です。
Debugフォルダにあるexeファイルは
一つ上のフォルダにコピーしてから実行してください。
そのまま実行すると画像ファイルなどの外部ファイルを
読み込んで使う時にエラーになる事を忘れてました…orz
85ポイント を手に入れた。
|
|
|
|
Name: ざこ ..プログラマー(25,138ポイント)
Date: 2009/03/02(月) 16:52
No:29789
|
|
Title: VC++
|
|
VC++で拡張子を指定する方法などありますか?例えばテキストファイルだけ開くようにして他(エクセルとか)
では行わないような感じがいいのですが。
5ポイント を落としてしまった。
|
|
|
|
Name: バグ ..ハッカー(149,148ポイント)
Date: 2009/03/02(月) 17:04
No:29790
|
|
Title: Re:VC++
|
|
いまいち、質問の意味がよく分からないのですが?
ファイル選択用のダイアログに表示されるファイルの種類に制限をかけたいという事でしょうか?
55ポイント を手に入れた。
|
|
|
|
|
Name: たかぎ [URL] ..比類無きプログラマー(86,205ポイント)
Date: 2009/03/02(月) 17:05
No:29791
|
|
Title: Re:VC++
|
|
> 拡張子を指定する方法などありますか?
何に対してですか?
> 例えばテキストファイルだけ開くようにして
何で開くのでしょうか?
> 行わないような
行わないとは?
> 感じがいいのですが
感じといわれても、質問者さんと感覚を共有するのは困難です。
もっと具体的かつ客観的に表現してください。
50ポイント を手に入れた。
|
|
|
|
|
Name: ざこ ..プログラマー(25,247ポイント)
Date: 2009/03/02(月) 17:21
No:29793
|
|
Title: Re:VC++
|
|
これは失礼しました。例えばファイルを開くときにfopenで開きますがそのときにtxtファイルのみ開く
もしくはエクセルxlsのみで開くように拡張子に対して制限というのでしょうか、がしたいです。
if(●●){
fopen()・・
}
のようなイメージかと思うんですが調べても出てこないので質問させていただきました。
109ポイント を手に入れた。
|
|
|
|
|
Name: バグ ..ハッカー(149,183ポイント)
Date: 2009/03/02(月) 17:26
No:29794
|
|
Title: Re:VC++
|
|
ファイルパス(おそらく文字列でしょうか?)を調べて、拡張子部が.xlsなどエクセルのファイルの際にのみ開くようにすればいいのでは?
35ポイント を手に入れた。
|
|
|
|
|
Name: ざこ ..プログラマー(25,344ポイント)
Date: 2009/03/02(月) 17:31
No:29795
|
|
Title: Re:VC++
|
|
すいません、例えが悪かったので訂正します。今Drag&Dropの勉強をしていてファイルごとに分けるプログラムを
作ってるんです。
例
拡張子 場所
txt c:\●●
XLS c:\○○
このときにスレ内容のような内容を使うので質問させていただきました。
97ポイント を手に入れた。
|
|
|
|
|
Name: SooA ..入門者(4,324ポイント)
Date: 2009/03/02(月) 17:46
No:29798
|
|
Title: Re:VC++
|
|
パスの分割で調べてみましょう。
fnsplit
簡易でいいなら取得した引数の末尾4文字を取り出して
".txt"かどうか判断。
大文字小文字の区別なしで文字列を比較する関数もあるので
調べてみてください。
82ポイント を手に入れた。
|
|
|
|
|
Name: バグ ..ハッカー(149,273ポイント)
Date: 2009/03/02(月) 17:47
No:29800
|
|
Title: Re:VC++
|
|
CString path = "path.txt";
CString ext = path.Delete(0, path.ReverseFind('.') + 1);
MFCならば、こういうのでもいいかも…?
68ポイント を手に入れた。
|
|
|
|
Name: JT ..入門者(3,709ポイント)
Date: 2009/02/26(木) 09:56
No:29434
|
|
Title: MFC WinSockソケットコントロールについて
|
|
おはようございます。色々なサンプルを見てWinsockプログラムを実装したのですが送受信のところで処理が落ちてしまいます。リビルドは通るのですが><どなたかご教示ください
1.サーバソケットを作成する
2.送信と押下したらクライアントサーバを作成しエディットコントロール内の文字を送受信する
3.中断する
大まかに手順を書きます。
83ポイント を手に入れた。
|
|
|
|
Name: JT ..入門者(3,731ポイント)
Date: 2009/02/27(金) 10:29
No:29492
|
|
Title: Re:MFC WinSockソケットコントロールについて
|
|
クライアント側のソケットが作成できなくて困ってます socket.Create();
22ポイント を手に入れた。
|
|
|
|
|
Name: JT ..入門者(3,755ポイント)
Date: 2009/02/27(金) 16:25
No:29499
|
|
Title: Re:MFC WinSockソケットコントロールについて
|
|
Mistさんありがとうございます。調べたところランタイムエラーになっていました。
24ポイント を手に入れた。
|
|
|
|
|
Name: JT ..入門者(3,774ポイント)
Date: 2009/02/27(金) 17:37
No:29503
|
|
Title: Re:MFC WinSockソケットコントロールについて
|
|
手詰まりです><誰かにソースを全て見てもらいたい気分になってきました
19ポイント を手に入れた。
|
|
|
|
|
Name: JT ..入門者(3,790ポイント)
Date: 2009/03/02(月) 13:34
No:29779
|
|
Title: Re:MFC WinSockソケットコントロールについて
|
|
こんにちは^^エラー内容は11でした
16ポイント を手に入れた。
|
|
|
|
|
Name: JT ..入門者(3,816ポイント)
Date: 2009/03/02(月) 14:07
No:29780
|
|
Title: Re:MFC WinSockソケットコントロールについて
|
|
どうしてもクライアントが作成できません this関数でエラーがおきます
26ポイント を手に入れた。
|
|
|
|
|
Name: YuO ..プログラマー(30,348ポイント)
Date: 2009/03/02(月) 16:36
No:29788
|
|
Title: Re:MFC WinSockソケットコントロールについて
|
|
> GetLastErrorで原因調べられましたか?
> GetLastErrorの結果はどれだったのですか?
正確には,WSAGetLastErrorですね。
だいたいGetLastErrorと同一の結果を返しますが。
> エラー内容は11でした
それはありえないと思いますが……。
少なくとも,Socketまわりのエラーではないと思われます。
> this関数でエラーがおきます
this関数とは?
C++では,現在のメンバ関数の呼び出しに使われたオブジェクトへのポインタがthisで得られますが,これは関数ではありません。
MFCならソースが付属しているのですから,ソースの中までステップインしていけば,もっとプリミティブなエラー情報が得られると思いますよ。
162ポイント を手に入れた。
|
|
|
|
Name: ひよこ ..上級者(18,211ポイント)
Date: 2009/03/02(月) 15:16
No:29783
|
|
Title: ゲームを作成中なんですが
|
|
ゲームを作成中なんですがなぜか2番目の画面でEscでブレイクするとエンディングが見れないのですが
どうしてでしょうか?
ソースは添付してあります。
64ポイント を手に入れた。
|
|
|
|
Name: SooA ..入門者(4,242ポイント)
Date: 2009/03/02(月) 15:39
No:29786
|
|
Title: Re:ゲームを作成中なんですが
|
|
メインループである以下の部分で
while( ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 &&
________________________
Key[KEY_INPUT_ESCAPE]==0 )
↑この部分
ESCAPEが押されていたらループしない、
プログラムを終了するようになっているからです
37ポイント を手に入れた。
|
|
|
|
|
Name: ひよこ ..上級者(18,247ポイント)
Date: 2009/03/02(月) 15:50
No:29787
| 解決!
|
Title: Re:ゲームを作成中なんですが
|
|
ありがとうございます。できました。SooAさんありがとうございました。
2倍のポイントを手に入れた! 36ポイント を手に入れた。
|
|
|
|
Name: エデリュス ..ぴよぴよ(58ポイント)
Date: 2009/03/02(月) 15:03
No:29782
|
|
Title: ダウンロードdatについて
|
|
はじめましてエデリュスという者です。
プログラミングの全ての章のプロジェクトを一括ダウンロードをして
解凍したところdatの部分が解凍されませんでした。
どうすればいいでしょうか。
58ポイント を手に入れた。
|
|
|
|
Name: エデリュス ..ぴよぴよ(86ポイント)
Date: 2009/03/02(月) 15:23
No:29785
| 解決!
|
Title: Re:ダウンロードdatについて
|
|
すみません。
いまダウンロードしたらできました・・・
2倍のポイントを手に入れた! 28ポイント を手に入れた。
|
|
|
|
Name: 馬鹿太郎 ..かけだし(1,721ポイント)
Date: 2009/03/02(月) 08:28
No:29771
|
|
Title: データ型
|
|
こんにちは。いつもお世話になっています。
質問なんですけど、
char name[7] = "abcdef";
これは
name[0] = 'a';
name[1] = 'b';
・
・
・
name[6] = '\0';
となりますよね。char型なので、それぞれの要素は1バイトですよね。
char name[9] = "田中一郎";
このnameも配列なので、要素をもっていますよね?
さっきのchar name[7] = "abcdef";の場合だと、name[0],name[1]が要素に当たりますよね。
でも、漢字の場合だと、要素を持つことができるのでしょうか?
name[0] = '田' ←?
漢字は2バイト必要ですよね・・・
質問は、char name[9] = "田中一郎";に関してです。
この場合は、どのようにして、メモリに格納されるのですか?
よろしくお願いします。
317ポイント を手に入れた。
|
|
|
|
Name: non ..プログラマー(38,165ポイント)
Date: 2009/03/02(月) 09:47
No:29774
|
|
Title: Re:データ型
|
|
JISコードの場合なら前後にKI、KOコードがつきます。
従って、質問者はシフトJISのことを尋ねられていると思いますので、
シフトJISでググってもらえば、コード表があると思いますので、調べてください。
105ポイント を手に入れた。
|
|
|
|
Name: バットマン ..ぴよぴよ(29ポイント)
Date: 2009/02/28(土) 23:05
No:29590
|
|
Title: 早急にお願いします。問題のソースコードを教えて下さい。
|
|
問題文:ある店舗の3人分の会員情報を入力して、その情報を表示したい。会員情報が次の項目から成り立っているとき、適切な構造体を定義して、データ入力・表示するプログラムを作成しなさい。
その他の詳細は添付しました。
29ポイント を手に入れた。
|
|
|
|
Name: box ..ハッカー(136,436ポイント)
Date: 2009/02/28(土) 23:17
No:29593
|
|
Title: Re:早急にお願いします。問題のソースコードを教えて下さい。
|
|
> 会員情報が次の項目から成り立っているとき、適切な構造体を定義して、
会員情報の項目から構造体を定義することは、
データ構造を考えるよい練習になると思います。
そこを放棄して人にゆだねていたのでは、
全く上達できません。
実力なんて付かなくてもいいからとにかく答えだけほしい、
というお考えだとすると、それはおやめになる方がよいと思います。
老婆心ながら。
25ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(6,288ポイント)
Date: 2009/02/28(土) 23:33
No:29596
|
|
Title: Re:早急にお願いします。問題のソースコードを教えて下さい。
|
|
本当に添付されました?
こちらでは何も表示されませんが…
それに規約を読まれましたか?
63ポイント を手に入れた。
|
|
|
|
|
Name: 通りすがり ..中級者(14,401ポイント)
Date: 2009/03/01(日) 01:20
No:29602
|
|
Title: Re:早急にお願いします。問題のソースコードを教えて下さい。
|
|
・早急にお願いします。
・急いで答えて下さい
・早く答えを書いて下さい
こんな感じの文章があると余計に答えてくれる人減るよ。
それよりもきちんと必要な情報を書き、規約通りに質問する方がよっぽど回答してくれる人増えるかと。
72ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(7,735ポイント)
Date: 2009/03/01(日) 23:57
No:29726
|
|
Title: Re:早急にお願いします。問題のソースコードを教えて下さい。
|
|
それではバットマンさん、別のスレッドで指摘されたことを実践してみましょう。
27ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(7,740ポイント)
Date: 2009/03/02(月) 10:11
No:29776
|
|
Title: Re:早急にお願いします。問題のソースコードを教えて下さい。
|
|
>>たかぎさん
>そういう人からは、お金(それも高額)を取って上げるのがむしろ親切心というものです。
確かにそうかもしれませんね。
別のスレで張り切りすぎました。
規約違反の質問には回答しない事も重要ですね…。
これから気を付けたいと思います。
5ポイント を手に入れた。
|
|
|
|
Name: 夢の旅人 ..ぴよぴよ(214ポイント)
Date: 2009/02/28(土) 12:57
No:29546
|
|
Title: 入門編の”0”でひっかかりました
|
|
初めまして、ゲームプログラミングの館でいろいろと学ぼうと思っている初心者です。
全部の設定が終わった後に、サンプルプログラム(ただ点を打つだけのもの)をコピペしてメイクをしたら
Fatal: ファイル VORBISFILE_STATIC.LIB が開けません
というエラーがでてきました。
環境は BorlandC++ Compiler 5.5 と BCC Developer です。
どうすればよいのでしょうか。 よろしくお願いします。
(C言語は、軽くかじっただけの初心者です。)
214ポイント を手に入れた。
|
|
|
|
Name: 夢の旅人 ..ぴよぴよ(459ポイント)
Date: 2009/03/01(日) 11:28
No:29621
| 解決!
|
Title: Re:入門編の”0”でひっかかりました
|
|
とりあえずもう一度インストールして入れてみたら成功しました。
間違えていたっぽいですね。
どうもありがとうございました!!
追記)一度メイクしたときに大量(?)のエラーが出て、再構築したら消えたのですが、こういうことってよくあるのでしょうか?
「〜が参照できません」
のタイプが10ほどでした。
88ポイント を手に入れた。
|
|
|
|
|
Name: Dixq (管理人) ..伝説なるハッカー(997,351ポイント)
Date: 2009/03/02(月) 02:57
No:29763
|
|
Title: Re:入門編の”0”でひっかかりました
|
|
Borlandのコンパイラはよくわかりませんが、
VC++を使ってるとたま〜に、おかしなエラーメッセージが出る事はあります。
全く同じコードなのに再起動してもう一度コンパイルしたらコンパイル通ったり・・。
まだ裏で実行ファイルが動いているとか色んなことが考えられると思いますが、
一応本来エラーが出るファイルをもう一度コンパイルしたからといってエラーがなくなる事は無いです。
もしそういうことがあればそのエラーメッセージをコピーして貼り付けて下さい。
エラーメッセージが無いとよくわかりませんので。
53ポイント を手に入れた。
|
|
|
|
|
Name: 夢の旅人
Date: 2009/03/06(金) 16:47
No:295461236325661
|
|
Title: Re:入門編の”0”でひっかかりました
|
|
そうなのですか・・・。
はい、わかりました。どうもありがとうございます!!
受験が終わって本格的にプログラミングにのめりこめそうです。
これからもお世話になるとおもいますので、よろしくおねがいします。
|
|
|
|
Name: バットマン ..ぴよぴよ(355ポイント)
Date: 2009/03/01(日) 19:56
No:29629
|
|
Title: C言語の課題
|
|
課題の問題は:配列tenに初期値として格納されている10人分のテストの得点の平均点を求めるプログラムを作成しなさい。
[使用する変数]int型i,goukei
ten[10](初期値:65,70,88,90,47,66,20,95,39,50)
<実行結果>
平均点は63点です
(平均は%d(整数)で出力してよい)のことなんですが・・・
私は、#include<sutdoi.h>
void main(void) {
int i,
double avg;
int ten[10]={65,70,88,90,47,66,20,95,39,50};
for(i=0;)
printf("平均は%dです\n"avg);
}
まで作りました。多分このままじゃダメだと思うのですが、この先どうやったらいいか分かりません。
どうやったらいいですか??
326ポイント を手に入れた。
|
|
|
|
Name: SCI ..中級者(13,061ポイント)
Date: 2009/03/01(日) 20:07
No:29630
|
|
Title: Re:C言語の課題
|
|
>#include<sutdoi.h>
#include <stdio.h>です。
課題ということは、大学生か専門学生ですか?
「平均点を」とあるので、少なくともどこかで「合計」を計算しなくてはなりませんね。
76ポイント を手に入れた。
|
|
|
|
|
Name: バットマン ..ぴよぴよ(397ポイント)
Date: 2009/03/01(日) 20:26
No:29635
|
|
Title: Re:C言語の課題
|
|
専門学生です。皆さんに迷惑させて申し訳ございません。
まだC言語初心者なので、どうかやさしくお願いいたします。
for文は使いますか?
42ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(13,127ポイント)
Date: 2009/03/01(日) 20:29
No:29637
|
|
Title: Re:C言語の課題
|
|
バットマンさん
次からはちゃんと規則に従って投稿してくださいね。その方が回答も集まりますよ。
まず、「与えられたデータの平均値を計算する」という処理を、幾つかの手順に分けて日本語で書けますか?
66ポイント を手に入れた。
|
|
|
|
|
Name: バットマン ..ぴよぴよ(483ポイント)
Date: 2009/03/01(日) 20:33
No:29639
|
|
Title: Re:C言語の課題
|
|
#include<stdio.h>
void main(void) {
int i,
double avg;
int ten[10]={65,70,88,90,47,66,20,95,39,50};
までは大丈夫ですか?
86ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(13,164ポイント)
Date: 2009/03/01(日) 20:40
No:29640
|
|
Title: Re:C言語の課題
|
|
double avg なんていう変数を使ってもいいのですか?
課題文を読むと、使用する変数が指定されているようですが。
37ポイント を手に入れた。
|
|
|
|
|
Name: SooA ..入門者(2,748ポイント)
Date: 2009/03/01(日) 21:17
No:29642
|
|
Title: Re:C言語の課題
|
|
何となくは解っていると思いますが、
以下の文が何を表しているか調べてみましょう。
int ten[10]={65,70,88,90,47,66,20,95,39,50};
勉強しているということは手元に幾つかの
資料や教科書のような物があると思います、
それらの資料には必ずこの問題を解くための
内容が記されています。
まずはデータを自由に扱えるようになるための
知識が必要ですので、例えば変数 goukei に上の配列から
88という数値を引き出して代入するにはどうすれば
良いのか調べてみましょう。
261ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(7,118ポイント)
Date: 2009/03/01(日) 21:17
No:29643
|
|
Title: Re:C言語の課題
|
|
よく見てください。
int i;
である筈のところが
int i,となっていますよ。
これでは、ビルドした際にエラーになってしまいます。
それに、for文の使い方を理解してますか?
>for(i=0;)
これだけでは条件が足りません。
それに、変数の型が一致していませんが…?
ざっと見ただけでもこれだけエラーや期待しない挙動をする要素があります。
144ポイント を手に入れた。
|
|
|
|
|
Name: conio ..中級者(10,580ポイント)
Date: 2009/03/01(日) 21:19
No:29644
|
|
Title: Re:C言語の課題
|
|
-------------------------------------------------------
[使用する変数]int型i,goukei
ten[10](初期値:65,70,88,90,47,66,20,95,39,50)
-------------------------------------------------------
課題の条件はコレですよね?
ならば"double型"とか、"avg"という変数名は駄目だと思うのですが。
条件を無視してしまっていますよ。
とりあえず、プログラムでは無い場合、どのように計算するかを考えましょう。
5人分のテストの平均点を求める場合。
A:60点
B:50点
C:92点
D:78点
E:20点
(60+50+92+78+20)÷5= 平均点は60点。
----------------------------------------------------------------------
int ten[5] = {60,50,92,78,20};
int goukei = 0;
goukei = ten[0] + ten[1] + ten[2] + ten[3] + ten[4];
printf("score = %d\n",goukei/5);
----------------------------------------------------------------------
馬鹿正直にやるとこうなります。
ただ無駄がある部分があるのでどうすればいいか考えてみましょう。
314ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(13,224ポイント)
Date: 2009/03/01(日) 21:24
No:29645
|
|
Title: Re:C言語の課題
|
|
バットマンさん
私の発言が無視されているあたり、答えが分かってしまえばそれでいいのでしょうか……
もっとも、手順を考える作業はもうconioさんがやってくれましたが、本来は自分でやるものです。
60ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(7,174ポイント)
Date: 2009/03/01(日) 21:37
No:29650
|
|
Title: Re:C言語の課題
|
|
for文かwhile文を使ってconioさんのコードを更に簡潔に出来ますよ。
for文やwhile文の使い方は自分で調べてください。
その時にiが必要になります。
56ポイント を手に入れた。
|
|
|
|
|
Name: バットマン ..ぴよぴよ(597ポイント)
Date: 2009/03/01(日) 21:44
No:29651
|
|
Title: Re:C言語の課題
|
|
#include<stdio.h>
void main(void) {
int ten[10] = {60,70,88,90,47,66,20,95,39,50};
int goukei = 0;
int i;
for(i=0;i<10; i=i+1) {
ten[i]=i+goukei
printf("goukei = %d\n",goukei/10);
}
エラーが出ます。
104ポイント を手に入れた。
|
|
|
|
|
Name: バットマン ..ぴよぴよ(629ポイント)
Date: 2009/03/01(日) 21:50
No:29652
|
|
Title: Re:C言語の課題
|
|
iを使うとgoukeiの役目がないような気がするんですけど、goukeiはどう使うのですか?
32ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(13,350ポイント)
Date: 2009/03/01(日) 21:51
No:29653
|
|
Title: Re:C言語の課題
|
|
バットマンさん
規約を読んで、<pre>タグを使うようにしてください。
>ten[i]=i+goukei
ステートメントにセミコロンがないですね。
ただ、この式だと「合計」を計算していることにはならないので「ten[i]をgoukeiに足していく」というようにしてみてください。
116ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(13,442ポイント)
Date: 2009/03/01(日) 21:56
No:29656
|
|
Title: Re:C言語の課題
|
|
バットマンさん
規約を読んでください。
最後に中カッコ閉じ}が足りません。
エラーが出たときは、エラーの内容も書くようにしてくださいね。
92ポイント を手に入れた。
|
|
|
|
|
Name: SooA ..入門者(2,896ポイント)
Date: 2009/03/01(日) 21:57
No:29658
|
|
Title: Re:C言語の課題
|
|
1.一つの命令の閉めには ; が付きます。
ten[i]=i+goukei ←付いてない
2.goukei に値を入れるのに i と goukei を足して
本来足すべきものに代入しています。
3. { } がどんな役割を持つのか調べてみましょう。
あと少しです。
ラストは無駄を省いて C言語らしさを出しましょう。
148ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(7,219ポイント)
Date: 2009/03/01(日) 21:59
No:29661
|
|
Title: Re:C言語の課題
|
|
>ten[i]=i+goukei
最後に;がありませんね。
それとこのコードは何を意図したものでしょうか?
少なくともこのコードでエラーを修正したものをビルドして実行するとは合計は0になってしまいます。
また、printf関数がforループの中に入っていますがこれだと10回出力されてしまいます。
int ten[10] = {65,70,88,90,47,66,20,95,39,50};
では無いですか?
45ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(13,572ポイント)
Date: 2009/03/01(日) 22:00
No:29662
|
|
Title: Re:C言語の課題
|
|
バットマンさん
「ten[i]にgoukeiを足していく」について。
最初、goukeiは0ですね?
i が 0 のとき、goukei = goukei + ten[0];
i が 1 のとき、goukei = goukei + ten[1];
:
:
と、足していけば、ten[0]からten[9]までの合計が求まります。
130ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(13,610ポイント)
Date: 2009/03/01(日) 22:02
No:29663
|
|
Title: Re:C言語の課題
|
|
と、変な書き方をしましたが、要はten[0]、ten[1]、……、ten[9]までを、forを使って足していけばいいのです。
そのとき、添え字は「i」で表現できますね。
38ポイント を手に入れた。
|
|
|
|
|
Name: バットマン ..ぴよぴよ(998ポイント)
Date: 2009/03/01(日) 22:04
No:29664
|
|
Title: Re:C言語の課題
|
|
#include<stdio.h>
void main(void) {
int ten[10] = {60,70,88,90,47,66,20,95,39,50};
int goukei = 0;
int i;
for(i=0;i<10; i=i+1) {
ten[i]=i+goukei;
goukei = goukei + ten[0];
goukei = goukei + ten[1];
goukei = goukei + ten[2];
goukei = goukei + ten[3];
goukei = goukei + ten[4];
goukei = goukei + ten[5];
goukei = goukei + ten[6];
goukei = goukei + ten[7];
goukei = goukei + ten[8];
goukei = goukei + ten[9];
printf("goukei = %d\n",goukei/10);
}まで出来ましたがエラー1です。
303ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(13,657ポイント)
Date: 2009/03/01(日) 22:08
No:29666
|
|
Title: Re:C言語の課題
|
|
>for(i=0;i<ten[10]; i=i+goukei) {
>はどうですか??
発想はいいのですが、それだとカウンタのiが変化しない上、合計も計算できません。
47ポイント を手に入れた。
|
|
|
|
|
Name: hss12 ..ぴよぴよ(546ポイント)
Date: 2009/03/01(日) 22:08
No:29667
|
|
Title: Re:C言語の課題
|
|
60を65に変えましょう。
おそらく}の書き忘れです。
for(i=0;i<10; i=i+1) {
であっていますよ。
23ポイント を手に入れた。
|
|
|
|
|
Name: バットマン ..かけだし(1,125ポイント)
Date: 2009/03/01(日) 22:11
No:29669
|
|
Title: Re:C言語の課題
|
|
}はどこに付けたらいいでしょうか?
for(i=0;i<10; i=i+1) { の下に付けてもだめでした。
2倍のポイントを手に入れた! 96ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(7,309ポイント)
Date: 2009/03/01(日) 22:14
No:29670
|
|
Title: Re:C言語の課題
|
|
これだとfor文を生かせていませんね…。
もっとコードは短くなりますよ。
それと、コードは
<pre></pre>タグで囲みましょう。
(<>は半角)
}は
printf("goukei = %d\n",goukei/10);
}
}←ここにつけてください。
90ポイント を手に入れた。
|
|
|
|
|
Name: バットマン ..かけだし(1,151ポイント)
Date: 2009/03/01(日) 22:15
No:29672
|
|
Title: Re:C言語の課題
|
|
printf("goukei = %d\n",goukei/10);
}
}←ここにつけてください。
付けるとエラー2に・・・
26ポイント を手に入れた。
|
|
|
|
|
Name: バットマン ..かけだし(1,212ポイント)
Date: 2009/03/01(日) 22:17
No:29674
|
|
Title: Re:C言語の課題
|
|
LIBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です
Debug/CLS06.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー
CLS06.exe - エラー 2、警告 0
61ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(7,352ポイント)
Date: 2009/03/01(日) 22:18
No:29675
|
|
Title: Re:C言語の課題
|
|
エラーを具体的に書いてください。
このままだと良く分からないやり取りとなってしまいそうなので…
43ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(13,771ポイント)
Date: 2009/03/01(日) 22:20
No:29676
|
|
Title: Re:C言語の課題
|
|
設定が「Windowsアプリケーション」になってませんか?
プロジェクトの設定を「コンソールアプリケーション」にしなければならないのですが、やり方は分かりますか?
78ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(7,392ポイント)
Date: 2009/03/01(日) 22:20
No:29678
|
|
Title: Re:C言語の課題
|
|
WIN32アプリケーションとしてやってしまっていますか?
課題はコンソールアプリケーションのようですが。
40ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(7,441ポイント)
Date: 2009/03/01(日) 22:24
No:29681
|
|
Title: Re:C言語の課題
|
|
それは無理だと思います。
どこかにプロジェクトのソースコードをコピペしておいて、
新しく作成したコンソールアプリケーションのプロジェクトにコピペすれば良いと思います。
49ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(7,643ポイント)
Date: 2009/03/01(日) 22:35
No:29686
|
|
Title: Re:C言語の課題
|
|
どんなエラーですか?
↓
fatal error C1075: 左側 中かっこ '{' に対応するものが '.\○○.cpp' で見つかる前に EOF が検出されました。
このエラーですか?
2倍のポイントを手に入れた! 194ポイント を手に入れた。
|
|
|
|
|
Name: バットマン ..かけだし(1,323ポイント)
Date: 2009/03/01(日) 22:36
No:29687
|
|
Title: Re:C言語の課題
|
|
fatal error C1004: 予期せぬ EOF が検出されました。
のことです。
2倍のポイントを手に入れた! 56ポイント を手に入れた。
|
|
|
|
|
Name: SooA ..入門者(2,965ポイント)
Date: 2009/03/01(日) 22:45
No:29692
|
|
Title: Re:C言語の課題
|
|
#include <stdio.h>
void main(void)
{
int i, goukei=0;
int ten[10]={ 60,70,88,90,47,66,20,95,39,50 }; // 問題のある場所1
for(i=0;i<10; i=i+1) { // 問題のある場所2
ten[i]=i+goukei; // 問題のある場所3
printf("goukei = %d\n",goukei/10);
}
途中まで遡ってっみましょう。
for文に { } が無い場合は次にある命令が繰り返され、
{ } が付いた場合はその中身が繰り返されます。
プログラム内では { } は同じ数だけ必要です。
つまり { を使用した場合は必ず } で閉じる必要があります。
今回の場合は必要無い { を付けている事に原因があります。
61ポイント を手に入れた。
|
|
|
|
|
Name: バットマン ..かけだし(1,535ポイント)
Date: 2009/03/01(日) 22:48
No:29693
|
|
Title: Re:C言語の課題
|
|
#include<stdio.h>
void main(void) {
int ten[10] = {65,70,88,90,47,66,20,95,39,50};
int goukei = 0;
int i;
for(i=0;i<ten[10]; i=i+1){
ten[i]=i+goukei;
}
printf("goukei = %d\n",goukei/10);
}
これで一様エラーなしですが、ビルドしたらgoukei=0としか表示されなく、しかも動作が停止になりましたとかウィンドウズからメッセージが来ます。
176ポイント を手に入れた。
|
|
|
|
|
Name: box ..ハッカー(136,533ポイント)
Date: 2009/03/01(日) 22:52
No:29695
|
|
Title: Re:C言語の課題
|
|
> これで一様エラーなしですが、
一様ではなくて、一応(いちおう)です。
ビルドしたらgoukei=0としか表示されなく、
> ten[i]=i+goukei;
テストの素点であるten[i]を書きつぶしてはいけません。
「goukei」にten[i]を足し込むのです。
42ポイント を手に入れた。
|
|
|
|
|
Name: バットマン ..かけだし(1,623ポイント)
Date: 2009/03/01(日) 22:57
No:29696
|
|
Title: Re:C言語の課題
|
|
#include<stdio.h>
void main(void) {
int ten[10] = {65,70,88,90,47,66,20,95,39,50};
int goukei = 0;
int i;
for(i=0;i<ten[10]; i=i+1);
goukei=i+ten[i];
printf("平均は%d\n",goukei/10);
}
でビルドをすると平均は-19572637と変な数に・・・。
88ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(13,830ポイント)
Date: 2009/03/01(日) 23:02
No:29698
|
|
Title: Re:C言語の課題
|
|
何度も言いますが、規約に目を通してください。
本来、規約を無視した投稿は無視されます(ここの人たちは寛大なようですが)
>goukei=i+ten[i];
この式が何をしているのか理解できていますか?
59ポイント を手に入れた。
|
|
|
|
|
Name: box ..ハッカー(136,599ポイント)
Date: 2009/03/01(日) 23:03
No:29699
|
|
Title: Re:C言語の課題
|
|
> for(i=0;i<ten[10]; i=i+1);
なぜ、ten[10]という、配列定義範囲外の領域を指定するのですか?
10回繰り返すのですから、ただの10です。
最後のセミコロンを付けてはいけません。
> goukei=i+ten[i];
i+ にこだわってらっしゃいますね。
goukei に 素点 ten[i] を加えた結果を、新たな goukeiとするのです。
66ポイント を手に入れた。
|
|
|
|
|
Name: SooA ..入門者(3,187ポイント)
Date: 2009/03/01(日) 23:06
No:29701
|
|
Title: Re:C言語の課題
|
|
for文を分解すると以下の様になります。
for(
i=0; // 最初の i の値は 0
i < A; // i が A より小さい値の間だけループする
i++ // ループ毎に計算する部分
)
C言語ではディクリメントと言って
i=i+1 の様な 1 だけ加算する場合 i++ と記述できます。
for文の後ろに ; は必要ありません。
i はループを制御するためだけの変数なのに
goukei に何故 i を加算する必要があるのか?
また前回代入した値を上書きしています。
足していくのだから
goukei = 前回の値 + 今回の値;
となります。
222ポイント を手に入れた。
|
|
|
|
|
Name: 御津凪 [URL] ..熟練のプログラマー(64,821ポイント)
Date: 2009/03/01(日) 23:07
No:29704
|
|
Title: Re:C言語の課題
|
|
> goukeiniにi+ten[i]を入れるですか?
少し落ち着きましょう。
goukei には配列 ten の各値を足していけばいいのですから、
goukei = goukei + ten[i]; // goukei += ten[i]; でも可
を、for ループ内で行なうだけです。
67ポイント を手に入れた。
|
|
|
|
|
Name: box ..ハッカー(136,644ポイント)
Date: 2009/03/01(日) 23:07
No:29705
|
|
Title: Re:C言語の課題
|
|
> goukeiniにi+ten[i]を入れるですか?
i の値は点数ではないです。ですから、goukeiに加えてはいけません。
goukeiに加えていくのは、ten[i]です。
45ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(13,808ポイント)
Date: 2009/03/01(日) 23:07
No:29706
|
|
Title: Re:C言語の課題
|
|
>C言語ではディクリメントと言って
>i=i+1 の様な 1 だけ加算する場合 i++ と記述できます。
一応、「インクリメント」ですね。
41ポイント を手に入れた。
|
|
|
|
|
Name: conio ..中級者(11,332ポイント)
Date: 2009/03/01(日) 23:10
No:29707
|
|
Title: Re:C言語の課題
|
|
"goukei"を財布、そして"65"や"70"をお金だと思ってください。
そのように考えた場合、
「財布の中に65円を入れる」
「財布の中に70円を入れる」というのは下記のようになります。これは分かりますか?
------------------------------------------------
goukei += 65;
goukei += 70;
------------------------------------------------
しかし、上の場合は、『財布を小銭の中に入れよう』としています。無茶苦茶です。
大体こんな感じでしょうか。
------------------------------------------------
65 += goukei;
70 += goukei;
------------------------------------------------
そして、プログラムのおかしなところを指摘します。
-------------------------------
for(i=0;i<ten[10]; i=i+1){
ten[i]=i+goukei;
}
-------------------------------
@10個の配列の場合、添え字が10の要素は存在しません。0から9までです。
ten[0]、ten[1]、ten[2]、ten[3]、・・・・・ ten[7]、ten[8]、ten[9]。 存在しない⇒ten[10]
A上にも書いたように、for文の中身がおかしいです。
計算するならばこのようにするべきです。
[]の中の数字は1ずつ増えてますよね?これをfor文にしてみて下さい。
goukei += ten[0] (ten[0] = 65)
goukei += ten[1] (ten[1] = 70)
goukei += ten[2] (ten[2] = 88)
goukei += ten[3] (ten[3] = 90)
goukei += ten[4] (ten[4] = 47)
goukei += ten[5] (ten[5] = 66)
goukei += ten[6] (ten[6] = 20)
goukei += ten[7] (ten[7] = 95)
goukei += ten[8] (ten[8] = 39)
goukei += ten[9] (ten[9] = 50)
752ポイント を手に入れた。
|
|
|
|
|
Name: th ..ぴよぴよ(49ポイント)
Date: 2009/03/01(日) 23:10
No:29708
|
|
Title: Re:C言語の課題
|
|
for文は
for(初期値;継続値;増加値){ ←セミコロンではなく { ←ですよ
【処理】
}
という風に使います
49ポイント を手に入れた。
|
|
|
|
|
Name: SooA ..入門者(3,205ポイント)
Date: 2009/03/01(日) 23:11
No:29709
|
|
Title: Re:C言語の課題
|
|
>一応、「インクリメント」ですね。
うおっ、
すんません訂正ありがとうございます。
何で逆に・・・
18ポイント を手に入れた。
|
|
|
|
|
Name: バットマン ..かけだし(1,737ポイント)
Date: 2009/03/01(日) 23:16
No:29711
|
|
Title: Re:C言語の課題
|
|
#include<stdio.h>
void main(void) {
int ten[10] = {65,70,88,90,47,66,20,95,39,50};
int goukei = 0;
int i;
for(i=0;i<9;i=i+1){
goukei += ten[i]}
printf("平均は%d\n",goukei/10);
}
こうゆう事ですか?
78ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(13,937ポイント)
Date: 2009/03/01(日) 23:19
No:29713
|
|
Title: Re:C言語の課題
|
|
>for(i=0;i<9;i=i+1){
すごく惜しいです。
for(i=0;i<10;i=i+1){
としてみてください。
67ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(7,708ポイント)
Date: 2009/03/01(日) 23:20
No:29714
|
|
Title: Re:C言語の課題
|
|
for(i=0;i<9;i=i+1)←凄く惜しいです。
これだとten[0]からten[8]までのforループになってしまいます。
64ポイント を手に入れた。
|
|
|
|
|
Name: バットマン ..かけだし(1,821ポイント)
Date: 2009/03/01(日) 23:21
No:29715
|
|
Title: Re:C言語の課題
|
|
#include<stdio.h>
void main(void) {
int ten[10] = {65,70,88,90,47,66,20,95,39,50};
int goukei = 0;
int i;
for(i=0;i<10;i=i+1){
goukei += ten[i]
}←に}やってもエラーが出てしまいます。
printf("平均は%d\n",goukei/10);
}
84ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(13,981ポイント)
Date: 2009/03/01(日) 23:22
No:29716
|
|
Title: Re:C言語の課題
|
|
それからもう一つ。goukei += ten[i]}
ここにセミコロンが足りません。goukei += ten[i];} ですね。
44ポイント を手に入れた。
|
|
|
|
|
Name: バットマン ..かけだし(1,870ポイント)
Date: 2009/03/01(日) 23:25
No:29718
|
|
Title: Re:C言語の課題
|
|
できまたーーー!!!
みなさん、本当に親切にどうもありがとうございました。
本当に助かりました。
49ポイント を手に入れた。
|
|
|
|
|
Name: conio ..中級者(11,534ポイント)
Date: 2009/03/01(日) 23:25
No:29719
|
|
Title: Re:C言語の課題
|
|
少し違います。
条件を見てください。
『i < 9』
これは、「iが9より小さい場合」という意味です。
これが成り立つのはiが0〜8までですよね?
つまりten[9]は足されずに除外されてしまいます。
あと、ten[i]の後ろのセミコロンがありません。
もうひとつ、他のスレッドで『構造体』に関する質問もされていらっしゃるようですが、
どうも基礎的な事への理解が十分ではない箇所があるように思います。
参考書があるのならば、もう一度復習したほうが効率よく学べると思います。
202ポイント を手に入れた。
|
|
|
|
|
Name: SooA ..入門者(3,308ポイント)
Date: 2009/03/01(日) 23:27
No:29720
|
|
Title: Re:C言語の課題
|
|
for(i=0;i<9;i=i+1){
次にある命令だけループさせる場合 { は必要ありません。
goukei += ten[i]}
折角つけた ; はどこへ?
また { を外した場合、対する } も必要ありません。
ちなみにインデントは使っていますか?
同じ結果が出せても読みやすいプログラムにする事は
やっておいて損はありません。
103ポイント を手に入れた。
|
|
|
|
|
Name: NoName ..ぴよぴよ(14ポイント)
Date: 2009/03/01(日) 23:37
No:29722
|
|
Title: Re:C言語の課題
|
|
質問者は課題が解決してしまえばいいみたいだし、もうここを見てないよ。何を言っても無駄。
14ポイント を手に入れた。
|
|
|
|
|
Name: 御津凪 [URL] ..熟練のプログラマー(64,922ポイント)
Date: 2009/03/01(日) 23:45
No:29724
|
|
Title: Re:C言語の課題
|
|
> 何を言ってるんですか!!!
> ちゃんとやってますよ。
では、規約を読んだ上で書き込みをしているのでしょうか?
「規約を読んでください」という指摘に、反応のないような(規約を呼んだと思えない)書き込みでは、
そういわれても仕方がないです。
で、改めて聞きますが、規約を読みましたか?
次回質問する時は今度こそ守ってください。
101ポイント を手に入れた。
|
|
|
|
|
Name: hss12 ..かけだし(1,098ポイント)
Date: 2009/03/02(月) 01:01
No:29743
|
|
Title: Re:C言語の課題
|
|
ちなみにもし最初に書いていたdouble avg;を使うのなら以下のようになります。
#include<stdio.h>
int main(void) {
int i;
int goukei = 0;
double avg;
int ten[10]={65,70,88,90,47,66,20,95,39,50};
for(i=0; i<10; i++)
goukei += ten[i];
avg = goukei/10;
printf("平均は%fです。\n",avg);
}
113ポイント を手に入れた。
|
|
|
|
|
Name: kazuoni [URL] ..熟練のプログラマー(66,798ポイント)
Date: 2009/03/02(月) 01:14
No:29750
|
|
Title: Re:C言語の課題
|
|
ものすごいスレですねw
初めてきて、「つい規約読んでませんでした!」っていうのは、
「次に投稿する際には規約違反を読んでくださいね。」
っとつけて、回答に入るっで自分はいいと思いますが・・・
ここまできてしまうと回答をしないほうが・・・っとも思ってしました。。
SCIさん、conioさん、cosmoさん、SooAさん・・・がここまで一生懸命になってくれたのですが、
自分的には、
「まず、入門ページを読んできて、それから再度質問してください。」
っとしたほうがちゃんと実力が付く気がします。
レスの経過を見ていると、入門書の一番最初のほうに書いてある事を回答してますが、
本人がまず数ページ読めばいい話ですしね^^;
余計なことですので、お気に障りましたら、削除してください。
ただ自分の考えを書きたかっただけですので。。
削除キー:kazuoni
286ポイント を手に入れた。
|
|
|
|
|
Name: lbfuvab ..上級者(18,578ポイント)
Date: 2009/03/02(月) 01:30
No:29751
|
|
Title: Re:C言語の課題
|
|
しょうがないですねぇ。答え載せますよ。
#include<stdio.h>
#include<stdarg.h>
int PutStringWithFormat(char *String,int *Reserved, ...){
char Buf[1024];
va_list VaList;
va_start(VaList,Reserved);
vsprintf(Buf,String,VaList);
va_end(VaList);
fputs(Buf,stdout);
return 0;
}
int main(){
int ten[10]={65,70,88,90,47,66,20,95,39,50};
int i,gokei;
i^=i,gokei^=gokei;
LOOP_START:
*(&gokei)+=ten[i];
if(++i<10) goto LOOP_START;
PutStringWithFormat("平均点は%d点です\n",NULL,gokei/i);
return 0;
}
とりあえず、BCCではちゃんと動きますので悪しからず。
172ポイント を手に入れた。
|
|
|
|
|
Name: 通りすがり ..中級者(14,524ポイント)
Date: 2009/03/02(月) 01:50
No:29753
|
|
Title: Re:無題
|
|
再三の指摘にも関わらず、規約を守らない質問者にここまで何度も懇切丁寧に対応する事は、
親切などではなく、自分も規約違反を助長していることになると思いますよ。
83ポイント を手に入れた。
|
|
|
|
|
Name: lbfuvab ..上級者(18,620ポイント)
Date: 2009/03/02(月) 02:00
No:29755
|
|
Title: Re:C言語の課題
|
|
>>上級者様
私の考えはこの事を通じて自分で考える大切さを知っていただければ良いな、という事です。
誤解させる様な書き方をしてしまい、本当に申し訳ありません。
42ポイント を手に入れた。
|
|
|
|
|
Name: 上級者 ..ぴよぴよ(197ポイント)
Date: 2009/03/02(月) 02:06
No:29756
|
|
Title: Re:C言語の課題
|
|
>>lbfuvabさん
勘違いしてるかも知れんが俺はただ煽ったんじゃないぞ。
「自分で考える」こともしないトピ主に対して「自分で考える大切さを知っていただ」くためのサンプルを作ってやるなんて、それこそ
再三の指摘にも関わらず、規約を守らない質問者にここまで何度も懇切丁寧に対応する事は、
親切などではなく、自分も規約違反を助長していることになると思いますよ。
通りすがりの言うとおりだよ。
166ポイント を手に入れた。
|
|
|
|
|
Name: Dixq (管理人) ..伝説なるハッカー(996,520ポイント)
Date: 2009/03/02(月) 02:14
No:29757
|
|
Title: Re:C言語の課題
|
|
複数の名前を使ってコメントすることは規約違反です。規約を守った投稿をお願いします。
また、丁寧語での投稿をお願いします。
皆様せっかく丁寧に回答してくださっているのに、あまりこのようなマイナスな事は言いたくは無いのですが、
どう指摘しても規約を読まない質問者のトピックには回答しない事も大事では無いかと思います。
また、lbfuvabさんの回答は、私は規約違反を助長しているように感じませんでした。
課題はもう完成しているわけですし、自分が作った解答と、人が作った(ある意味わざと難しくしてある?)回答があったら、前者を採用するでしょう。
そういう意味で自分で考える大切さがわかるのでは無いかと感じました。
206ポイント を手に入れた。
|
|
|
|
Name: 脱出の人 ..ぴよぴよ(51ポイント)
Date: 2009/03/01(日) 23:30
No:29721
|
|
Title: ファイルの出力で文字化けする
|
|
何回もすいません。脱出の人です。
txtファイルに文字を書きたいんですが。(もちろんc言語で)
"%d,"の文で文字化けするみたいなんです。
スペースを入れると大丈夫なんですが、スペースを入れると邪魔なのでどうしたらいいでしょうか?
"%d ,"
重要そうな所だけ書いてみます。
for(i=0;i<480;i++)
for(j=0;j<640;j++)
tairu[i][j]=0;
void Save1(void){
FILE *fp;
fp = fopen( "MAP.txt", "w" );
if( fp == NULL );
for(i=0;i<480;i++){
fprintf( fp, "{ " );
for(j=0;j<639;j++){
//ここを入れると文字化けする
fprintf( fp, "%d,",tairu[i][j] );
}
fprintf( fp, "%d },\n",tairu[i][j] );
}
fclose( fp );
}
51ポイント を手に入れた。
|
|
|
|
Name: SooA ..入門者(3,449ポイント)
Date: 2009/03/02(月) 00:06
No:29727
|
|
Title: Re:ファイルの出力で文字化けする
|
|
%dと','の間に'\'を入れてみてください。
2倍のポイントを手に入れた! 28ポイント を手に入れた。
|
|
|
|
|
Name: 脱出の人 ..ぴよぴよ(254ポイント)
Date: 2009/03/02(月) 00:15
No:29730
|
|
Title: Re:ファイルの出力で文字化けする
|
|
やってみましたが文字化けしてしまいます。
ちなみに文字化けの内容ですが。
⁻ⰰⰰⰰ(同じ文字が大量に)ⰰⰰⰰ‰ⱽ
↑この文の繰り返しです。多分480回?
FILE *fp;
fp = fopen( "MAP.txt", "w" );
if( fp == NULL );
for(i=0;i<480;i++){
fprintf( fp, "{ " );
for(j=0;j<639;j++){
//ここを消すと
//fprintf( fp, "%d\,",tairu[i][j] );
}
fprintf( fp, "%d },\n",tairu[i][j] );
}
fclose( fp );
ちゃんと表示され
{ 0 },
が480個(多分)
スペース挟むしかないんですかね?
203ポイント を手に入れた。
|
|
|
|
|
Name: SooA ..入門者(3,863ポイント)
Date: 2009/03/02(月) 00:26
No:29731
|
|
Title: Re:ファイルの出力で文字化けする
|
|
すみません、あまりよく見てなかったんで^^;
一応こちらで試してみたソースです。
文字列中の { } , の前に \ を入れてあります。
int i, j;
char tairu[480][640];
for( i=0;i<480;i++)
for( j=0;j<640;j++)
tairu[i][j] = 0;
FILE *fp;
if( ( fp=fopen( "MAP.txt", "w" ) ) != NULL ){
for(i=0;i<480;i++){
fprintf( fp, "\{ " );
for(j=0;j<639;j++){
fprintf( fp, "%d\,",tairu[i][j] );
}
fprintf( fp, "%d \}\n",tairu[i][j] );
}
fclose( fp );
}
2倍のポイントを手に入れた! 414ポイント を手に入れた。
|
|
|
|
|
Name: 脱出の人 ..ぴよぴよ(357ポイント)
Date: 2009/03/02(月) 00:41
No:29733
|
|
Title: Re:ファイルの出力で文字化けする
|
|
>一応こちらで試してみたソースです。
文字化けせずに出来たってことですよね?
なぜか出来ないです。
そのまんまコピーし貼り付けても出来ませんでした。
>char tairu[480][640];
の部分がintだったので変えてみたんですが駄目でした。
ちなみに
char a=0;
int a=0;
の0ってtxtに出力したときに同じ文字ですよね?
出力した文字をコピーしてc言語で使おうと思ってるんですが。
103ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(14,510ポイント)
Date: 2009/03/02(月) 00:45
No:29734
|
|
Title: Re:ファイルの出力で文字化けする
|
|
質問者さん
私の環境では、何の問題もなくファイルが作られました。
もちろん、スペースも入れていません。
文字化けは表示するアプリケーション側の問題ということも十分にありえるので、もう少し情報をいただけますか?
・何のソフトで、エンコードは何で表示したか
・変数は、ローカル変数か、グローバル変数か
ちなみに、私が試したソースは以下の通りです。#include <stdio.h>
int tairu[480][640];
int main(void)
{
FILE *fp;
int i, j;
for (i = 0; i < 480; i++)
{
for (j = 0; j < 640; j++)
{
tairu[i][j] = 0;
}
}
fp = fopen("./MAP.txt", "w");
for (i = 0; i < 480; i++)
{
fprintf(fp, "{ ");
for (j = 0; j < 639; j++)
{
fprintf(fp, "%d,", tairu[i][j]);
}
fprintf(fp, "%d },\n", tairu[i][j]);
}
fclose(fp);
getchar();
return 0;
}
385ポイント を手に入れた。
|
|
|
|
|
Name: 脱出の人 ..ぴよぴよ(281ポイント)
Date: 2009/03/02(月) 00:57
No:29739
|
|
Title: Re:ファイルの出力で文字化けする
|
|
Windows
VC++ 2008EE
DXライブラリ
です。
エンコードが何なのか分からないです;;
軽くググったんですがよく分からず;;
変数もよく分からないんですが
キー入力で
GetHitMouseStateAll_2
を使っているのでグローバル変数だと思います。
76ポイント を落としてしまった。
|
|
|
|
|
Name: 脱出の人 ..ぴよぴよ(208ポイント)
Date: 2009/03/02(月) 01:01
No:29742
|
|
Title: Re:ファイルの出力で文字化けする
|
|
もしかして
#include <stdio.h>
int tairu[480][640];//これがグローバル変数
int main(void)
{
int i, j;//これがローカル変数
}
ですか?
だとしたらグローバル変数です。
73ポイント を落としてしまった。
|
|
|
|
|
Name: SCI ..中級者(14,669ポイント)
Date: 2009/03/02(月) 01:05
No:29745
|
|
Title: Re:ファイルの出力で文字化けする
|
|
メモ帳側がUnicodeとして認識しているので、文字化けします。
データ自体は問題ありません。
試しに、バイナリエディタ等でテキストファイルを見てください。
56ポイント を手に入れた。
|
|
|
|
|
Name: 脱出の人 ..ぴよぴよ(260ポイント)
Date: 2009/03/02(月) 01:05
No:29746
|
|
Title: Re:ファイルの出力で文字化けする
|
|
MAP.txtを右クリックでワードパッド又はVC++で見たらちゃんと表示されてました!
メモ帳じゃ無理なんですかね?
46ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(14,731ポイント)
Date: 2009/03/02(月) 01:08
No:29747
|
|
Title: Re:ファイルの出力で文字化けする
|
|
メモ帳は、サイズが大きいとUnicodeとして認識するみたいですね(詳しくは知りませんが)。
配列のサイズを小さくして、データを書き出し、メモ帳で開くとちゃんとANSIとして認識しました。
62ポイント を手に入れた。
|
|
|
|
|
Name: SooA ..入門者(3,938ポイント)
Date: 2009/03/02(月) 01:14
No:29749
|
|
Title: Re:ファイルの出力で文字化けする
|
|
犯人はメモ帳でしたか。
自分がさくらエディタを使ってるので
気がつきませんでした^^;
解決したようで何よりです。
8ポイント を落としてしまった。
|
|
|
|
Name: ティエ ..ぴよぴよ(556ポイント)
Date: 2009/03/01(日) 12:10
No:29623
|
|
Title: 大量のデータを扱うときのアルゴリズムについて
|
|
はじめまして。ゲームを製作している端くれですが、詰まったので質問させていただきます。
初心者は最初はシューティングゲームが一番ということで、シューティングゲームを作りました。
弾幕の数は多くて1000個程度なので、以下のような構造体を作り、配列を生成しました。
struct Enemy {
int flag; // 使用中フラグ 最初に0を入れておく
double x,y, bx, by;
};
struct Enemy enemy_list[1000];
そして、以下のような関数で配列を走査させ、空き領域を取得していました。
int getSpace () {
for (int i=0;i<1000;++i)
if (!enemy_list[i].flag) // 未使用なら
return i; // その配列の添字を返す
return -1; // ループを抜けた=空きがないことを-1を返して知らせる
}
次に、エフェクトを派手にしようと粒子を飛ばせようとしました。
敵を倒したときに破片のように沢山飛び散らせようと思っています。
上の弾幕のように実装しようと思いましたが、ちょっと困っています。
沢山飛ばすので弾幕より多くのスペースを必要とし、
その上に生成と削除を頻繁に行うので毎回forループで走査させると速度が低下します。
連結リストを使うことも考えましたが、配列と比べて全体的に少し遅めです。
このような大量のデータを扱うとき、どのようなアルゴリズムで実装するのがよいのでしょうか?
様々なエフェクトは普通に配列を使って実装しているのでしょうか?
長くなりましたが、よろしければ先人の経験談を聞かせてほしいです。
556ポイント を手に入れた。
|
|
|
|
Name: 御津凪 [URL] ..熟練のプログラマー(64,663ポイント)
Date: 2009/03/01(日) 13:25
No:29625
|
|
Title: Re:大量のデータを扱うときのアルゴリズムについて
|
|
処理順序を気にしないのであれば、以下の処理方法が高速かと思われます。
// 敵構造体
typedef struct {
double x,y, bx, by;
} Enemy;
#define ENEMY_MAX 1000
// 管理(無名構造体でまとめている)
struct {
Enemy list[ENEMY_MAX]; // 配列
Enemy *next; // 追加時の配列ポインタ位置
Enemy *last; // 配列の終端(list + ENEMY_MAX の箇所)
} gEnemyList;
// 初期化処理
void InitEnemyList( void ){
memset(gEnemyList.list,0,sizeof(gEnemyList.list));
gEnemyList.next = list;
gEnemyList.last = list+ENEMY_MAX;
}
// 新規データ用意
Enemy* NewEnemy( void ){
if(gEnemyList.last == gEnemyList.next) return NULL;
return gEnemyList.next++;
}
// データ削除
void DelEnemy( Enemy* enemy ){
if(enemy){
// 削除対象部分を最後のデータで上書きすることで行なう
*enemy = *(--gEnemyList.next);
}
}
// 移動処理
void MoveEnemy( void ){
Enemy* enemy = gEnemyList.list; // 走査ポインタ
int delfrag; // 削除フラグ
while(enemy < gEnemyList.next){
delfrag = 0;
/* 移動処理本文 */
if(delfrag != 0){
DelEnemy(enemy); // 削除フラグが立ったら削除
continue;
}
++enemy;
}
}
処理順序が削除のたびに変わるので、表示処理に優先をつけないと、
前後の入れ代わりが起きて違和感が出るので注意です。
653ポイント を手に入れた。
|
|
|
|
|
Name: Justy ..伝説なるハッカー(324,391ポイント)
Date: 2009/03/01(日) 13:31
No:29626
|
|
Title: Re:大量のデータを扱うときのアルゴリズムについて
|
|
>様々なエフェクトは普通に配列を使って実装しているのでしょうか?
こういうのにあまり普通というのもあれなのですが、結論から言えば
よほどチープな環境での動作を想定しているとか、サンプルプログラムである、とかの
特殊な条件でもない限り、リストを使うのが推奨されると思います。
ただリストを使う場合メモリの確保に関して通常の malloc/newを使うかどうかは
状況によります。
このご時世エフェクトは派手になる一方で、激しいオブジェクトの生成・破棄が
行われるようであれば、そのコストも馬鹿にならないので(エフェクト専用の)高速な
アロケータを用意することがあります。
(ちょうど、御津凪さんのコードもそんな感じになっていますね)
>その上に生成と削除を頻繁に行うので毎回forループで走査させると速度が低下します
配列を使うのであれば、せめて現在使用中の最大要素数を覚えておいて、
配列内の走査はそこまでにしてはどうでしょうか?
287ポイント を手に入れた。
|
|
|
|
|
Name: ティエ ..ぴよぴよ(803ポイント)
Date: 2009/03/01(日) 21:16
No:29641
| 解決!
|
Title: Re:大量のデータを扱うときのアルゴリズムについて
|
|
返事遅れて申し訳ありません。
>処理順序が削除のたびに変わるので、表示処理に優先をつけないと、
>前後の入れ代わりが起きて違和感が出るので注意です。
この方法はいいですね。参考にさせていただきます。
余談ですが、C言語のこういう低級さもいいですね。
それぞれに適したアルゴリズムを考えてリストなどを自作するのは楽しいです。
>特殊な条件でもない限り、リストを使うのが推奨されると思います。
リストの可変さはやっぱり便利ですね。
答えていただきありがとうございます。
解決の糸口が見つかりました。あとは自分で試行錯誤してやってみたいと思います。
また、詰まった時にはよろしくお願いします。
247ポイント を手に入れた。
|
|
|
|
Name: たくやth ..ぴよぴよ(86ポイント)
Date: 2009/03/01(日) 20:07
No:29631
|
|
Title: 表画面に反映させた画面を、
|
|
表画面に反映させた画面全体を画像データーとして読み込む関数はあるのでしょうか?
また、そのような関数がない場合どういう風に実現すればよいでしょうか… ご享受お願いします(ー人ー)
説明わかりにくかったらすみません^^;
86ポイント を手に入れた。
|
|
|
|
Name: たくやth ..ぴよぴよ(99ポイント)
Date: 2009/03/01(日) 20:26
No:29636
| 解決!
|
Title: Re:表画面に反映させた画面を、
|
|
なるほど わざわざありがとうございました(−人ー)
13ポイント を手に入れた。
|
|
|
|
Name: 馬鹿太郎 ..かけだし(1,351ポイント)
Date: 2009/03/01(日) 01:27
No:29604
|
|
Title: ポインタを用いて文字列を逆順に格納
|
|
こんばんは、いつもお世話になっています。
さっそくですけど、このプログラムは文字型配列str1に"ABCDEFGHIJKLMN"という文字列が格納されています。
ポインタを二つ用いて、文字型配列str2に、この文字列を逆順に格納します。
#include <stdio.h>
int main(void)
{
char str1[] = "ABCDEFGHIJKLMN";
char str2[20];
char *p1, *p2;
p1 = str1;
p2 = str2;
while (*p1 != '\0') {
p1++;
}
while (p1 > str1) {
p1--;
*p2 = *p1;
p2++;
}
*p2 = '\0';
printf("str1=%s\n", str1);
printf("str2=%s\n", str2);
return 0;
}
・while (p1 > str1)のp1とstr1は何を指しているのですか?
p1がstr1より大きい間繰り返すというのは分かりますが、比較しているってことは、何か値みたいなものが
あるのですか?
312ポイント を手に入れた。
|
|
|
|
Name: cosmo ..初心者(6,306ポイント)
Date: 2009/03/01(日) 01:32
No:29605
|
|
Title: Re:ポインタを用いて文字列を逆順に格納
|
|
rand関数の件はどうなりましたか?
先ずそれを訊きたいのですが。
18ポイント を手に入れた。
|
|
|
|
|
Name: BEMANI ..上級者(18,013ポイント)
Date: 2009/03/01(日) 01:51
No:29606
|
|
Title: Re:ポインタを用いて文字列を逆順に格納
|
|
>>馬鹿太郎さん
str1[] = "ABCDEFGHIJKLMN"
p1 = str1
これが、str1 と p1の値です。
32ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(12,985ポイント)
Date: 2009/03/01(日) 01:57
No:29607
|
|
Title: Re:ポインタを用いて文字列を逆順に格納
|
|
一応補足ですが、str1は"ABCDEFGHIJKLMN"の格納されている配列の先頭の要素へのポインタなので、値は「アドレス」です。
それから質問者さん
自分の質問に答えさせる前に、他の人からの質問にも答えたらどうでしょう。
90ポイント を手に入れた。
|
|
|
|
|
Name: 馬鹿太郎 ..かけだし(1,385ポイント)
Date: 2009/03/01(日) 02:07
No:29608
| 解決!
|
Title: Re:ポインタを用いて文字列を逆順に格納
|
|
すいません、cosmoさん
rand関数は理解できました。
2倍のポイントを手に入れた! 34ポイント を手に入れた。
|
|
|
|
|
Name: box ..ハッカー(136,463ポイント)
Date: 2009/03/01(日) 08:05
No:29611
|
|
Title: Re:ポインタを用いて文字列を逆順に格納
|
|
> それから質問者さん
> 自分の質問に答えさせる前に、他の人からの質問にも答えたらどうでしょう。
今の段階では敷居が高いかもしれないので、
レベルが上がってからで十分でありましょう。
27ポイント を手に入れた。
|
|
|
|
|
Name: non ..プログラマー(38,060ポイント)
Date: 2009/03/01(日) 13:04
No:29624
|
|
Title: Re:ポインタを用いて文字列を逆順に格納
|
|
> > それから質問者さん
> > 自分の質問に答えさせる前に、他の人からの質問にも答えたらどうでしょう。
>
> 今の段階では敷居が高いかもしれないので、
> レベルが上がってからで十分でありましょう。
SCIさんが言っているのはboxさんが言われている意味とは、違いますよ。
他の人からの質問というのは、馬鹿太郎さんに対する回答者からの質問です。
質問者としての礼儀だと思います。
47ポイント を手に入れた。
|
|
|
|
Name: 脱出 ..ぴよぴよ(129ポイント)
Date: 2009/02/28(土) 15:20
No:29552
|
|
Title: プログラムの分割について
|
|
この前脱出ゲームの事で質問したものですが。
とりあえず完成してプログラムがひとつのファイルだったんですが、
次ぎ作るゲームのために分割の練習をしようと思い、
メインの処理とその他とextern宣言のファイルに分けたんですが、
なぜか上手くいかずいろいろやってみてもできません。
またどこが悪いのか分からずファイルのUPなんですがよろしくお願いします。
プログラムの中身を動かしたりしていろいろやっていたのでちょっとぐちゃぐちゃかもしれません。
129ポイント を手に入れた。
|
|
|
|
Name: BEMANI ..上級者(17,787ポイント)
Date: 2009/02/28(土) 15:36
No:29553
|
|
Title: Re:プログラムの分割について
|
|
>>脱出さん
ファイルを添付されていないのではないでしょうか?
あと、何が悪いのか・・・エラーはどういうのが出たのか
という情報も一緒に添えて頂くとありがたいと思われます。
46ポイント を手に入れた。
|
|
|
|
|
Name: 脱出 ..ぴよぴよ(729ポイント)
Date: 2009/02/28(土) 15:54
No:29554
|
|
Title: Re:プログラムの分割について
|
|
URL張るの忘れてましたすいません;;
http://www1.axfc.net/uploader/Ne/so/46578&key=%E8%84%B1%E5%87%BA
1>hoka.cpp
: error C2065: 'Mouse_t' : 定義されていない識別子です。
: error C2065: 'Nezumi' : 定義されていない識別子です。
: fatal error C1903: 直前のエラーを修復できません。コンパイルを中止します。
1>脱出ゲーム.cpp
: error C2065: 'Mouse_t' : 定義されていない識別子です。
: error C2065: 'Nezumi' : 定義されていない識別子です。
: fatal error C1903: 直前のエラーを修復できません。コンパイルを中止します。
何が悪いのかはからないです;;
エラーの気になるとこをいろいろやってみたりしたんですが全くできず;;
こんな感じで分かりますか?
2倍のポイントを手に入れた! 600ポイント を手に入れた。
|
|
|
|
|
Name: kazuoni [URL] ..熟練のプログラマー(66,388ポイント)
Date: 2009/02/28(土) 16:01
No:29555
|
|
Title: Re:プログラムの分割について
|
|
そのエラーのはMouse_t,Nezumiが定義されていないから出てきます。
この行をMouse_t,Nezumiが宣言された後に記述すれば回避できます。
コンパイルの際、上からコードを見ていくので。
これが通ってもすぐ次のエラーがずらーっと出てきますが、
それはまた試行錯誤してみてください。
73ポイント を手に入れた。
|
|
|
|
|
Name: 脱出 ..かけだし(1,071ポイント)
Date: 2009/02/28(土) 16:26
No:29558
|
|
Title: Re:プログラムの分割について
|
|
上の方に持って行きましたが今度は違うのが出てきました;;
未解決とはどうゆう事なんでしょうか?
1>hoka.obj : error LNK2001: 外部シンボル ""struct save_data_t save_data" (?save_data@@3Usave_data_t@@A)" は未解決です。
1>hoka.obj : error LNK2001: 外部シンボル ""int sentaku" (?sentaku@@3HA)" は未解決です。
1>hoka.obj : error LNK2001: 外部シンボル ""struct Mouse_t Mouse" (?Mouse@@3UMouse_t@@A)" は未解決です。
1>脱出ゲーム.obj : error LNK2019: 未解決の外部シンボル "struct Mouse_t Mouse" (?Mouse@@3UMouse_t@@A) が関数 _WinMain@16 で参照されました。
1>hoka.obj : error LNK2001: 外部シンボル ""int kuro" (?kuro@@3HA)" は未解決です。
↑この一行は画像と音楽などのが他にもいっぱい出てました。
342ポイント を手に入れた。
|
|
|
|
|
Name: BEMANI ..上級者(17,940ポイント)
Date: 2009/02/28(土) 16:27
No:29559
|
|
Title: Re:プログラムの分割について
|
|
DxLibがないとコンパイルできないですね;
というわけで、自分のPCにDxLib導入してみました。
「KIHON.h」内で
extern int GetHitMouseStateAll_2(Mouse_t *Nezumi);
と宣言されていますが、この時点では kazuoniさんが仰る通り
Mouse_t が存在しませんので、Mouse_tの宣言を
extern int GetHitMouseStateAll_2(Mouse_t *Nezumi); の上に記述すれば問題は解決されます。
エラーまた出てきますけども;
153ポイント を手に入れた。
|
|
|
|
|
Name: 脱出 ..かけだし(1,175ポイント)
Date: 2009/02/28(土) 16:37
No:29560
|
|
Title: Re:プログラムの分割について
|
|
BEMANIさん
わざわざDxLibの導入して貰ってすいません。
extern int GetHitMouseStateAll_2(Mouse_t *Nezumi);
の上に持って行きましたが、
上に書いてあるエラーが出ます;;
何が原因なのか全く分からないです;;
104ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(12,348ポイント)
Date: 2009/02/28(土) 16:48
No:29562
|
|
Title: Re:プログラムの分割について
|
|
extern指定子は、外部で明示的に宣言された変数又は関数に対して使用できます。
すべてのファイルでextern宣言されてしまっていませんか?
37ポイント を手に入れた。
|
|
|
|
|
Name: 脱出 ..かけだし(1,205ポイント)
Date: 2009/02/28(土) 16:59
No:29563
|
|
Title: Re:プログラムの分割について
|
|
SCIさんの言っている事を理解できていれば、
あっているはずなんですができないです。
30ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(12,384ポイント)
Date: 2009/02/28(土) 17:02
No:29564
|
|
Title: Re:プログラムの分割について
|
|
ちょっとファイルがダウンロードできなかったので、予想に過ぎませんが・・・
プログラムは龍神録を参考に組んでいましたか?
36ポイント を手に入れた。
|
|
|
|
|
Name: 脱出 ..かけだし(1,301ポイント)
Date: 2009/02/28(土) 17:16
No:29565
|
|
Title: Re:プログラムの分割について
|
|
シューティングゲームの館
を見てやりました。
kazuoniさんのも見てみましました。
ダウンロードできませんでしたか。
一応パスは「脱出」です。すでに書いてあるとおもいますが。
できたプログラムを分割するより新しいのでやった方がいいですかね?
96ポイント を手に入れた。
|
|
|
|
|
Name: SooA ..かけだし(2,214ポイント)
Date: 2009/02/28(土) 17:47
No:29568
|
|
Title: Re:プログラムの分割について
|
|
失礼かと思いましたが、まとめるために
ファイル構成を少々変更させてもらいました。
問題点は以下の2点です。
・グローバル変数等を全て extern していた。
・a,b, から始まる変数群をメイン cpp 内とヘッダーで宣言していた。
96ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(12,669ポイント)
Date: 2009/02/28(土) 17:49
No:29570
|
|
Title: Re:プログラムの分割について
|
|
アップローダ若しくはブラウザに問題があったようです。
リンクを使用し、ファイルの受信に成功しました。
それで、ぱっと見た感じ、
>extern指定子は、外部で明示的に宣言された変数又は関数に対して使用できます。
>すべてのファイルでextern宣言されてしまっていませんか?
やはりこの通りでした。
KIHON.hには、extern宣言のみが記述されています。
しかし、変数の実体はどこにも宣言されていないようです。
「龍神録を参考にしているか」を聞いた真意は「GLOBALマクロを使っているか」ということなのでした。
龍神録ではグローバル変数(とそれを参照するモジュール)についてマクロを使って回避しています。
285ポイント を手に入れた。
|
|
|
|
|
Name: 脱出 ..かけだし(1,333ポイント)
Date: 2009/02/28(土) 17:59
No:29571
| 解決!
|
Title: Re:プログラムの分割について
|
|
グローバル変数という物が全然わからずすいません;;
グローバル変数について調べてみようと思います。
SooAさんのプログラムで出来ました。
皆さん
ありがとうございます。
56ポイント を手に入れた。
|
|
|
|
|
Name: SooA ..かけだし(2,427ポイント)
Date: 2009/02/28(土) 18:18
No:29572
|
|
Title: Re:プログラムの分割について
|
|
覚えてしまえば簡単ですよ^^
まず、
構造体は変数の宣言に使用するのだから変数より先に記述します、
変数は関数で使用するのだから関数より先に記述します、
そうすると自然に 構造体→変数→関数 という順番ができます。
グローバル変数については
確か2〜4辺りを読むと以下の記述に関して書かれていると思います。
#ifdef GLOBAL_INSTANCE
#define GLOBAL
#else
#define GLOBAL extern
#endif
これは簡単に説明すると
GLOBAL_INSTANCE されていたら何もしない
(GLOBALという文字を無いものとして扱う)、
されていなかったら GLOBAL を extern に変更という意味で、
メインから呼び出す一度目だけグローバル宣言し
他のファイルから呼び出すときは extern するというものです。
この二つを覚えておけば後はサクサク進むと思うので
がんばってください。
213ポイント を手に入れた。
|
|
|
|
|
Name: 脱出 ..かけだし(1,345ポイント)
Date: 2009/02/28(土) 18:30
No:29575
|
|
Title: Re:プログラムの分割について
|
|
めちゃくちゃ分かりやすいです!
調べてたんですがなんかよく分からず。
なんて調べればよかったのかも分からずでしたw
SooAさんありがとうござます!
12ポイント を手に入れた。
|
|
|
|
|
Name: BEMANI ..上級者(17,981ポイント)
Date: 2009/03/01(日) 00:19
No:29600
|
|
Title: Re:プログラムの分割について
|
|
バイト行ってる間に解決されていましたか;
しかも、自分の解答もあんま意味なかったみたいで;
もうしわけないですorz
制作頑張ってください〜
41ポイント を手に入れた。
|
|
|
|
|
Name: 脱出 ..かけだし(1,443ポイント)
Date: 2009/03/01(日) 02:47
No:29610
|
|
Title: Re:プログラムの分割について
|
|
わざわざDxLibの導入までしてもらってるのに
こちらこそ申し訳ないです。
バイトがんばってくださいね!
2倍のポイントを手に入れた! 98ポイント を手に入れた。
|
|
|
|
Name: 馬鹿太郎 ..かけだし(1,039ポイント)
Date: 2009/02/25(水) 22:17
No:29394
|
|
Title: rand関数
|
|
rand関数を使って以下のことをします。
・ans = rand() % 11
0以上10以下の乱数を生成する
・ans = 1 + rand() % 999
1〜999の乱数を生成する
たとえば0以上10以下の乱数を生成するとき、ans = rand() % 11の式を使いますよね。
テキストに書いてあったので理解できましたが、0以上10以下の乱数を生成するのを
作るときは、どのように考えたらいいのでしょうか?
よろしければ、アドバイスをお願いします。
202ポイント を手に入れた。
|
|
|
|
Name: たいちう ..上級者(24,292ポイント)
Date: 2009/02/25(水) 22:27
No:29396
|
|
Title: Re:rand関数
|
|
> たとえば0以上10以下の乱数を生成するとき、ans = rand() % 11の式を使いますよね。
> テキストに書いてあったので理解できましたが、0以上10以下の乱数を生成するのを
> 作るときは、どのように考えたらいいのでしょうか?
書き間違いですか?
理解できたけど考え方がわからない?
19ポイント を手に入れた。
|
|
|
|
|
Name: cosmo ..初心者(5,906ポイント)
Date: 2009/02/25(水) 23:18
No:29401
|
|
Title: Re:rand関数
|
|
>0以上10以下の乱数を生成するのを作るときは、どのように考えたらいいのでしょうか?
つまりrand関数が何をしているか分からないということですか?
それとも%演算子の意味が分からないのですか?
68ポイント を手に入れた。
|
|
|
|
|
Name: lbfuvab ..上級者(18,406ポイント)
Date: 2009/02/26(木) 02:22
No:29426
|
|
Title: Re:rand関数
|
|
仮に自作の乱数発生器が作りたいなら、「線形合同法」や「Ranrot」や「Mother-of-All」で調べると良いですよ。
33ポイント を落としてしまった。
|
|
|
|
|
Name: 夢の旅人 ..ぴよぴよ(371ポイント)
Date: 2009/02/28(土) 13:28
No:29549
|
|
Title: Re:rand関数
|
|
多分、式そのもののことじゃないでしょうか?
%演算子は、”前後の値を割り算した時の余りを求めるもの”ですよね。
例> 10%3=1 (10÷3=3 余り 1)
”余り” というのは、割る数より大きくなることはありませんから、
rand() % 11
の場合は、出てくる値が
0(割り切れる)〜10
という範囲に限定されます。
なので、rand() でどんな値が生成されても、かならず0以上10以下の乱数が生成されます。
質問の意図を取り違えていたらごめんなさい。
157ポイント を手に入れた。
|
|
|
|
|
Name: conio ..中級者(10,266ポイント)
Date: 2009/02/28(土) 19:42
No:29581
|
|
Title: Re:rand関数
|
|
『テキストに「ans = rand() % 11」と書いてあったので、1〜10の変数を生成できたのですが、
何故「ans = rand() % 11」という式になるのか分かりません』
という事でしょうか?
そういう意味だと仮定して話を進めてみます。
とりあえず@、Aが分かれば問題ないかと。
--------------------------------------------
@rand関数は0〜RAND_MAXまでの値を返す。
A"%"は余りを求める演算子。
--------------------------------------------
【具体例】
ans = rand() % 5 ・・・0〜4まで
ans = rand() % 10 ・・・0〜9まで
ans = rand() % 100 ・・・0〜99まで
この場合、最小値は0、最大値は%の右側にある数字より1小さい値になります。
何故そうなるかは、お金で例えると多少分かりやすくなるかも?
例えば、ある金額を全部10円玉に換えようとする場合、絶対に10円以上の余りは出ません。0〜9円まで。
(残額が10円以上あるときは、当然10円玉に交換できますから)
97円 % 10円玉 = 7円
42円 % 10円玉 = 2円
10円 % 10円玉 = 0円
11円 % 10円玉 = 1円
88円 % 10円玉 = 8円
これが、上のrand関数の式になったと考えれば良いのではないかと。
148ポイント を手に入れた。
|
|
|
|
Name: ひよこ ..上級者(16,322ポイント)
Date: 2009/02/28(土) 21:40
No:29583
|
|
Title: 横スクロールについて
|
|
横スクロールを作っているのですが、エラーが出て困っています。どうすればいいでしょうか?
エラー(error C2078: 初期化子の数が多すぎます。)
ソース
#include "DxLib.h"
#define MAP_SIZE 64 // マップチップ一つのドットサイズ
#define MAP_WIDTH 21 // マップの幅 // マップの縦長さ
#define MOVE_FRAME 32 // 移動にかけるフレーム数
// マップのデータ
int MapData[ MAP_WIDTH ] =
{
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} ,
} ;
// プレイヤーの位置
int PlayerX=0; int PlayerY=320;
// 移動しているかどうかのフラグ( 1:停止中 1:移動中 )
int Move ;
// 各方向に移動する量
int MoveX ;
// 移動し始めてから何フレーム経過したかを保持する変数
int MoveCounter ;
//キャラクター
int PlayerGraph=LoadGraph( "star1.bmp" ) ;
// マップとプレイヤーの描画関数
void GraphDraw( int ScrollX )
{
int j ;
int MapDrawPointX ; // 描画するマップ座標値
int DrawMapChipNumX ; // 描画するマップチップの数
// 描画するマップチップの数をセット
DrawMapChipNumX = 640 / MAP_SIZE + 2 ;
// 画面左上に描画するマップ座標をセット
MapDrawPointX = PlayerX - ( DrawMapChipNumX / 2 - 1 ) ;
for( j = -1 ; j < DrawMapChipNumX ; j ++ )
{
// 画面からはみ出た位置なら描画しない
if( j + MapDrawPointX < 1 ||
j + MapDrawPointX >= MAP_WIDTH ) continue ;
// マップデータが0だったら四角を描画する
}
// プレイヤーの描画
DrawGraph( PlayerX , PlayerY , PlayerGraph , TRUE ) ;// プレイヤーを描画する
}
// WinMain関数
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int ScrollX ;
SetGraphMode( 641 , 481 , 16 ) ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
char Key[256];
// 描画先画面を裏画面にする
SetDrawScreen( DX_SCREEN_BACK ) ;
// プレイヤーの初期位置をセット
PlayerX = 2 ;
PlayerY = 2 ;
// 最初は停止中(1)にしておく
Move = 1 ;
// ループ
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE])
{
// 画面を初期化
ClearDrawScreen() ;
// 移動中ではない場合キー入力を受け付ける
if( Move == 1 )
{
// キー入力に応じてプレイヤーの座標を移動
if(Key[KEY_INPUT_LEFT]== 1)
{
Move = 1 ;
MoveX = -1 ;
}
if( Key[KEY_INPUT_RIGHT]== 1 )
{
Move = 1 ;
MoveX = 1 ;
}
// 進入不可能なマップだった場合は移動できない
if( Move == 1 )
{
if( MapData[ PlayerX + MoveX ] == 1 )
{
Move = 1 ;
}
else
{
MoveCounter = 1 ;
}
}
// 停止中は画面のスクロールは行わない
ScrollX = 0 ;
}
// 移動中の場合は移動処理を行う
if( Move == 1 )
{
MoveCounter ++ ;
// 移動処理が終了したら停止中にする
if( MoveCounter == MOVE_FRAME )
{
Move = 0 ;
// プレイヤーの位置を変更する
PlayerX += MoveX ;
// 停止中は画面のスクロールは行わない
ScrollX = 0 ;
}
else
{
// 経過時間からスクロール量を算出する
ScrollX = -( MoveX * MAP_SIZE * MoveCounter / MOVE_FRAME ) ;
}
}
// マップとプレイヤーを描画
GraphDraw( ScrollX) ;
// 裏画面の内容を表画面に映す
ScreenFlip() ;
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 1 ; // ソフトの終了
}
1,837ポイント を手に入れた。
|
|
|
|
Name: バグ ..ハッカー(149,067ポイント)
Date: 2009/02/28(土) 21:48
No:29584
|
|
Title: Re:横スクロールについて
|
|
全部は見てないけど、気になったとこだけ…
int MapData[MAP_WIDTH][MAP_WIDTH] = {{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} ,};
こうじゃないですか?
105ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(12,809ポイント)
Date: 2009/02/28(土) 21:51
No:29585
|
|
Title: Re:横スクロールについて
|
|
変数MapDataは一次元配列です。
正しくは以下のようになります。
// マップのデータ
int MapData[ MAP_WIDTH ] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
118ポイント を手に入れた。
|
|
|
|
|
Name: ひよこ ..上級者(17,918ポイント)
Date: 2009/02/28(土) 22:14
No:29586
|
|
Title: Re:横スクロールについて
|
|
教えてくださったおかげで実行はできるようになったのですが、
四角が動きません。どこがいけないのでしょうか?
#include "DxLib.h"
#define MAP_SIZE 64 // マップチップ一つのドットサイズ
#define MAP_WIDTH 21 // マップの幅 // マップの縦長さ
#define MOVE_FRAME 32 // 移動にかけるフレーム数
// マップのデータ
// マップのデータ
int MapData[ MAP_WIDTH ] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
// プレイヤーの位置
int PlayerX=50; int PlayerY=320;
// 移動しているかどうかのフラグ( 0:停止中 1:移動中 )
int Move ;
// 各方向に移動する量
int MoveX ;
// 移動し始めてから何フレーム経過したかを保持する変数
int MoveCounter ;
//キャラクター
int PlayerGraph=LoadGraph( "star1.bmp" ) ;
// マップとプレイヤーの描画関数
void GraphDraw( int ScrollX )
{
int j ;
int MapDrawPointX ; // 描画するマップ座標値
int DrawMapChipNumX ; // 描画するマップチップの数
// 描画するマップチップの数をセット
DrawMapChipNumX = 640 / MAP_SIZE + 2 ;
// 画面左上に描画するマップ座標をセット
MapDrawPointX = PlayerX - ( DrawMapChipNumX / 2 - 1 ) ;
for( j = -1 ; j < DrawMapChipNumX ; j ++ )
{
// 画面からはみ出た位置なら描画しない
if( j + MapDrawPointX < 0 ||
j + MapDrawPointX >= MAP_WIDTH ) continue ;
}
// プレイヤーの描画
DrawBox( PlayerX , PlayerY ,PlayerX+20,PlayerY+20 ,GetColor(255,0,0), FALSE) ;// プレイヤーを描画する
}
// WinMain関数
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int ScrollX ;
SetGraphMode( 641 , 481 , 16 ) ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
char Key[256];
// 描画先画面を裏画面にする
SetDrawScreen( DX_SCREEN_BACK ) ;
// プレイヤーの初期位置をセット
PlayerX = 2 ;
PlayerY = 2 ;
// 最初は停止中(0)にしておく
Move = 0 ;
// ループ
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE])
{
// 画面を初期化
ClearDrawScreen() ;
// 移動中ではない場合キー入力を受け付ける
if( Move == 1 )
{
// キー入力に応じてプレイヤーの座標を移動
if(Key[KEY_INPUT_LEFT]== 1)
{
Move = 1 ;
MoveX = -1 ;
}
if( Key[KEY_INPUT_RIGHT]== 1 )
{
Move = 1 ;
MoveX = 1 ;
}
// 進入不可能なマップだった場合は移動できない
if( Move == 1 )
{
if( MapData[ PlayerX + MoveX ] ==0 )
{
Move = 0 ;
}
else
{
MoveCounter = 0 ;
}
}
// 停止中は画面のスクロールは行わない
ScrollX = 0 ;
}
// 移動中の場合は移動処理を行う
if( Move == 1 )
{
MoveCounter ++ ;
// 移動処理が終了したら停止中にする
if( MoveCounter == MOVE_FRAME )
{
Move = 0 ;
// プレイヤーの位置を変更する
PlayerX += MoveX ;
// 停止中は画面のスクロールは行わない
ScrollX = 0 ;
}
else
{
// 経過時間からスクロール量を算出する
ScrollX = -( MoveX * MAP_SIZE * MoveCounter / MOVE_FRAME ) ;
}
}
// マップとプレイヤーを描画
GraphDraw( ScrollX) ;
// 裏画面の内容を表画面に映す
ScreenFlip() ;
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 1 ; // ソフトの終了
}
1,596ポイント を手に入れた。
|
|
|
|
|
Name: SCI ..中級者(12,853ポイント)
Date: 2009/02/28(土) 22:39
No:29588
|
|
Title: Re:横スクロールについて
|
|
// 移動中ではない場合キー入力を受け付ける
if( Move == 1 ) ここは0ではないですか?
44ポイント を手に入れた。
|
|
|
|
|
Name: ひよこ ..上級者(17,985ポイント)
Date: 2009/02/28(土) 23:42
No:29597
| 解決!
|
Title: Re:横スクロールについて
|
|
動くようになりました。
バグさん、SCIさんありがとうございました。
2倍のポイントを手に入れた! 66ポイント を手に入れた。
|
|
|
|
Name: M ..ぴよぴよ(108ポイント)
Date: 2009/02/28(土) 17:40
No:29566
|
|
Title: グラフィックについて
|
|
龍神録や東方で、自機のショットや敵のショットの中で、背景が半分透けてる物がありますよね?
あれは何か特別な処理があるんでしょうか?それとも元々透けてる画像を使っているのでしょうか?
どなたか教えて下さい
61ポイント を手に入れた。
|
|
|
|
Name: M ..ぴよぴよ(128ポイント)
Date: 2009/02/28(土) 17:45
No:29567
|
|
Title: Re:グラフィックについて
|
|
書き忘れました
コンパイラはBorlandC/C++用のやつです
20ポイント を手に入れた。
|
|
|
|
|
Name: yu [URL] ..上級者(18,564ポイント)
Date: 2009/02/28(土) 18:21
No:29573
|
|
Title: Re:グラフィックについて
|
|
プログラム中に透過処理をするか、
もともと透過してある画像を使用していると思います。
ただし、透過処理をする場合は元から透過してある画像を描画するだけのものと比べると
処理負荷が高いです(大きさによりますが)
ですが、透過度を任意に変更できるので、徐々に画像を透明にすること等ができます。
龍神録の弾の場合だと、もともと透過してある画像を使っていますね。
2倍のポイントを手に入れた! 238ポイント を手に入れた。
|
|
|
|
|
Name: M ..ぴよぴよ(448ポイント)
Date: 2009/02/28(土) 18:53
No:29577
|
|
Title: Re:グラフィックについて
|
|
>脱出さん
ありがとうございます。ここに書いてあるって気づきませんでした・・・
>yuさん
透過処理をしてある画像っていうのは、やっぱりphotoshopとかを使わないと作れないでしょうか。
学生なんで、あんまりお金を使ったりはできないので・・・
66ポイント を手に入れた。
|
|
|
|
|
Name: M ..ぴよぴよ(472ポイント)
Date: 2009/02/28(土) 19:25
No:29580
| 解決!
|
Title: Re:グラフィックについて
|
|
ほんとですか!?ありがとうございます!
早速インストールして使ってみます!
24ポイント を手に入れた。
|
|
|
|
|