厨房なおいらにプログラム教えるスレ
■ このスレッドは過去ログ倉庫に格納されています
00011
02/05/28 20:36ID:pts0IQX6厨房に分かる程度優しく教えてくれた方にはお礼をイイマス
0262社内ニート ◆OpY5DDvqSw
2011/02/22(火) 22:38:21.20ID:s/YhWNAt指定のファイル名の末端に『_a』が付く画像ファイルを透明情報として自動的に読み込んでくれる
ということで、アルファチャンネルについてまったく何も知らずに使っていたので、
これを機会にすこしだけ勉強します。
たぶん、DXライブラリを使わずにアルファチャンネルを使うには
けっこう複雑なことをしないといけないんだろうなぁ。
0263社内ニート ◆OpY5DDvqSw
2011/02/22(火) 23:46:04.34ID:s/YhWNAt引き続き、map[y][x]の代わりにgroundimage[y][x][3]を参照する方法を考えていきます。
なにか、役に立ちそうなホームページとかありましたらまた教えてください。
ではまた。
0264名前は開発中のものです。
2011/02/24(木) 00:22:24.50ID:o93X2te6(1) 地表画像(RGB)および山形状(A)をLoadSoftImageで読み込む
(2) GetPixelSoftImage(handle, x,y, &r,&g,&b,&ground)で、
x.,y地点の地面の有無を判定する
(3) 地形の更新は、GetPixelSoftImageに引き続き、groundを0にして、
DrawPixelSoftImage(handle, x,y, r,g,b,ground); で書き戻す。
という手順が考えられます。
SoftImageのアルファを判定用にし、かつ地形の変形にも利用します。
敢えて配列を使わなくても、これで、事足りるのではないかと思います。
問題は更新結果を画面に反映させる方法なのですが、
リファレンスによれば、DrawSoftImageを使うか、
GreateGraphFromSoftImageでグラフィックハンドルを作ってから、
DrawGraphで描画するべきではないかと思われます。
DrawSoftImageの説明には負荷が高いようなことが書いてあるので、
いったんグラフィックハンドルを作るのが正式な手続きなのかもしれません。
また、地形の画像が2400x640と比較的大きいので、そういう時は、
CreateDivGraphFromSoftImageを使うべきなのかもしれません。
長々書いていますが、冒頭に書いたとおり、DxLibは使ったことがありません。
詳しい人、フォロー願います。
0265社内ニート ◆OpY5DDvqSw
2011/02/25(金) 01:28:00.44ID:gNKYJQnbとりあえずは、配列で当たり判定をするのにこだわらず、製作をつづけてみます。
日曜あたりに、
弾の当たった地形がえぐれるのと、
そこの当たり判定がなくなるようになるのを作ってみます。
その次は、一気に難しくなりそうですが、
ネットで対戦することを考えてみたいと思います。
0266社内ニート ◆OpY5DDvqSw
2011/02/27(日) 18:19:36.84ID:BoOhxSt8>>260の上の方法で地形の変形はうまくいきました。
DXライブラリのリファレンスを見たところ、ネット対戦を取り入れるのはやっぱり難しそうですね。
どうも、IPアドレスとか調べるのはDXライブラリだけじゃできないっぽいし。
0267社内ニート ◆OpY5DDvqSw
2011/02/27(日) 18:27:45.42ID:BoOhxSt8ホストを探したり、プレーヤー同士の交流を行うロビーみたいなものを
無料サーバーを借りて作ろうと思います。
0268名前は開発中のものです。
2011/02/28(月) 22:28:30.01ID:g0je8oOR0269社内ニート ◆OpY5DDvqSw
2011/03/01(火) 23:45:55.00ID:uZgo1Fuw絶対やるべきっていうならそうするけど、
ネット対戦前提で2人対戦ってところから作ったほうがよくない?
ひとつのパソコンで対戦って、ターンが交互に回ってくるようにするだけでいいし。
0270名前は開発中のものです。
2011/03/02(水) 00:52:26.76ID:jsVU/WxL実現するのが一般的なひと区切り。
TCP/IPの基礎知識(socket利用あたりまで)があるのならこの時点でネット対応やっちゃってもいいけどその力量がワカラン。
ロビーサーバ構築となるとさらに別世界。規模/機能にもよるけどね
0271名前は開発中のものです。
2011/03/02(水) 13:34:35.92ID:BF83P3je0272名前は開発中のものです。
2011/03/02(水) 21:25:02.39ID:/NOpHlDA戦車が2台出るだけでも色々問題が出てくるだろうし。
それと、とりあえず>>108まで完成したのなら一度見てみたい。
0273社内ニート ◆OpY5DDvqSw
2011/03/03(木) 19:44:40.68ID:eZVnKNXfF5押したらデバッグはできるけど、
アプリケーションに作り上げる方法教えてください。
0274名前は開発中のものです。
2011/03/03(木) 22:11:29.10ID:k5LomlRLデフォルトならプロジェクトフォルダ内にReleaseかDebugのフォルダがあるでしょ。
0275社内ニート ◆OpY5DDvqSw
2011/03/04(金) 20:02:56.37ID:Vy+gp0Dpゲームが起動するものはありませんでした。
方法がわかったらうpすることがあるかもしれません。
それで、もっと細部まで作ってからネット対戦を考えたらどうかという意見ばかりのようですが、
後の細かいところというのは、一つ一つやっていけば自分だけでもできそうなことだと思うので
ネット対戦の部分をどういう風に作るのか、考えていきたいと思います。
0276社内ニート ◆OpY5DDvqSw
2011/03/04(金) 20:31:56.59ID:Vy+gp0Dp他のプレーヤーたちと自分のIPを教えあう。
DXライブラリの ConnectNetWork と、IPアドレスを使って相互にPCを接続する。
って感じでいいんじゃないかとおもう。
しかし、サーバーってのはどういう風に扱えばいいんだろ。
各プレーヤーのPCにDLするゲームソフト以外に、
仲介するためのソフトを作って、それをサーバーにおく必要があるってことかな。
0277名前は開発中のものです。
2011/03/04(金) 22:18:57.26ID:e0BGDa4hこれについては既存のネトゲでも各種方式がある。
1)サーバプロセスが常にデータを中継する
たいていの本格的MMOはこれ。データを随時中継する際に中身をチェックしてチートを防ぐ効果もある。
プレイ規模にもよるが、サーバのパワー(ハード、ソフト共)がある程度高くないとプレイに支障が生じる。
例:UO、EQ、WoW
2)ロビーサーバのみ独立させ、プレイ中はプレイヤー間で直接通信をする。
MO的なネトゲはこれ。ロビーサーバで各プレイヤーのIPをクライアントに通知して
プレイ中はロービーサーバを経由せずクライアント間で直接通信する。所謂P2Pに近い。
リアルタイム的な要素に左右されるゲームに有利。
商用のネトゲはチート対策や同期ためにサーバにも随時データを送ってチェックするのが一般的。
例:Diablo(クライアントがゲームサーバの役割も持つ)、各種FPS系
例は古典的な有名どころ。
他にもありそうだけど、大抵はこれら2つの方式をいろいろな組み合わせで実装している。
最近の商用ネトゲだと「MOだけど1)方式」ってのも多い。
IPアドレス情報の交換についてはロビー(ゲームルーム)に入室した時点でロビーサーバがクライアントのIPを
分かっていることになるのでユーザが直に調べる必要は必ずしもない。(そういうつくりにしないといけないけど)
むしろロビーのチャット等で直にIPを教えあうと、いたずら好きなバカがDOS攻撃対象にしたりする可能性もあるので
あまり好ましくない。
システムを一般に公開しないのであればあまり問題はないと思うけどね。
その昔、インターネットでの掲示板も一般的じゃない頃は電話やメールで互いのIPを教えあったものさ・・・。
0278名前は開発中のものです。
2011/03/05(土) 11:23:37.39ID:1BoPAtkM0280社内ニート ◆OpY5DDvqSw
2011/03/05(土) 14:04:21.14ID:ytiYcFyhクライアント同士1:1で動かせるように作ってみます。
0281社内ニート ◆OpY5DDvqSw
2011/03/05(土) 14:15:44.76ID:ytiYcFyhwinsockというものを使ったこんな方法がみつかったんですけど、これでいい?
ttp://members.jcom.home.ne.jp/toya.hiroshi/get_my_ipaddress.html
0282名前は開発中のものです。
2011/03/05(土) 18:38:05.45ID:1BoPAtkM足元を固めていくという意味ではとりあえずはいいんじゃね?
ipconfigキックで出力をリダイレクト→リダイレクト結果を文字列検索とかのシンプルな方法もアリだろう
複数枚NICがある場合考えるとめんどいがそこはWINSOCK使ってもも同じこと
インターネット経由にする場合はローカル/グローバルの話があるので(一般的には)上記だけでは足りないってのは分かるよな?
分からなければ ローカルアドレス グローバルアドレスでググれ
もっともロビーサーバをグローバルに立てればこれらの話は全部要らなくなるが
0283名前は開発中のものです。
2011/03/06(日) 07:27:32.42ID:PFbDBYwQ起動に必要なデータファイル(画像とか)が同じフォルダに入っていないんじゃないかと思う。
0284社内ニート ◆OpY5DDvqSw
2011/03/08(火) 22:14:18.79ID:O4hW3e3nそのとおりみたいでした。
ためしに画像とか適当にぶっこんだら動きました。
ttp://www.dotup.org/uploda/www.dotup.org1407350.zip.html
パス
1111
ネットへの対応はまったく進んでません。勉強もしてません。
0286社内ニート ◆OpY5DDvqSw
2011/03/09(水) 19:33:20.78ID:d+SmmaqK一人の応援だけでだいぶやる気が出た。
おひさしぶり。
元気ですか?
私は相変わらず暇人です。
0287115
2011/03/10(木) 22:24:04.84ID:xJ6VL23eネットワークの実装やったことないからアドバイス出来なくて残念だ
0288社内ニート ◆OpY5DDvqSw
2011/04/04(月) 03:21:23.76ID:hNri2z03何をしていいかわからなくなったんで放置。
MMORPGの作り方を書いた本でも買ってみようかな。
まあ、うちの近所に大きな本屋がないんで中身を見て確かめられないのは痛いけど。
0289名前は開発中のものです。
2011/04/04(月) 20:57:43.80ID:p78/gdyh2) 次に2PをCPU制御で実現する
3) CPU制御の機体数を増やす
4) 通信プロトコルを設計する
5) 通信処理を実装する
この順でやるといいよ。
0290名前は開発中のものです。
2011/06/22(水) 00:51:57.57ID:mdgs9SFK分からない事がまだまだ沢山ありますが
ご指導ご鞭撻の方宜しくお願いします
c/c++の勉強をして行きたいです。
でもまずはCからお願いします。
基礎からみっちり叩き込んで下さい
ボクも頑張って行きたいと思います。
0292 ◆ibj3Ub6oRZ3m
2013/09/28(土) 01:01:50.70ID:eY+hrwyk分からない事がまだまだ沢山ありますが
ご指導ご鞭撻の方宜しくお願いします
c/c++の勉強をして行きたいです。
でもまずはCからお願いします。
基礎からみっちり叩き込んで下さい
ボクも頑張って行きたいと思います。
0293名前は開発中のものです。
2015/08/31(月) 13:58:00.57ID:0xjlLWq10294名前は開発中のものです。
2015/09/22(火) 17:20:40.99ID:J5BSdRWA0295名前は開発中のものです。
2015/09/22(火) 17:21:18.98ID:J5BSdRWA■ このスレッドは過去ログ倉庫に格納されています