トップページgamedev
1001コメント379KB

NEETの俺が無料ソフトだけでゲームを作るスレ 2

■ このスレッドは過去ログ倉庫に格納されています
0001無職ニート ◆NGNHsLkT8o 2006/09/20(水) 17:19:03ID:6v6ZgEOA
そんなわけで2スレ目。

無職ニートのゲーム製作を生暖かく見守るスレです。
開発は全て無料のソフト(ツール)を使って行います。
現在はVC++2005EE+DXライブラリが軸。

有志の参加を、心よりお待ち申し上げております。
ガンガンアップすれ。俺は必ず見るから。


俺のまとめページ
http://rpg.nengu.jp/

前スレ
NEETの俺が無料ソフトだけでRPGを作るスレ
http://pc8.2ch.net/test/read.cgi/gamedev/1152609390/

公式Wiki
http://gamdev.org/w/

あぷろだ
http://gamdev.org/up/upload.php

よし、お前らアップして語り合え。

0384名前は開発中のものです。2006/10/27(金) 22:28:37ID:jRnvMaVD
やっべ、俺まごころアンインスコしてた
0385名前は開発中のものです。2006/10/28(土) 10:09:36ID:5yRbNHN4
週末ですな
0386名前は開発中のものです。2006/10/28(土) 17:06:48ID:gFAAFDt5
CPUをX2にしたんだけど、VC++2005EEでビルドしようとするとマニフェストファイル読み込むところで止まるね。
どうもおかしいと思ってシングルコアでリビルドしたらあっさり通った。
デュアルコアの人は注意。
0387名前は開発中のものです。2006/10/28(土) 19:51:54ID:Z7Axgk8/
>>380
プレイできました。
ボールがバーの斜めに当たると
たまにめり込みが発生して
ボールがバーの内側で跳ね返っていました。
あと、ウィンドウがタスクバーに隠れると
画面が揺れました。
俺もDirectX始めたばかりですけど
お互い頑張りましょう。
それと、OpenGLを勉強するのは大変なんじゃないですか?
0388無職ニート ◆NGNHsLkT8o 2006/10/28(土) 22:47:36ID:zxKi0UW+
皆様お疲れ様です。

最近はRPGの方の敵配置&パラメータ決めをやってた。
あと、参考書を読みまくってた。
おかげでC++はわかってきた気がする。

んで質問。
PCのステータスが定義されてる。
まとめてアクセスする必要があるときもあれば、そのうちの数個って時もある。
class Pc
{
  int hp;
  int mp;
  int attack;
  int def;
    ・
    ・
    ・

こんなクラスがあったとして、メンバ関数はどう書く?
メンバ変数一個毎にアクセス関数を書く?
RPGのパラメータなんかの時にどうするかわからん。
0389無職ニート ◆NGNHsLkT8o 2006/10/28(土) 22:54:48ID:zxKi0UW+
あと、も一個質問。
当たり判定はどこでする?

キャラオブジェクト
↓継承
PCオブジェクト
敵オブジェクト
とかの中ではやらないで、当たり判定クラスをかくのか?

collision(キャラオブジェクト, キャラオブジェクト);
って感じの関数かいて、PCと敵のオブジェクトを引数でもらい
中で判定するの?
でもそうすると、ヒットしてたときにどうやってそれをPCと敵オブジェクトに伝えればいいかわからん。

ソースにすると
PC移動
敵移動
当たり判定
PC位置修正
敵位置修正
こんな感じの流れになるのか???
分かりにくいけど、時間があれば誰か助言頼む。
0390名前は開発中のものです。2006/10/28(土) 22:56:55ID:Uz2/x7G2
struct Status{
  int hp;
  int mp;
  int attack;
  int def;
    ・
    ・
    ・

class Pc{
  Status st;
public:
  Status * GetStatus(){ return &st; }
};

俺はこうやってるけど、この方法が良いのか悪いのかわからん



0391無職ニート ◆NGNHsLkT8o 2006/10/28(土) 23:06:56ID:zxKi0UW+
>>390
取得するならそれでいいと思うんだが、ステータスの中身を書き換えるときはどうしてる?
0392名前は開発中のものです。2006/10/28(土) 23:19:02ID:b38AhlF7
>>389
当たり判定は当たり判定有りクラスのクラスメソッドでいいのでは。
それではダメになりそうになったら当たり判定クラスに格上げ。
0393名前は開発中のものです。2006/10/29(日) 00:03:29ID:EGi/yhIL
>>391
390ではないけど
void SetStatus(const Status& _st) { st = _st; }
これでいいじゃん。もちろん、パラメータの正規化したいときはその処理も入れる。
0394名前は開発中のものです。2006/10/29(日) 00:06:42ID:3EAE+iNp
>>389
Collision関数で判定対象になるキャラからGetRectってなメソッドで判定矩形を得て
判定の結果当たってたらキャラオブジェクトへHit(当たった相手のオブジェクト)っていう風なメソッドでも呼び出せば
いいんじゃない?


ていうか俺C++やってねぇけどねw
0395名前は開発中のものです。2006/10/29(日) 00:09:24ID:3EAE+iNp
>>393
それだとpublicで変数を公開するのとどう違うのよ
まんま構造体な使い方と手間が違うだけじゃん
0396名前は開発中のものです。2006/10/29(日) 05:18:39ID:Jx530ezx
【ネット】XBOX360開発キット無償公開2【やろうぜ】
http://game10.2ch.net/test/read.cgi/ghard/1162063002/
0397名前は開発中のものです。2006/10/29(日) 09:55:49ID:EGi/yhIL
>>395
クラス側でパラメータを正規化したり、はじいたりして制御できる。
関数の中身はいつでも替えられるし。
publicで公開するとそういうことはできない。
0398無職ニート ◆NGNHsLkT8o 2006/10/29(日) 10:12:55ID:IIfteGa0
>>392
作って見ないとなんともいえないけど、当たり判定クラス作ったほうがよさそうかな。

>>393
やっぱそれがいいのかな。

struct ST
{
int hp;
int mp;
int str;
int phy;

   ・
   ・
}
こんな構造体作って。

ST st = Pc.GetSt(); //頭でステータスを取得

//いろいろな処理
st.hp -= 50; //50のダメージ

Pc.SetSt(st); //ステータスの変更

こんな感じなのかな?
0399無職ニート ◆NGNHsLkT8o 2006/10/29(日) 10:15:20ID:IIfteGa0
>>394
そうだなーそんなかんじだだよなー

むつかしーなー悩む。
とりあえず組んでみるぽ。

答えてくれたみんなありがとう。
0400名前は開発中のものです。2006/10/29(日) 10:18:56ID:8PjBJia4
カプセル化とかになってないけどなw

class PC : public Colision
{
  void iroiro_na_syori(int hikisu_a, int hikisu_b, int hikisu_c)
;
}:


の方がそれっぽい
0401名前は開発中のものです。2006/10/29(日) 10:31:21ID:8PjBJia4
うぉ、久々の途中送信。
あんまり違和感無いミラクル。

で、メソッドを適時virtual宣言しておいて、
派生クラスでも必要に応じてvirtual宣言してオーバーライド、
あくまでインスタンスの管理は基底クラスのポインタでやるのが…

…信仰の問題なので、好みでやればいいと思う。
0402名前は開発中のものです。2006/10/29(日) 16:07:00ID:N16PKpfG
なんでもかんでもオブジェクト病にかかってないか
0403名前は開発中のものです。2006/10/29(日) 16:40:18ID:8PjBJia4
オブジェクト病って、オブジェクトアレルギー?
04042172006/10/30(月) 17:48:01ID:MnIWpDU/
HSPコンテストに応募したゲームが
エントリーされない・・・
0405無職ニート ◆NGNHsLkT8o 2006/10/30(月) 19:37:32ID:viaAO8hW
>>404
あーそうか、そういえばもう10月おわる…orz


そろそろやばい感じ。なきそうw
C++もはじめてで3Dもはじめてなんで勉強することが沢山だ…
いっそC++に絞って、2DアクションをC++で組もうかと考え中。
0406名前は開発中のものです。2006/10/30(月) 19:58:05ID:8OcWUeIL
>>405
いやそれよりもDXライブラリで作ったRPG公開しろやー
ttp://inu.harisen.jp/
ここになんとしても完成させることが大事だと書いてあったぜ
2Dアクション+DirectX(非ライブラリ)+C++だったら俺も参考にしたいから歓迎だよ!
講座の方もがんばれよ!!
04072172006/10/30(月) 20:25:22ID:MnIWpDU/
HSPで作ったやつをC++とDXライブラリでリメイクしようかと
考え中・・・
0408無職ニート ◆NGNHsLkT8o 2006/10/31(火) 02:49:30ID:0wmyrNHN
>>406
えらいすんません…orz
講座でもよんでお茶を濁しといてください。
2DアクションだとDirectXのスプライトとか使っていいんかな?

正直、3Dの座標系がわからなすぎて…
真ん中が0,0でいいんだよな?
2Dの時みたいに、左上を0,0で基準にして描画みたいに出来ないの?
yが逆になるから左下でもいいから。

あと、マップの表示方法がさっぱり分からんです…
もうなきそう。
0409名前は開発中のものです。2006/10/31(火) 16:38:04ID:Bv+vqIk4
>>408
いい感じの拡張とか勉強のしやすそうな
プログラムがどっかのスレで公開されてたんだがなぁ・・・
スレが見当たらない。

モノ自体は家にあるんだけどさすがに再アップはできんし・・・
0410名前は開発中のものです。2006/10/31(火) 21:31:28ID:v40YZpnA
YOUこっそりうpしちゃいなよ
0411名前は開発中のものです。2006/10/31(火) 21:40:24ID:mCqyMb0n
> 正直、3Dの座標系がわからなすぎて…
> 真ん中が0,0でいいんだよな?
> 2Dの時みたいに、左上を0,0で基準にして描画みたいに出来ないの?
DirectXなら正射影行列を作る関数があるね。。
あとはSetTransformすればいいんじゃね?(正射影はやったことないけど
0412名前は開発中のものです。2006/10/31(火) 21:41:01ID:Wo5veWUr
この前の日経ソフトウェアに簡単な3Dフライトゲームのソースが
丸々載ってたから、それを改造するところから始めてみるとか。
0413無職ニート ◆NGNHsLkT8o 2006/10/31(火) 22:57:37ID:NQ6jZqJu
>>409
こっそりうpうp。
ばれやしないYO。
ごめん。頼みます。

質問です。
3Dで、原点(画面の中心)が(X0,Y0)の時にモデルが画面から出てるかどうかはどうやって知るんだ?
カメラの画角とかで見え方が全然違うし…
それに伴って、3Dモデルの大きさとかの基準もわからん。

解決方法は自分で決めるって事なのかな?
画角を45°にして、モデルの大きさ基準はこのくらいって決めればいいの?

基準が分からん…orz

あと、マップはモデリングした背景をそのまま表示ってかんじ?
そうすると、かなりでかい背景になってしまうので、
もし城の廊下を作るときは
適度なサイズの壁と床を作って、ループ表示。
それにモデリングした柱とかを座標によって表示していくってかんじ?

それをやるにはやっぱり中心(0.0)の時に、画面端の座標の計算方法がわからんと…
なんか自分で端は50って決めて変換すればいいって見たんだが、その変換方法が分からん…orz
0414名前は開発中のものです。2006/10/31(火) 23:01:57ID:f/dimiNB
うp厨は死んでください
0415名前は開発中のものです。2006/10/31(火) 23:06:34ID:XieCjUwF
うp厨は死んでください
0416名前は開発中のものです。2006/10/31(火) 23:08:39ID:T7fOjVa8
俺はage厨
0417名前は開発中のものです。2006/10/31(火) 23:09:52ID:SlGBLE0j
ここまでがんばってきたんだから、これからも自力でがんばれよ。
0418名前は開発中のものです。2006/10/31(火) 23:27:16ID:SarUbAnq
>>413
大きさの基準とかは自分で決めるしかないんじゃね?

>それをやるにはやっぱり中心(0.0)の時に、画面端の座標の計算方法がわからんと…
画面表示の中心を0,0として逆算してタイル配置すればいいんじゃね?
全部表示するの前提で0,0を左上基準でタイル配置
カメラ位置を動かす方法もあるけど映らない所描画しても無駄だし

それともそういうことじゃない?
0419名前は開発中のものです。2006/10/31(火) 23:31:00ID:/Hdi1/3b
正直1のレベルで3Dはまだ早い気がするんだけど、とりあえず画面内外判定は
簡単な方法だと、D3DXVec3Project使えば良いんじゃね?
まあガンガレ。
0420名前は開発中のものです。2006/10/31(火) 23:47:52ID:mCqyMb0n
基本が判ってないのに、効率的な表示方法を検討するメルヘン。

まぁフツーはD3DXMatrixPerspectiveRHの引数から
視錐台(画角?)が決まるんじゃないか?
この視錐台に交差しないポリゴンは描画しなくていいな。
俺は面倒だから片っ端から表示するような処理してるけど。

廊下をループ表示っつーか、
同じモデルなら1つの頂点バッファにするのが望ましい。
あとは表示するときに個々のワールドトランスフォーム行列を
設定すればいい。

1は化石PGだな。
マトモなグラボならとりあえず効率無視してもそれなりに動くから、
最適化は暇で死にそうなときにでもやればいい。



あと、勝手にうpはやめたほうがいい。
アタリマエだがあとでクレームついても文句は言えない。
1がググッて公開されてるソースを手コピーすれば?
0421名前は開発中のものです。2006/11/01(水) 00:01:47ID:OfYs/urE
曲がりなりにもクリエイターなら無許可でうpとか催促しないだろ
常識的に考えて
0422名前は開発中のものです。2006/11/01(水) 00:19:06ID:TX5TDfAV
>>413
DirectXヘルプの

DirectXGraphics->プログラミングガイド->固定機能パイプライン->トランスフォーム

ここに座標変換の基本的な話が載っている。これが判ってないと3Dは
ぶっちゃけ、無理。

あと、基本的な話はこの本1冊で足りるよ。
http://www.amazon.co.jp/dp/4939007375/
04234092006/11/01(水) 07:51:25ID:GC/sCgHc
なんか俺の発言が荒れる元になってるみたいですまんね。

言ってたのとか色々かき集めたソースを解析しつつ組んだもの。
ソース整理とかさっぱりしてないので役に立つか分からないけど。
ttp://gamdev.org/up/img/7992.lzh

0424名前は開発中のものです。2006/11/01(水) 09:01:16ID:cnTLesu+
>>423
ビルド出来ん…。

1>.\Resource\Resource.rc(10) : fatal error RC1015: cannot open include file 'afxres.h'.
0425無職ニート ◆NGNHsLkT8o 2006/11/01(水) 09:30:06ID:cC51WO6x
>>414-422
あは、レスが一杯。

やっぱり、基本的な事が理解できたつもりで全くできてなかったな…orz
もういちど、0から勉強しなおします。
答えてくれた人サンクス!
勉強して、分かってきたらまたプログラムアップしまふ。

>>423
いやいや、俺の発言だと思うぞ。
わざわざスマンす。見てみルポ。ありがとう。

0426名前は開発中のものです。2006/11/01(水) 09:31:30ID:GC/sCgHc
>>424
ありゃ・・・
元にしたのをコンパイルするときに引っかかった記憶があるなぁ・・・
ちょいと見てみるよ。
0427名前は開発中のものです。2006/11/01(水) 09:39:41ID:cnTLesu+
ttp://support.microsoft.com/kb/326987/ja

長すぎるって言ったって512文字は超えてないはずだけど…。
インクルードフォルダとの合計か?
それでも超えていないけど…。

ちなみにプロジェクトからResource.rcを消したらビルドできました。
0428名前は開発中のものです。2006/11/01(水) 09:43:31ID:GC/sCgHc
>>427
Platform SDKの\Include\mfcをインクルードに設定してもだめかな?
さらっとぐぐったところコレ以上はよくわからん。

>>425
まあ、ガンガレ。俺もガンガル。

0429名前は開発中のものです。2006/11/01(水) 09:48:37ID:cnTLesu+
>>428
お、mfcフォルダもインクルード設定したらResource.rc消さなくても通りました。
ありがとうです。
気持ち悪いのでもうちょっとグーグル旅行してきますノ

そしてうpGJ
0430無職ニート ◆NGNHsLkT8o 2006/11/01(水) 09:48:51ID:cC51WO6x
>>424
WinProcのcase WM_COMMAND:と、resource.rcのLANGUAGE LANG_JAPANESE, SUBLANG_DEFAULTをコメントアウトしたら見れた。

>>423
まじありがとう。
こういうのほしかった。
すごい参考になります。

ただ、おれノーパソだから3Dすげえ重い…
前参考にアップしてもらった「BloodOver」ってゲームも20FPSぐらいしか出ないんだが…
素直にパソコン買い換えたほうがいいかな…
0431名前は開発中のものです。2006/11/01(水) 09:53:24ID:cnTLesu+
>>430
PCスペックうp
0432名前は開発中のものです。2006/11/01(水) 10:01:13ID:GC/sCgHc
>>430
重いのかぁ・・・
Q押してどのくらいFPS出てるか見てもらえるかな。
そして、同じくPCスペックきぼん。


公開する気はさっぱりなかったので簡単に操作アレコレ。

十字 上下左右移動
A,S  左右回転
D,F  移動速度加速減速
1~5  拡大縮小
Q   情報色々+
W   チップ見やすく(左上のセルを白にしてるだけ)
R   マップ再読み込み
0433無職ニート ◆NGNHsLkT8o 2006/11/01(水) 10:30:54ID:cC51WO6x
>>431>>432
えっとな、
CPU:PenM 1.0Ghz
メモリ:512M
ビデオ:オンボード(Intel 82852/82855 GM/GME) 64M

スペックはこんなの。

FPSは拡大すれば、50FPSくらい出るんだが、縮小(4キーぐらい)すると
30FPSくらいになる。
いま、デスクトップのパーツ集めて一台作ろうかと考え中。
0434名前は開発中のものです。2006/11/01(水) 11:27:30ID:cnTLesu+
>>433
デスクトップ作っちゃいなよ。
余ったパーツとか持ってなさそうなので出費はでかいが…。(さらにNEEET)
さすがに>>423が重いとなると開発環境としても不自由でしょう。
0435名前は開発中のものです。2006/11/01(水) 12:52:52ID:GC/sCgHc
>>433
スペック晒しありがとん。
そのくらいでも結構処理落ちするのね。
足引っ張ってるのはGPUなんかな?

うぉー、他に決まっててコーディングすることもあるのに、
色々妄想してコーディングにいけねぇw
0436名前は開発中のものです。2006/11/01(水) 15:25:28ID:1W/QNTj1
通りすがりですが当方mingwで確認しました。
sempron1.6G+geforce mx420ですが縮小5で62程度FPS出てました。
0437名前は開発中のものです。2006/11/01(水) 23:53:50ID:jzq5rSu6
PenMで動かないのか。
痛いな。友達とかノートユーザー多いし
やってもらうには3Dゲームじゃなきゃ
DirectXGraphicsに移行出来ないな。
0438名前は開発中のものです。2006/11/02(木) 06:42:27ID:vqw2TkCb
PenMじゃなくてGPUが悪い
0439名前は開発中のものです。2006/11/02(木) 07:26:46ID:Qj5Q7iSb
3Dよりもスクリプトを組み込むほうが重要
0440名前は開発中のものです。2006/11/02(木) 11:49:04ID:B4btNS1J
>>438
んなこたぁわかってるよ。
「PenM乗ってる(ほど最近の世代の)ノートPCでも」
って意味だよ。
そのぐらい補完しろよ。
0441名前は開発中のものです。2006/11/02(木) 12:02:24ID:8WrpyWqg
個人作成のゲームなんだし、i815のオンボードで動くぐらいのにしたら?
もしは865Gぐらいとか
オンボードでも結構まともな速度でるよ?
0442名前は開発中のものです。2006/11/02(木) 12:30:56ID:eOBXFU+S
最近はゲフォ6200くらいのオンボードもあるしねぇ。
でも話の本質は、開発環境がきついって事だよ。
スケルトンの>>423でFPSが満足に出ないと3D開発自体がままならない。
0443名前は開発中のものです。2006/11/02(木) 12:52:38ID:8WrpyWqg
>>442
プレステエミュをセレロン1Ghz・i815オンボードでDirect3Dプラグイン使って動かしてるが快適だぜ?
640x480x16でプレステレベルの3Dはi815でも十分可能
0444無職ニート ◆NGNHsLkT8o 2006/11/02(木) 16:37:16ID:X2N2JkbE
>>434
パーツは少しはあるのよ。
一応HDDさえ買えば一台組めるくらい。
でも、Pen4マザーでラデオンX200オンボードなのがあるから、こっち使いたいんだが
Pen4もってない…

>>435
完全にGPUだね。PenMは結構優秀だし。

>>436
うは、ゲフォMXにも負けるのか…


つーわけで、昨日から勉強しなおし中。
一応分かってきたつもり(?)なので、アップした。

時間がある方ツッコミ頼む。
http://teamnava.blog79.fc2.com/
ブログにアップしといた。
0445名前は開発中のものです。2006/11/02(木) 18:02:55ID:eOBXFU+S
>>444
おおいいね。
カラテカみたいだ!
あとでよく見させてもらうけど、メンバ関数にvirtual付けるならデストラクタにも付けないの?
継承する可能性があるから仮想関数にするわけで、俺なら念のためデストラクタにも無条件で付けちゃうけど。

そのブログって重いね。
DLに時間がかかった…。
0446名前は開発中のものです。2006/11/02(木) 18:48:28ID:1eilrhne
>>444
モデルがおもしろモデリングすぎて鼻水ふきそうになったw
ソースはクラスが勉強中でいまいちよくわからんので、
よくもわるくも教材として覗かせてもらいます。

>>445
ファイルを置いてあるのはgamedevのうpろだっしょ。

ユーザー側のPCはどのくらいのスペックを想定したらいいのか。
FF11が普通に動きますよレベルってのは、やはりかなり敷居が高いのかなぁ。
0447名前は開発中のものです。2006/11/02(木) 19:23:23ID:vqw2TkCb
>>440
無理っす
0448名前は開発中のものです。2006/11/02(木) 19:25:29ID:j7Di0j5Z
>>444
GJ!!
あと音を出せるようになれば、DirectXは卒業じゃね?
0449名前は開発中のものです。2006/11/02(木) 21:26:20ID:Jplem0L7
ところで『DirectX逆引き大全500の極意』には
Xファイルの”アニメーション”については詳しく書かれてる?

・・・・近くに本屋がないので聞いてみようかなと
0450無職ニート ◆NGNHsLkT8o 2006/11/02(木) 21:36:24ID:A2oNKT76
>>445
あー、また忘れてた。
1M無いくらいだから勘弁してちょ。

>>456
もでりんぐは勉強中っす。まだまだうまくいかんです…
参考になれば幸いです。
FF11の普通レベルならまあいいんじゃない?
でも、軽いことに越したことはないけどねー

>>448
ま、まじっすか?それはいいすぎかとw
まだ、テクスチャとかアニメとかやること沢山だよ…
モデリングも勉強中〜

>>449
アニメーションメッシュもスキンアニメーションも解説されてるよ。
ただ、紙媒体での解説は殆どない。
自分でソース解析するかんじ。
ソースも沢山付属されてるので、これとネットでちょっと調べればいけると思う。
この本はかなり出来がいいと思うんで一回立ち読みいってみれば?
04514492006/11/02(木) 22:24:50ID:Jplem0L7
>>450
サンクス!!
そっか、概略だけ書いて後は自分で見て調べろって事か。面白そうw
かなり良さそうなんで、交通費かかるけど今度見てきます
0452名前は開発中のものです。2006/11/02(木) 23:49:04ID:eOBXFU+S
俺もつられてDirectX逆引き大全500の極意をこの前買ってきちゃったけど
ある程度軌道に乗るまできついだろうね。
乗っちゃったらあとはリファレンスとして活用できそう。
>>450のとおり、CD-ROMをなくしたり付属してない中古本だったりしたらちょっとやばいかも。
0453名前は開発中のものです。2006/11/03(金) 00:35:14ID:X6dlrIUt
宗教上の理由により、DirectX9をインストール出来ないんで、試すことができねぇorz
0454名前は開発中のものです。2006/11/03(金) 01:31:06ID:yjXdXNWa
>>451
つkonozama
04554512006/11/03(金) 21:38:49ID:RPwkRTI4
>>452
独学には慣れてるんで何とかなるかなぁと。
とりあえず買うときは新品を買うようにするよ

>>454
一度読んでみたいんで本屋に行く予定。
目次くらいしかネットにないし、何の情報もなしで買うのに抵抗があるw
0456名前は開発中のものです。2006/11/05(日) 02:34:10ID:Ko/jUmYy
すいません、質問なんですけど、
DXライブラリを使っているのですが、メモリ上に画像をロードしておくとき、
いくつもの画像ファイルをロードしたり、メモリ上の画像を使ってさらに別のメモリ上にロードしておきたいのですが、どうすればいいんでしょう?
プログラムの冒頭で一括してロードしておいて、使いたいときにメモリから描画したいのです。
よろしくお願いします。
04574562006/11/05(日) 03:08:23ID:Ko/jUmYy
あ、語弊がありそうなので。
いくつもの画像ファイルを読み込む場合は、それぞれのハンドルにそれぞれのファイルを読み込めばいいと思いますが、
複数の画像ファイルをひとつのハンドルに読み込ませて、そのハンドルが指しているメモリ上から好きなように切り取って来たりは出来ないのでしょうか?
また、読み込んだ画像から切り貼りして別のメモリ上に読み込むことは出来ませんか?

HSPで具体的に言うと、
buffer 2:picload "img1.bmp"
buffer 3:picload "img2.bmp"
これでバッファ2と3にそれぞれの画像がロードされ、
gsel 0:gcopy 2,10,10,30,30
のように一部分をメイン画面に描画出来ます。
また、
buffer 4:pos 0,0:gcopy 2,20,20,40,40:gcopy 3,30,30,50,50
gsel 0:gcopy 4,0,0
のように、バッファ2,3の一部から、全く新しいバッファ4を作り、それをメインに描画することが出来ます。
0458名前は開発中のものです。2006/11/05(日) 03:15:50ID:rWUUCK2U
使ったこと無いけどこれじゃね?

int DerivationGraph( int SrcX, int SrcY, int Width, int Height, int SrcGraphHandle ) ;

概略  
指定のグラフィックの指定部分だけを抜き出して新たなグラフィックを作成する

引数
int SrcX, int SrcY : グラフィック中の抜き出したい矩形の左上座標
int Width, int Height : 抜き出すグラフィックのサイズ
int SrcGraphHandle : 抜き出したいグラフィックのハンドル

戻り値
−1:エラー発生
  −1以外:新しいグラフィックのハンドル
04594562006/11/05(日) 03:50:27ID:Ko/jUmYy
>>458
あああすいません;;
ありがとうございます。
それで抜き出して新たな画像を作れます。
しかもDrawRectGraphで矩形読み込み関数もありました;;

DerivationGraphでは一つのファイルからしか作成できないのですかね…?
いくつものファイルまたはメモリ上の画像から、一つの画像をメモリ上においておきたいのですが。
また、いくつものファイルじゃなくて、一つのメモリ上のチップ画像から一つの大きな画像を作っておいたり。
マップチップからマップを作るような感じです。
例えば、



という画像があったとして、新たに





のように好きなように並べたいのです。
0460名前は開発中のものです。2006/11/05(日) 04:41:13ID:ba02rtnI
自分で便利なように作ったらええがな…
0461名前は開発中のものです。2006/11/05(日) 08:34:14ID:J6styzZF
非推奨だけどハンドルを持つグラフィックに書き込めたはず
h = MakeGraph
SetDrawScreen(h)
みたいな
事前に呼ばなきゃいけない関数もあったはずなので公式の掲示板でもチェックしてくれ
0462無職ニート ◆NGNHsLkT8o 2006/11/05(日) 11:47:33ID:NUX3xomY
おはようございます。
最近モデリングやっててプログラムは手をつけてない。
モデルが出来たらボーンいれてアニメをやってみます。

>>459
まず、どういう用途で使うかを言ったほうがいいと思う。
なにで使うか分かれば、効率のいいやり方を答えてくれると思うよ。
何作ってるのかはしらないが、画像処理系(並べ替え)?
0463名前は開発中のものです。2006/11/05(日) 16:19:08ID:4GLXwAz8
ども、ブロック崩しです。
亀レス本当に申し訳ありません。
ブロック崩しの方は前回指摘されたバグは改良したつもりです。
それと、今回は次企画の3Dのゲームもなんとか動かせるくらいまでは出来たので
ちょっとうpしてみたいと思います。

ブロック崩し
ttp://gamdev.org/up/img/8036.zip

3Dゲーム
ttp://gamdev.org/up/img/8037.zip
0464名前は開発中のものです。2006/11/05(日) 17:48:23ID:91lF0ava
>>463
パスの分割にstrtok_sを使ってるけど、これってパスに日本語が含まれてるとヤバくない?
Cの標準関数で文字列処理するやつはたいてい問題あるのが困るよな
0465名前は開発中のものです。2006/11/05(日) 22:08:13ID:qK+MNDrS
>>463
ブロック崩しの方を
ベクターに登録してみてはどうですか?
登録してみると
分かることがあるような気がします。
それと、ブロック崩しで
音楽がならないようなのですが。
0466名前は開発中のものです。2006/11/05(日) 23:49:38ID:ksPGB2Go
画面端でボールを挟むようにするとぷるぷる震えながら真上に飛んでハマるなw
開始時はじっこからやると再現しやすい。
なぜか一列同時に消えることもあるし。
多分壁の当たり判定が甘いんだろう。
ボールがめりこんでから判定してるぽ。
0467名前は開発中のものです。2006/11/06(月) 14:58:37ID:SpNX/R28
ども、ブロック崩しです。

strtokは分割しているだけですから、文字化けとかの心配はないと思いますけどね。

あとで何度かデバックしてみたら、全然バグりまくってました...orz
バーも移動することを考慮したあたり判定にしないとめり込みますね。
0468名前は開発中のものです。2006/11/06(月) 17:24:03ID:iYZJ/UcT
>>467
文字化けというか…まぁいいや。
機会があったら、_mbstok_sとか_tcstok_sとか検索してみてね
04694562006/11/06(月) 19:19:05ID:2LCbRRRY
>>462
スロットゲームなのですが、各絵柄を読み込んだ後、メモリ上に一列のリール配列を読み込んでおいたほうが都合がいいのです。
0470無職ニート ◆NGNHsLkT8o 2006/11/06(月) 22:43:06ID:9fm3BmkI
>>467
ブロック崩しやったよー。
これはまあこのくらいでいいんじゃない?
切り上げて次の3Dがんばってくれー

>>469
その場合は画像をゲーム内で動かす必要は全く無いでそ。
配列でリールの絵柄番号持って、その数字によって表示する画像を変えればおk。
まあ、自分でも言ってるけどRPGのマップと同じだね。

昨日は突然の頭痛と吐き気で、薬飲んで寝てた…orz
今日は一日3Dいじってた。
簡単に服着せて、ボーン入れてアニメ作った。
なかなか難しい…RokDeBone2ってやつ使ったんだが、ミコトとどっちがいいんだろう?
04714562006/11/07(火) 00:55:42ID:hBy4UwEj
>>470
それだと都合が悪いのですよ。
配列にそれぞれの画像を読み込ませただけだと物凄く効率が悪いのです。
なので絵柄からリール配列(一本21コマになります)を3本作ってしまった方がいいのです。
画像ファイルそのものをそのような画像にしてしまえば解決しますが、汎用性がないですし。。
メモリ上の画像を加工(といっても簡単な切り貼り)する方法はないのでしょうか…。

(ウィンドウ画面をリール配列の大きさにし、その画面からメモリにコピー(GetDrawScreenGraph)してみましたが、
透過出来ない&色がおかしくなる&ユーザーに見えてしまう等でだめでした。)
0472名前は開発中のものです。2006/11/07(火) 01:29:10ID:ITN2DD4b
>>471
>配列にそれぞれの画像を読み込ませただけだと物凄く効率が悪いのです。
何がそんなに効率悪いのかkwsk
04734562006/11/07(火) 02:12:55ID:hBy4UwEj
>>472
それを話すと長くなってしまうのですが、
各コマに一枚ずつパタパタと表示するのではなく滑らかに少しずつ回転させようと思っています。
その時に配列に読み込ませただけだと、枠上、枠下の中途半端なコマの制御や判定(リールがちゃんとした所に止まる制御)等、効率が悪くなってしまいます。
また、左中右の3本分の制御だけでなく(それでもいいのですが敢えて)、3*3+6(枠外分)の15コマ全てでやろうと思っています。
もし1本のリールが作れてしまえば、一番上のy軸の取得だけで簡単に位置を取得できたり、止まるべき位置も把握しやすいです。

ところで画像ファイルからチップを組み合わせてメモリ上に一枚の画像を作り出して読み込んでおくことは、そんなに行われない事なのでしょうか?
多分>>1NEETさんは、マップのチップを配列に読み込んでおき、描画するときにをれぞれを逐一描画しているのだと思うのですが、
例えば街に入ったときに、メモリ上に街のマップを一括して一つの画像にしておいたりしてもいいのではないでしょうか?
(そうなると当たり判定が煩雑になりそうですが、街に限らずそういった手法もアリだとおもうのですが。。)
0474無職ニート ◆NGNHsLkT8o 2006/11/07(火) 02:13:47ID:hof2n4Pf
>>471
多分根本的に考え方がわかってないので、文章じゃなくてソース。

http://gamdev.org/up/img/8050.zip

30分くらいで作ったので汚いが勘弁な。

配列には数字がはいるだけだよ。
あと、画像処理にDXライブラリとかは使わない。
普通はバイナリで読み出して処理する。
04754562006/11/07(火) 02:47:57ID:hBy4UwEj
>>474
30分も時間かけてもらってすみません。
出来れば早くレスしたいのですがまだソースをながめさせてもらっている状態です。
時間も遅いですので、ダウンロードさせてもらったという事だけ報告させていただきます。
0476名前は開発中のものです。2006/11/07(火) 12:06:56ID:AY0tZS0I
マップチップで描画するのも、一枚絵で描画するのも描画面積が一緒ならコストは殆ど変わらないだろ
8bit機から出直すがよろし
0477名前は開発中のものです。2006/11/07(火) 15:31:37ID:ONyKro1U
このスレに触発された
金かけたくないからとりあえずttp://wisdom.sakura.ne.jp/programming/c/index.htmlを一通りやった。
ゲーム作ってみたいんだけどそろそろ本買った方がいいかな
0478名前は開発中のものです。2006/11/07(火) 18:48:50ID:gPt5fsty
1600*1200の画面に点を打つのと一枚絵を表示するのと殆んど変わらないのか?
0479無職ニート ◆NGNHsLkT8o 2006/11/07(火) 18:59:20ID:FCjjH3xU
アニメーション付Xファイルは適当に出来たんだが、プログラムでどうやったらいいかが
まだ理解できてない…orz
解説では、この辺りはコピペでおkみたいに書いてたんだが、ほんとにいいのか…?


>>476
そりゃスロットならいいかも知れんけど、RPGのマップとかだったら死ぬだろ。
32x32で16ビットの画像を128x128で作ったら約260Mとかだぞ。
そもそも、456タンは「画像ファイルそのものをそのような画像にしてしまえば解決しますが、汎用性がないですし」
って言ってるし。

>477
何が作りたいの?
本かうのはわからなくなったらでいいとおもうよ。
とりあえず、DXライブラリのHPを隅から隅まで読むと、簡単なSTGくらいは作れそう。
0480名前は開発中のものです。2006/11/07(火) 18:59:33ID:ARel3d1R
このスレはなんか居心地がよい。

ところで本題。

色々いじってて衝突判定を導入し始めようかと思ってるんだけど、
どういう本がオススメなのかねぇ・・・

ゲームプログラミングのための3Dグラフィックス数学
ttp://www.amazon.co.jp/gp/product/4939007375/

ゲームプログラミングのためのリアルタイム衝突判定
ttp://www.amazon.co.jp/gp/product/493900791X/

今のところ上の二つを検討してるけど、
一冊あたりが結構するから手軽に買うというわけにもいかなくてなかなか・・・

手持ちは
C++の基礎の本と「DirectX逆引き大全500の極意」だけな感じで。

「DirectXゲームグラフィックスプログラミング Ver. 2.0」は一緒に買うつもり。

ほかになにかオススメなのがあったら教えて欲しいところ。
0481無職ニート ◆NGNHsLkT8o 2006/11/07(火) 19:03:14ID:FCjjH3xU
>>479
計算間違えた…orz
>32x32で16ビットの画像を128x128で作ったら約260Mとかだぞ。
1チップ32x32で16ビットの画像=約4kb
それを128x128個敷き詰める=65Mb
0482名前は開発中のものです。2006/11/07(火) 19:07:46ID:6uXwNzZb
>481
>1チップ32x32で16ビットの画像=約4kb
2KBじゃまいか。
0483名前は開発中のものです。2006/11/07(火) 19:11:23ID:ARel3d1R
>>482
正解。ググル様便利。
ttp://www.google.co.jp/search?hs=XDi&hl=ja&safe=off&client=firefox&rls=org.mozilla%3Aja%3Aofficial&q=128%5E2*32%5E2*16bit&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0484無職ニート ◆NGNHsLkT8o 2006/11/07(火) 19:14:20ID:FCjjH3xU
>>482
うわーさらにミスった。はずかしい。
最終的に32Mくらいか。単純計算だけど。

>>480
どっちも高いなー
正直この本を読めるレベルなら、「DirectXゲームグラフィックスプログラミング Ver. 2.0」は
いらないと思う。
どちらにしても本屋に行って立ち読みしてからで。
衝突判定なら他に選択肢は無いんじゃないの?
■ このスレッドは過去ログ倉庫に格納されています