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

C/C++ゲーム製作総合スレッド Part4

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2013/08/12(月) NY:AN:NY.ANID:RPqvnGkC
ゲーム製作におけるC/C++全般に関するスレです。

元スレ
DXライブラリ 総合スレッド その12
http://toro.2ch.net/test/read.cgi/gamedev/1330000532/

前スレ
C/C++ゲーム製作総合スレッド Part1
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/
C/C++ゲーム製作総合スレッド Part2
http://toro.2ch.net/test/read.cgi/gamedev/1351015269/
C/C++ゲーム製作総合スレッド Part3
http://toro.2ch.net/test/read.cgi/gamedev/1357899040/
0002名前は開発中のものです。2013/08/13(火) NY:AN:NY.ANID:dWEShqRV
>>1
ゲームの解像度を640×480から1280×720に変更したら、画面が広い広い。
0003名前は開発中のものです。2013/08/13(火) NY:AN:NY.ANID:k1Y9Y3rO
そして縦長画面のゲームを作るんですね
0004名前は開発中のものです。2013/08/13(火) NY:AN:NY.ANID:fLH/yZWa
つ [ピボット機能付きLCD]
0005名前は開発中のものです。2013/08/13(火) NY:AN:NY.ANID:m+NIrzIz
std::vectorのポインタってどうやってかっこよくランダムアクセスできますか?

(*vectorArrayp).Size() //ださい
(*vectorArrayp)[i]->GetHoge //ださい
↑こんなんでなく↓こんな感じで2行目の方法がよくわから
vectorArrayp->Size() //かっこいい
vectorArrayp->[i]//???
0006名前は開発中のものです。2013/08/14(水) NY:AN:NY.ANID:g36cvXmF
>>5
上と下、意味変わってると思うんだが
0007名前は開発中のものです。2013/08/14(水) NY:AN:NY.ANID:8aN6DN7u
stl とかあまり使ったことないけど、こんな感じで行けるんじゃなかったか
vectorArrayp->at(i)->GetHoge
あまりかっこよくはないが
0008名前は開発中のものです。2013/08/14(水) NY:AN:NY.ANID:ULHwdd5m
GetHogeに括弧がないのが気になる
0009名前は開発中のものです。2013/08/14(水) NY:AN:NY.ANID:9Rrnxhxa
コンテナをあまりポインタで扱ったことないけど、
defineかtypedefで何とかならんか?
0010名前は開発中のものです。2013/08/14(水) NY:AN:NY.ANID:rLvoelLt
templateでいいじゃんよ
0011名前は開発中のものです。2013/08/14(水) NY:AN:NY.ANID:UHvAELVl
pv[0][i]->m()

ちょっときもちわるいな
0012名前は開発中のものです。2013/08/14(水) NY:AN:NY.ANID:ZjClrTFk
クラスのポインタに入れて渡すか参照渡しを使うことが多いので配列をポインタにして使うってあんまり無い
0013名前は開発中のものです。2013/08/14(水) NY:AN:NY.ANID:NfZZMLnz
>>5
標準ライブラリを使うのは標準化を指向してるからだろ?
なら美醜の感覚(主観)を抑えた方がいいんじゃないかな
初心者の内から美意識に拘るのはハマり道の入り口だし
0014名前は開発中のものです。2013/08/14(水) NY:AN:NY.ANID:yn1/xvWn
>>12
接触した相手を、接触判定クラスから通知する感じでvectorに突っ込んでるんですけどダメですかね・・・
0015名前は開発中のものです。2013/08/15(木) NY:AN:NY.ANID:+l1ww1wu
俺も複数のオブジェクトを保持するクラス作っちゃうね。
インスタンスの管理もしたいし。
だから、vectorを直接渡すってのは殆ど無い。
0016名前は開発中のものです。2013/08/15(木) NY:AN:NY.ANID:spGuGn/T
>>14
クエリー結果のリスト(←線形リストではなく広義のリストね)を返す的な感じ?

非公開の(内部的な)やり取りならクエリー結果のリストを生のコンテナ(vector)で
ポンと渡すってのはアリじゃね?お互い身内同士だから結合度高くてオーケー。

お互いよく知らんもの同士、実装(リストがどんなコンテナに入れられてるか)を
知らない相手なら結合度を低めだから、vectorを仲介クラスにコンポジションするかな。
多分それが>>15の話かな
0017>>142013/08/15(木) NY:AN:NY.ANID:rZIVXUnn
難しくてよくわかんないです
具体的に言うと
キャラクタクラスが個々で持ってる、接触した相手のvector配列があってそれに通知と称して相手を渡してます。
で、キャラクターは更新時に通知を見て自分が何にあたったかをその場で判断してリアクションを取ります。

class CCharacter{
vector<CCharacter*> PendingCollisionList;
}

class CollisionObjectList{

vector<CCharacter*> List;

void Judge(){
for(size_t i=0;i<List.size();i++){
for(size_t t=i;t<List.size();t++){
if(接触判定){
List[i]->PendingCollisionList.push_back(List[t]);
List[t]->PendingCollisionList.push_back(List[i]);
}
}
}
}
}

}
0018>>142013/08/15(木) NY:AN:NY.ANID:rZIVXUnn
インデントがああ
0019名前は開発中のものです。2013/08/16(金) NY:AN:NY.ANID:5WkUq5kH
vectorをポインタで使うって話はどこいったの
0020>>142013/08/16(金) NY:AN:NY.ANID:XoAPOpvM
あ、こうでした

void Judge(vector<CCharacter*>* PendingCollisionList){
 for(size_t i=0;i<List.size();i++){
  if(接触判定){
   (*PendingCollisionList).push_back(List[t]);
  }
 }
}
■ このスレッドは過去ログ倉庫に格納されています