C++でFCのドラクエっぽいRPGを作る

このエントリーをはてなブックマークに追加
1名前は開発中のものです。
C++の勉強をかねてFCのドラクエっぽい感じのRPGを作りたいんです。

しょっぱなからつまずいています、知恵を貸してください。

<<使用しているもの>>
BorlandC++
DXライブラリ
ドラクエフォント


DXライブラリはここ
ttp://homepage2.nifty.com/natupaji/DxLib/index.html

ドラクエフォントはここ
ttp://slime4.hp.infoseek.co.jp/font/font.html




2:2007/11/02(金) 02:23:06 ID:M/fkomaJ
戦闘画面から作っている僕ですが、いきなりつまずきました。
グラフィックもファミコン感あふれるものにしたいためドラクエフォントを使おうと思っているのですが
HPなどを表示させるときにint型の数値を全角の数字にしなくてはいけません。
引数に数値を取って文字列を返す関数を作ろうと思ったのですがうまくいきません。
詰まっている箇所が二箇所。
int型からchar型にキャストする方法とNewでメモリを確保してDeleteするタイミングです。
よい解決法があったら教えてください。

char * itos(int number){
int figure = 0; //桁数
int check = number; //計算用に元の数字をコピー

//10で割るを繰り返して何桁なのかを求める
while(1){
if(check < 1){break;}
figure++;
check/=10;
}
//求めた桁数を使って文字列のメモリを確保
char *str = new char[figure + 1];

for(int i=figure;i > 0;i--){
//一桁づつintがたをChar型にしてstrに格納する
// strcat(str,2330 + (char)(number%(10^i));
}
//動的メモリの為、関数を抜ける前に開放しなくてはいけない。
delete [] str;
return str;
}
3名前は開発中のものです。:2007/11/02(金) 02:58:35 ID:SG+xTINV
しらべればいいやん
ねらーなら
4名前は開発中のものです。:2007/11/02(金) 05:20:01 ID:hOYjzdZZ
解放したメモリのポインタを返すの禁止

itoa() で文字取って
short nums[10] = {'0','1','2''3','4''5','6','7','8','9'} で桁ごとに引けばいいんでないの?

全角一文字はchar一個ではないよ
マルチバイト処理の関連
MBCSでググれば良
DxLibがどうだか見てないからわからんけど指示はあると思う

strcat の引数はどっちも[文字列へのポインタ]だからcharを直で渡しても駄目
っつーかコンパイラでエラーにならんのんかな
NTBSへのポインタでないといけない

あとは突っ込み待ち
51/2:2007/11/02(金) 10:31:38 ID:vzRmdmZ8
とりあえずそれなりにC++っぽく作ってみた(要boost)
効率はそんなに良くないと思う

#define NOMINMAX
#include <windows.h>
#include <string>
#include <limits>
#include <iostream>
#include <algorithm>
#include <functional>
#include <boost/mpl/plus.hpp>
#include <boost/mpl/int.hpp>
#include <boost/array.hpp>

namespace mpl = boost::mpl;

struct IntToFullSizeWSTR : std::unary_function<int,std::wstring>
{
  result_type operator()(argument_type i);
private:
  typedef mpl::plus<mpl::int_<std::numeric_limits<int>::digits10>, mpl::int_<3> > buffer_size;
  boost::array< wchar_t, buffer_size::value > i2w_buf, half2full_buf;
} conv;

int main() {
  std::wcout.imbue( std::locale("japanese") );
  std::wcout << ::conv(std::numeric_limits<int>::min() ) << L"?" << ::conv(std::numeric_limits<int>::max()) << std::endl;
}
62/2:2007/11/02(金) 10:33:31 ID:vzRmdmZ8
// 続き

IntToFullSizeWSTR::result_type IntToFullSizeWSTR::operator()(argument_type i) {
  assert( ::_itow_s(i, i2w_buf.begin(), i2w_buf.size(), 10) == 0 );
  if ( i >= 0 )
  {
    assert( ::LCMapString(
          MAKELCID( MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), SORT_DEFAULT )
         , LCMAP_FULLWIDTH
         , i2w_buf.begin(), buffer_size::value
         , half2full_buf.begin(), buffer_size::value)
        == buffer_size::value );
  }
  else
  {
    assert( ::LCMapString(
          MAKELCID( MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), SORT_DEFAULT )
         , LCMAP_FULLWIDTH
         , i2w_buf.begin() + 1, buffer_size::value
         , half2full_buf.begin() + 1, buffer_size::value)
        == buffer_size::value );
    half2full_buf[0] = L'ー';
  }
  return std::wstring(
    half2full_buf.begin()
   , std::find(half2full_buf.begin(), half2full_buf.end(), L'\0') );
}

しかしC++はややこしすぎ、作った禿の頭のピカールで磨いてやりたいぐらいだ
7名前は開発中のものです。:2007/11/02(金) 11:13:49 ID:hOYjzdZZ
ナイス器用貧乏
8:2007/11/02(金) 13:12:52 ID:o1sf08np
>>4 さん >>5 さん ありがとです

足りない頭で引数にchar型ポインタをとるタイプならなんとかなりました。
家に帰ってからじっくり見て参考にしてポインタを取らないタイプにしたいと思います。

ちょっと考えたら右詰めでそろえた方が都合が良さそうなので、必要な桁数も引数に取ることにしました。

http://sakuratan.ddo.jp/uploader/source/date56840.zip
9名前は開発中のものです。:2007/11/02(金) 15:10:27 ID:3v9/ukJI
intのままビットマップフォントで描画したほうが軽いでしょ
10名前は開発中のものです。:2007/11/02(金) 17:25:18 ID:IOxKv0gf
俺もそう思う
11:2007/11/02(金) 21:17:49 ID:M/fkomaJ
>>5

携帯からじゃぜんぜんわかんねぇ… って思ってたけど
携帯のせいじゃなくて僕にソースを見る力がないだけですた Orz
Boostはぐぐったらすぐでてきました。
かなり強力なライブラリっぽいのでがんがって勉強します。 ・ω・ゞ

>>9,10
フォント自体をいじって半角数字のところに全角の数字を入れちゃうってことですか?
もうちっとkwsk
12名前は開発中のものです。:2007/11/02(金) 22:49:55 ID:aw8yHlLW
よく分からんがitoaかsprintfで半角文字列にして
ループでその文字コード舐めるだけでいいんじゃないの
139:2007/11/03(土) 00:24:39 ID:Iws3HFCw
>>11
マップ描画の時、チップ番号に対応するスプライトを描画するよね。
それと同じ仕組み。
14:2007/11/03(土) 10:20:51 ID:gstDZlgr
文字描写用にDrawString()っていう関数があるけど
それを使わないでBMPとかを書くDrawGraph()を使うってことか…
ドラクエフォントを使うなら濁点の関係で文字描写の関数自体を
作らなくちゃいけないかもしれない、ってうすうす思ってたんだ… Orz
15:2007/11/03(土) 21:05:48 ID:gstDZlgr
いまさらこんなことを言うと殴られるかもしれないけど、
フォントの問題は難しそうなので、先にマップを作ってみようと思います。
C++に慣れる意味もこめてわかりそうな所から攻めてみます。
16名前は開発中のものです。:2007/11/03(土) 22:12:55 ID:9QsIYSTC
背景は、マップチップを敷き詰めていくのは非効率的なので、
でっかい画像を用意したほうがいいですよ。
丸々1マップ分でなくても、使い回しが利くブロックに分けるのも手。
17名前は開発中のものです。:2007/11/03(土) 22:42:21 ID:F4e+Wx4a
でっかい画像だとマップの微修正が面倒じゃね?
18名前は開発中のものです。:2007/11/03(土) 23:32:39 ID:ODdojPA9
でかい画像でマップって
海の判定とかもんのすごく面倒そうな感じがするんだけど。
19名前は開発中のものです。:2007/11/03(土) 23:50:23 ID:CPReYdrd
仮想マップ使え
20名前は開発中のものです。:2007/11/04(日) 00:41:13 ID:3TCgUkt8
文字も画像も同じだろ
ファミコンのドラクエはどっちもキャラクタで描画してんだから
21名前は開発中のものです。:2007/11/04(日) 01:12:01 ID:sGjq5X72
>>16-18
え、まじっすか?(汗
一マスの画像データを取り込む感じでやっちゃいました Orz
最終的に一マスごとのデータをクラスにして、通行可否とかももてるようにしるつもりでした…


>>19
仮想マップって何でしょうか?

>>20
文字も画像であつかおうとすると、仲間が死んだり、夜になったときに文字の色をかえるのがややこしそう…
でも、ファミコン版だと死人が出たときに海岸線が朱に染まるよなぁ…
そういうのも再現するとしたら、どうやってやるんだろ?

とりあえず、すこしだけ動くようになりました。
マップの範囲がかなり狭くて、あんまり動くと不正終了します。
終わるときはウインドウズのXボタンで。

さしあたりの問題は移動が早すぎるのと、どのクラスにどこまでまかせるのか。
あと移動の判定もしなくちゃな…

ttp://sakuratan.ddo.jp/uploader/source/date57047.lzh



22名前は開発中のものです。:2007/11/04(日) 03:42:22 ID:6tIS1w9d
>>16
>>21
沢山レイヤーを重ねるわけじゃなさそう(ファミコン風らしいし)だし、
問題になるほどの頂点転送なんか発生しないでしょ。
自由なマップデザインの妨げにもなるし、かえって冗長なメモリ食うほうがこの場合問題になるから
このままでいいんじゃないか?
むしろクリッピングするほうが効果がありそうだ。
23:2007/11/04(日) 07:15:08 ID:7NRLPi1I
アク禁にくらった…


>>22
クリッピング?
また新しい単語が…

少し大きめにマップを書いて、枠からはみ出た部分はカットされるとか、そういう感じですか?



とりあえず移動して体の向きが変わるようにしました。

あとエンターで座標表示
ESCで終了するようにしました

http://sakuratan.ddo.jp/uploader/source/date57068.lzh
24名前は開発中のものです。:2007/11/04(日) 13:29:23 ID:XVaCq5Z+
>>21
>でも、ファミコン版だと死人が出たときに海岸線が朱に染まるよなぁ…
>そういうのも再現するとしたら、どうやってやるんだろ?

背景に全て画像を使うんだったら、
死人出た時用の画像を別途用意しないと無理じゃね?
それが嫌だったら、ファミコンと同じようにやるしか無いよなぁ
25名前は開発中のものです。:2007/11/05(月) 00:38:00 ID:2iUdY2Qo
8ビットDIBでパレットアニメーションっていうのはどうかな?
26:2007/11/05(月) 12:25:34 ID:BE3u4m/u
マップ一つでもこうやって考えると結構難しいんだなぁ…
マップの仕様をつめないとダメそうですね

一つのマップのデータを一つのファイルにまとめると考えて、必要なデータは

class Cell{
int hGraph[8]//とりあえず時間帯で8パターンのグラを用意
int passable;//0 通行不可 //1 通行可
//2 船なら通行可
}

class Field{
int xSize , ySize;
Cell mapData[xSize][ySize]; //←newで動的にメモリ確保
}

こんな感じでしょうか?
27:2007/11/05(月) 12:48:39 ID:BE3u4m/u
あ、違った

パレットアニメを使うなら8個もハンドル用意しなくていいのか。
…勉強してきます
28:2007/11/05(月) 22:33:46 ID:BE3u4m/u
パレットアニメーションについてはなんとなーく わかったようなわからないよ
うな…
あとは実践しながら覚えろ、って感じですが、
ぐぐって出てくるのがC#ばっかり… Orz

おまけにPentiumII とかいう単語が出てくる始末。。。。

素直にBMP複数用意したほうがいいのかな…
29:2007/11/09(金) 16:17:06 ID:YJbVYn7p
わからないところを後回しにしつつ、なんとなくやってます

なぜかマップの座標のxが48から57の間だけ表示されません
原因不明です orz

だれかボスケテ
http://sakuratan.ddo.jp/uploader/uploader/source/date57945.lhz
30:2007/11/09(金) 17:40:48 ID:YJbVYn7p
わからないところを後回しにしつつ、なんとなくやってます

なぜかマップの座標のxが48から57の間だけ表示されません
原因不明です orz

だれかボスケテ
http://sakuratan.ddo.jp/uploader/uploader/source/date57945.lhz
31名前は開発中のものです。:2007/11/09(金) 22:22:32 ID:SDOrYmNB
>>30
ダウンロードできん
どっちみち俺わからんけどがんばれ
321:2007/11/09(金) 22:46:17 ID:71zhIprC
すんまそん、URLまちがえてました

ttp://sakuratan.ddo.jp/uploader/source/date57945.lzh
33名前は開発中のものです。:2007/11/10(土) 10:33:44 ID:KvJMjNmK
>>32
int FieldMap::setMapData()の
ファイルの読み込み部分で改行コードを飛ばしてない
↓これで一応できたけど改行コードはこれでいいか分からない。

//開いたファイルを元にmapData配列にアドレスを入れていく
for(int i=0;i<64;i++){ //初期化
for(int j=0;j<64;j++){
mapData[j][i] = &(tileData[3]);
}
}
for(int i=0;i<64;i++){
for(int j=0;j<65;j++){
char c = fgetc(fp);
if(c == 0x0a){ //改行コード?
break;
}else if(c == EOF || j == 64){
goto EXIT;
}
mapData[j][i] = &(tileData[atoi(&c)]);
}
}
EXIT:

あと、int FieldMap::setTileData()の
tileDataAmount = fgetc(fp);
↑文字コードそのまま入れててtileDataAmountに56の値が入ってる。
34名前は開発中のものです。:2007/11/11(日) 00:14:09 ID:I2Ef3r5N
なんでこんなに無駄にexeデカいんだろ
35名前は開発中のものです。:2007/11/11(日) 04:22:42 ID:az0lrOpc
デバッグモードっつーのと、DxLib.lib がデカいからじゃね?
36:2007/11/11(日) 12:36:57 ID:Bi03rvGZ
//マップのタイルデータの枚数
tileDataAmount = fgetc(fp) - 0x30;
に変更しました。
10枚以上のデータを確保するかもしれないことを考えてこうしました。

EXIT:
の下に

for(int i=47;i<64;i++){
DMsg(mapData[i][0]->getGraph());
}

を付け足してみると
やっぱりxが48〜57の分だけデータが入ってないんですよね…
ボスケテ Orz
3733:2007/11/11(日) 14:36:39 ID:g72Q0xxF
アップされたソースではDMsg()がexit(0)ってしてるから
下に変えて見てみたけどデータは入ってたよ。なんだろうね。

for(int i=47;i<64;i++){
//DMsg(mapData[i][0]->getGraph());
char c[32];
MessageBox(NULL,itoa(mapData[i][0]->getGraph(),c,10),"デバッグ",MB_YESNO | MB_DEFBUTTON2);
}
381:2007/11/11(日) 15:47:06 ID:Bi03rvGZ
>>33

なんか解決したっぽいです

Char c

の宣言をfor文の中じゃなくて
先頭に持っていったら無事表示されるようになりますた。

まじサンクスです。

391:2007/11/13(火) 00:54:58 ID:DHq4bef+
とりあえず中途半端だったアリアハン大陸を完成させてみました。
城もマップ上に配置させてみたけど、まだ中に入れません。

FieldクラスにChar *の配列でマップの名前のリストを持たせて
マップ切り替えごとにFieldMapクラスを取り替えていく感じでやってみようと思います。

マップ作ってる時に エディタが切にほしいと思いました。
そのうちマップのデータをフォルダじゃなくて一つのファイルにまとめたいけど
そのためには仕様をまとめないとだめですよね。 Orz


tp://sakuratan.ddo.jp/uploader/source/date58354.lzh
40名前は開発中のものです。:2007/11/13(火) 01:54:20 ID:DHq4bef+
//**************************************************************
//* MapObjectData クラス *
//* マップに配置するオブジェクトデータのクラス *
//**************************************************************
class MapObjectData : public MetaMapObject{
public:
MapObjectData(void);
MapObjectData(char *);

virtual int action(); //便利ボタン用
virtual int talk(); //はなしたとき
virtual int search(); //しらべるのとき
virtual int onit(); //上にのったとき
};
仮想関数を四つ追加してオーバーライドすることでそれぞれの役目を持たせようと思ってます。
まず城に入って移動という機能をつけたいので onit()を継承したクラスを作りたいのですが、
返り値がintだけじゃ足りません。
移動先のマップの名前をもったChar * と 座標のint x,yが必要です。
返り値用のクラスを作ると、移動以外の処理をしたいときに困っちゃうので、何かいい解決方法はないでしょうか?
41名前は開発中のものです。:2007/11/13(火) 03:11:41 ID:qyitJc6C
今北

海岸線が朱に染まる件って解決したのん?
白く表示される部分を透明色でチップを作っておいて、
マップの背景に白バックを用意しとけばいいんじゃない?

で、メニューも透明色で描いてやったらメニュー部分も一気に
赤表示や緑表示にできていいかなーと思うんだけど
もちろんこの場合メニューと重なる部分のマップチップは描かない感じで

う〜んわかりにくいかな
42名前は開発中のものです。:2007/11/13(火) 03:45:11 ID:DHq4bef+
>>41
実は未解決です。

文字の型を抜いておいて、背景色がすける感じ、ですよね
なんとなく分かったような…

でも、それだとコマンドとかある程度固定のものはいいけど普通の会話を処理するとき困りません?

てか それ以前に海岸線実装してないぽ… Orz
やることいっぱいで嬉しいような本気の悲鳴。
43名前は開発中のものです。:2007/11/13(火) 05:40:16 ID:qyitJc6C
>>42
ん?どうして?
任意の文字列出すときも

message_window->DrawString("おお、ふるきいいつたえのゆうしゃにひかりあれっ!");

みたいな感じで描けばいいだけのような・・
もちろん普通の文字描画じゃなくグラフィックを並べて描く
(スレの最初で話題になってた方法と同じ)やり方でね

海岸線とかはもっと後でもいいと思う
44:2007/11/13(火) 16:38:02 ID:CeANgSHM
>>43
あ!そういうことか!

どっちみち文字描写に関しては最終的に自分でやらなきゃダメだって思ってたので
一文字ずつグラ作ってやれば解決しそう! ありがとです。

あとは時間経過のグラ変化に着いてはパレットアニメーションが有力ですが、なんか難しそう…
かといって全パターンbmpで作るとメモリ食っちゃうしな…

あれ?どれくらい食うんだろ?
451:2007/11/15(木) 02:27:58 ID:wJi13tnN
とりあえずやりかけてた所をつくりました。
なんちゃってスクリプトみたいなものを作ってみたら、本当にツクールみたいな感じだなって思いました。
今の方式だと命令文が各オブジェクトにつき一つしか入れられないから、そこは直さないとな。
あとイベントフラグとかどうやって実装しよう…

文字のアレも早く実装しないとな…
でも画像データ作るの結構時間かかりそうだ。

http://sakuratan.ddo.jp/uploader/source/date58541.lzh
46:2007/11/15(木) 02:31:28 ID:wJi13tnN
あと、文字操作に関するクラスを作ったんだけど、問題ないか見て欲しい。


class String{
private:
char *str;
int pointer;

public:
String(char *);
~String();
char getChar();//現在位置から一文字返し現在位置を移動
char * getString();//半角スペースか改行が出てくるまでの文字列を返す
char * getLine();//改行までの文字列を返す
};

String::String(char *c){
pointer = 0;
str = new char[strlen(c)+1];
strcpy(str,c);
}

String::~String(){
delete [] str;
}

char String::getChar(){
pointer++;
return str[pointer - 1];
}
471 続き:2007/11/15(木) 02:32:56 ID:wJi13tnN
char * String::getString(){
//初期化
char c[1024];
char cc;
int i = 0;
//最後の文字まで読み込んでいたら""を返す
if(pointer > strlen(str)){
return "";
}
//Null文字が出て来るまでWhileを回す
while(cc = getChar()){
if(pointer > strlen(str))break;

if(cc == 0x20 || cc == 0x0a){
//改行かスペースが出てきたら終わり
c[i] = 0;
return c;
}
c[i] = cc;
i++;
}
c[i] =0;
return c;
}
481 続き:2007/11/15(木) 02:33:28 ID:wJi13tnN

char * String::getLine(){
//初期化
char c[1024];
char cc;
int i = 0;

//最後の文字まで読み込んでいたら""を返す
if(pointer > strlen(str))return "";
while((cc = getChar()) != 0x0a){
if(pointer > strlen(str))break;
c[i] = cc;
i++;
}
c[i] = 0;
return c;
}
49名前は開発中のものです。:2007/11/15(木) 04:35:50 ID:aSBFCf/S
>>46-48
・getStringとgetLineでローカル変数へのポインタを返している
・ポインタ(int String::pointer)を初期化する方法がない(0に戻せない)<いらないのかな
・「pointer > strlen(str)」の部分でintとunsigned intの比較をしている
・定数直打ちは止めといたほうが・・(1024=>STR_MAX 0x0a=>STR_LFなど)
50名前は開発中のものです。:2007/11/15(木) 09:30:13 ID:/bSoxToM
ヒント
new,std::string
51名前は開発中のものです。:2007/11/15(木) 10:15:05 ID:Dxr/BWiM
ポインタじゃないものにpointerなんて名前つけるのは微妙
それはインデックスだ
52名前は開発中のものです。:2007/11/16(金) 06:33:32 ID:OV+uJg1d
>>50
だな
53:2007/11/16(金) 21:46:02 ID:UXZ5zvB8
>>49 >>51

ご指摘ありがとうございます!
早速修正をしますた!
ローカル変数のポインタは危険ですのぉ… うっかりしてますた。

>>50 >>52

        ぇ…?

      ,-、     ,,,,_       ,.-、
     ./:::::\   /,'3 `っ  .../::::::ヽ
    /::::::::::::;ゝ--`‐‐‐'´- 、._/::::::::::::::|
    /,.-‐''"´          \:::::::::::|  
  /                ヽ、::::|  
 /                   ヽ|
 l                         l
. |    ●                 |
 l  , , ,           ●      l
 ` 、      (__人__丿    、、、   /
   `ー 、__               /
      /`'''ー‐‐──‐‐‐┬'''""´
      / ,,,,    ,,,  .... . |
     ,//ミLミ   ミLミ |  |
     (_/ ""    ""  ヽ、_)
  .  、ゞ'"'ッ,、... ゞ'"'ッ,、 .. ゞ'"'ッ,、 .. ∩
 ....... ミ ,'3 彡ミ ,'3 彡ミ ,'3 彡 ..ノ |
..... ...... シ,, ,;; ヾ` シ,, ,;; ヾ` シ,, ,;; ヾ二 ノ
 ................... `ー‐' ...... `ー‐'
54:2007/11/16(金) 21:49:14 ID:UXZ5zvB8
便利なstringを知り、手当たり次第に修正しようとしたらめちゃくちゃになってしまった。。。
バックアップを使ってやり直しです Orz

いやー string便利だー
便利すぎて泣けてくる。

今までの苦労はポインタの勉強をした、と思うことにしよう。
55:2007/11/16(金) 22:59:12 ID:UXZ5zvB8
コンパイラに怒られながらというかなり非効率なやり方ながら半分くらいstringになったかな?

はなす を実装しました。

MapObjectMap.txtで設定したオブジェクトのうち一番最後のものだけ、EOFがEOFノ とかEOF4 とか出てきます。
char型配列の呪いみたいな臭いがして、穴が開くほどコードをみたんですが、お手上げです。
誰かボスケテ Orz

tp://sakuratan.ddo.jp/uploader/source/date58821.lzh
56名前は開発中のものです。:2007/11/17(土) 03:29:57 ID:NtE6efWM
>>55
どうやら問題はデータが一番最後かどうかではなくデータそのものに依存するらしいところまでは分かった。
例えば「ようやく はなしが できるようになった。」の部分を""で囲ったり、
「ようやく はなしができるようになった。」とするとエラーは出なくなる。
逆にエラーが出るオブジェクトの順番を変えてやってもやっぱり同じ部分でエラーが起こる。

てかVC++だとエラーでまくりでビルドできない。
少しくらいなら直してもいいんだが最初見えてるの直すと30くらい来るから無理w
俺の為に直せとは言わないけどint型の関数なのに値を返さないとか
初歩的ミスも結構あるからそういうのは直しといた方がいいと思う。
というかBCCだとあれでもコンパイル通るんだな。
57名前は開発中のものです。:2007/11/17(土) 04:27:22 ID:3LkIon8X
今の技量で続けたら挫折しそうな予感…
上手くデバッガを使えるか知らないけど、実行時の原因不明なバグ調べてて嫌にならないか?
58名前は開発中のものです。:2007/11/17(土) 10:22:23 ID:DAW7rWYI
>>56
BCCだと通ってしまうんです。
BCCが初めてのCコンパイラで、それ以外使ったことがないのです。
returnをつけてみました。

>>57
原因不明なバグに挫けそうです Orz
技術不足も知識不足もそのとおりなのです。
なにせstringすら知らなかったど素人ですし。
そしてその素人はデバッガの存在をしらなかったのです。

さっそく使ってみようとググってDLしようとしたらサーバが落ちてるっぽい Orz

59:2007/11/17(土) 10:25:11 ID:DAW7rWYI
URL書く前に間違えて送信ボタンおしちゃいました Orz


tp://sakuratan.ddo.jp/uploader/source/date58862.lzh
60:2007/11/17(土) 10:33:35 ID:DAW7rWYI
DXライブラリが BCC用と VC用とがあったのを思い出しました。
VC用のDXライブラリにつけかえました。
よろしくお願いします m(__ __)m
611:2007/11/17(土) 10:35:08 ID:DAW7rWYI
あ、またURL載せ忘れた Orz
だめだ、落ち着け僕。

tp://sakuratan.ddo.jp/uploader/source/date58864.lzh
62名前は開発中のものです。:2007/11/17(土) 10:57:40 ID:d7I0LgHR
ある程度ゲーム作りに慣れてればドラクエはそれほど難しくないと思う
しかしウィンドウ、キャラクタ、戦闘、イベントなどなどやらなければ
いけない事が膨大で、そのへんのゲームより作業量が非常に多くなるという罠

以上、同じようなことやってて途中で放置プレイしている人間のチラ裏
63名前は開発中のものです。:2007/11/17(土) 16:57:44 ID:rLUooNoc
>>61
取り合えず そこのあぷろだにログをあげてみた
http://sakuratan.ddo.jp/uploader/source/date58888.htm

BCCだとコンパイル通るんだな、意外だ
64:2007/11/18(日) 12:14:03 ID:Y/pTO1mo
>>62
モンスターのデータをつくったりとか、イベントの会話データとか、ゲームを作るのは結構時間がかかると思います。
でもシステム自体を作るのは簡単…  なのかな?
僕には難しくつまずいているわけですが。
とりあえず、これを完成する頃には初心者じゃないと言えるくらいにはなるのかな、と思ってみたり。

>>63
BCCだと問題なく通っちゃうんですよねぇ…
enumにint型をそのままいれられたりとか。
関数の戻り値の型が入ってないのは純然たる入れ忘れです。
よくコンパイル通ったな…

tp://sakuratan.ddo.jp/uploader/source/date59123.lzh
65名前は開発中のものです。:2007/11/20(火) 05:28:57 ID:17MvCz5h
処理系依存なんじゃないの? 
66名前は開発中のものです。:2007/11/20(火) 11:42:07 ID:w3lrBuf0
ドラクエ作るんなら
最初にツクール作った方がいいよ

意味わかる?

つまりマップエディタとかキャラエディタとか
管理や汎用がラク
67名前は開発中のものです。:2007/11/20(火) 11:56:19 ID:OVlMufIS
>C++の勉強をかねて
68:2007/11/20(火) 19:46:36 ID:xyOjqPZC
またもや アク禁です (;・д・)

>>66
最初からツクールを作るつもりだったんですが、
なにせ仕様がかたまってなくて…(汗

マップやキャラはこれ以上増やさずにシステム部を固めて
ある程度仕様がみえてきてからツクールを作ろうと思ってます。
何枚ものbmpファイルと設定用のtxtファイルを一つのファイルにまとめたり、
使い回しが楽になるような、そんな感じにしたいなぁ…。


デバッガが落とせなくてBolandにメール送ってしまった。
早くデバッガ使ってみたいなぁ…

濁点と半濁点の文字を力技で表示できるようにしました。
43さんのやり方にするためにはBMPを用意しなくちゃいけないので、もうちょっと時間が… Orz

会話のカーソルを上手く点滅させられなくて困っています。

BCC用
tp://sakuratan.ddo.jp/uploader/source/date59584.lzh
VC用
tp://sakuratan.ddo.jp/uploader/source/date59585.lzh
69名前は開発中のものです。:2007/11/20(火) 19:58:55 ID:EuIapzs3
余計かもしれないけど、ある程度仕様を固めてから作らないと、あとでデータ構造で困る可能性があるよ。
そうじゃないとデータ構造のせいで仕様に制限が生まれてしまう。
70:2007/11/21(水) 19:27:04 ID:H4c55rmu
>>69
仕様を考えてみました。
大まかに分けて5つのデータを作ります。

マップデータ
モンスターデータ
職業データ
アイテムデータ
呪文データ

それぞれのデータはお互いの中身を知っていることにして、
お互いを文字列を使って呼び出せるとします。

詳細
・マップデータ
マップサイズ
マップのタイルのデータ
グラフィック
移動判定
モンスターの出現率
タイルのデータを使った実際のマップのデータ
マップに配置するオブジェクトの元になるデータ
グラフィック
タイプ(物、生き物)
移動判定
オブジェクトの中身のデータ
モンスターの配置データ
出現するモンスターのパターン =>モンスターデータを参照する
パターンをセットしたデータ
71:2007/11/21(水) 19:27:57 ID:H4c55rmu
・モンスターデータ
モンスターのグラフィック
強さ(Lv,HP,Mp,攻撃力、守備力、すばやさ、経験値)
攻撃方法 =>呪文データも参照する
耐性
落とすアイテム => アイテムデータを参照する

・職業のデータ
グラフィック(4方向*2パターン)
成長データ
取得呪文リスト =>呪文リストを参照する

・アイテムリスト
アイテム名
タイプ(武器、兜、鎧、盾、装飾品、消耗品、貴重品)
使用可能な職業 =>職業リストを参照する
効果

・呪文リスト
呪文名
消費MP
対象(敵一匹、敵グループ、敵全体、味方一人、味方全員、自分)
タイミング(移動中、戦闘中、両方)
効果

つっこみお願いします。
72名前は開発中のものです。:2007/11/21(水) 20:53:38 ID:+bb6+Uy/
>>71
>対象(敵一匹、敵グループ、敵全体、味方一人、味方全員、自分)
これだとパルプンテみたいに効果によって対象が変わる呪文が実装できない。
パルプンテ作る気ないならいいけど。
73名前は開発中のものです。:2007/11/21(水) 23:25:21 ID:QAMIESYX
モンスターデータなどは
パラメータ等を格納したマスターデータと
今戦闘しているモンスターのみが必要なサブデータは分けて考えた方がいい。
クラスとインスタンスの関係のような感じ。
74名前は開発中のものです。:2007/11/22(木) 00:00:20 ID:YnWGqx+/
いちお、うちは、ドラクエオンラインを目指してるのだw
ドラクエの上位版な。力ある奴こい

CreateGameー陸海空オンラインー
http://www112.sakura.ne.jp/~kaientai-project/creategame.htm

うちは、背景がぐいぐい動くゲームを想定しておりまする。

イメージ3D
http://www112.sakura.ne.jp/~kaientai-project/joyful/img/1.jpg
http://www112.sakura.ne.jp/~kaientai-project/joyful/img/9.jpg

よろすくw
75名前は開発中のものです。:2007/11/22(木) 00:17:26 ID:Gx1wHKMf
物理エンジン「フェニックス」日本名『 鳳 凰 』を
開発できる者いたら来るのだ。
http://www112.sakura.ne.jp/~kaientai-project/creategame.htm
76:2007/11/22(木) 13:36:00 ID:1nrzvj+v
>>72
なるほど…
パルプンテか…
あとラナルータとかアバカムとかトヘロスとかあるな…
対象に「空間」を加えてみよう。
パルプンテの実装はかなりめんどくさそうだ…

>>73
ですね〜
とりあえずマスターデータに必要なものをあげていきたいと思います。

あと、セーブデータの使用も考えないとだ(汗
77名前は開発中のものです。:2007/11/23(金) 07:48:06 ID:aIwuXGYs
>グラフィック(4方向*2パターン)

横向きのグラフィックは反転すれば2種類で済むじゃん
と思ったんだが、
ドラクエ3って、右向きと左向きでグラフィック違うんだな
初めて知ったわ
78名前は開発中のものです。:2007/11/23(金) 07:49:13 ID:aIwuXGYs
>グラフィック(4方向*2パターン)

横向きのグラフィックは反転すれば2種類で済むじゃん と思いきや
ドラクエ3って、右向きと左向きでグラフィック違うんだな
初めて知ったわ
79名前は開発中のものです。:2007/11/23(金) 07:50:08 ID:aIwuXGYs
ゴメン、2回書いてしまった
80:2007/11/23(金) 21:19:47 ID:EqvVctbz
>>77
そうなんすよ。
モンスターの中にはグラを反転させてるのもいるみたいですね。


性別のデータはどこに入れるべき? キャラクタの中にするか、職業に そうりょ・おんな みたいな感じにするか、

…両方やった方がいいのかな?
81名前は開発中のものです。:2007/11/23(金) 22:07:20 ID:bo2lQ7Oe
>>1って何を見てC++の基礎的な部分を学んだの?
82:2007/11/24(土) 00:52:56 ID:MS8gIJ0s
>>81

tp://wisdom.sakura.ne.jp/programming/index.html
↑ここ

あとは気になる単語をひとつづつググっていって… っていう感じですかね。
まだまだ分からないことだらけです。 Orz
83:2007/11/24(土) 01:22:41 ID:MS8gIJ0s
仕様がにつまらないまま、とりあえず四人PTが動くような感じにしました。
wを押すと移動モードが変わります。

tp://sakuratan.ddo.jp/uploader/source/date60147.lzh

壁に当たった状態で向きをかえ、そのまま動くと二人目以降が変な動きをし

横方向に一周すると二人目以降が一瞬消え、
縦方向に一周すると、なぜか背景がずれる。

問題は山済みだぁ…

84名前は開発中のものです。:2007/11/24(土) 06:15:15 ID:LF10ZKGk
>>83
>>壁に当たった状態で向きをかえ、そのまま動くと二人目以降が変な動きをし
移動できなかった時の処理を修正すれば解決するから、何とかしれ

あと、int型の関数なのに 値を返さないヤツは
VC++だとエラー吐きまくりだから、何とかした方がいいかもね
85:2007/11/24(土) 13:06:36 ID:tttKXuAd
>>84
壁に当たって移動できないときの向きを保存しておくしかなさそうですねぇ…
VC++もインストールした方がよさそうかしら?
ってかBCCってあんまり使われてない!?
86名前は開発中のものです。:2007/11/24(土) 16:17:37 ID:28bRJwv0
>>85
VSEEが登場してから確かにBorlandを進める入門書も激減したね。
どっちでもいいと思うけど、VSEEにはヘルプが充実してるから無料だし
入れておいても損は無い。

学生ならAcademic 2005が4500円ほどで買えるし
87名前は開発中のものです。:2007/11/24(土) 21:15:26 ID:mZLg9kAb
bccでも
「関数は値を返すべき(Function should return a value)」
という警告が出るはずだが。
88名前は開発中のものです。:2007/11/25(日) 08:54:44 ID:dvwP3UD3
BCCから始めてVSseに移った漏れは早いうちにVC++に移ったほうがいいと思う
API使うにつれ構造体が多くなるから、あのIDEはかなり強力
89名前は開発中のものです。:2007/11/26(月) 21:41:21 ID:kVJVN9m4
>>86
ぢつは 学生ではないです、。Orz

>>88
VC++を落としたのですがXP SP2じゃないと使えないみたいですね。
メインで使っているPCが二台あって、うち一台はSP1のままで
勝手にSP2にできないので、このままBCCを使う方向で。
ちょっと使ってみたけど、VCEEの方が便利そう…

>>87
よくよくIDEをいじってみたら、警告を返さない設定になっていました Orz
できる限りなおしてきます。 Orz
90:2007/11/27(火) 00:47:00 ID:d34z+KuU
ファイルを読み出すときに fgetcをchar型で受け取っていたのをint型に直しました。
↑かなりバグの原因になっていた気がします。

壁に当たった際の移動処理の修正をしました。
横方向に回るときに63⇔0の時に二人目以降が消えるバグを修正しました。
キーの入力の処理をちょっと修正しました。
今まで押されている状態と押されていない状態しか判別できなくて困っていましたが
ちゃんと4つの状態を取り出せるようになりました。
(押されていない、押した瞬間、押している、離した瞬間)

縦方向に方向に世界一周する時ずれるバグの原因が不明です。
デバッガの使い方が良く分かってないのが悪いよなぁ…

tp://sakuratan.ddo.jp/uploader/source/date60604.lzh
91名前は開発中のものです。:2007/11/27(火) 15:53:32 ID:XifSZqNn
関係ないけどDXライブラリで
#include <iostream>
するとエラーが出まくるんだけど何でだろう・・・
92名前は開発中のものです。:2007/11/27(火) 16:08:10 ID:uGSxxWdB
STLを使うときはDxLib.hを見て
「STLを使うときはここのコメントアウトをはずしてください」
ってところがあるからそのとおりにしてみる
93名前は開発中のものです。:2007/11/27(火) 17:28:56 ID:XifSZqNn
>>92さんありがとう。
でもなんでデフォルトをこれにしなかったんだろう・・・。
高速化のためかな
94:2007/11/28(水) 15:34:05 ID:zLkvDFFj
>>91 さん
僕は警告が止まりません。
STDの意味も分らなかったり Orz
ちょっとヘッダー見てきます

>>90
でfgetcをchar型で受け取っていたのが悪いとかいってたけど
int型で受け取っても問題なかったみたいですね Orz
95名前は開発中のものです。:2007/11/28(水) 22:13:35 ID:u4wU15z0
がんばれ
96:2007/11/29(木) 07:49:09 ID:8WyJyauK
>>95
がんばります!


ぼちぼち戦闘を作りたいと思ってます。
二回目以降の戦闘で
メッセージが二回表示されちゃうバグの原因が分りません。なんでだろ?
tp://sakuratan.ddo.jp/uploader/source/date60858.lzh
97名前は開発中のものです。:2007/12/02(日) 15:23:38 ID:86yI1zZh
>>1に触発されて、俺もRPGの土台作ってるわ
こりゃぁたしかにC++の勉強になるわな
981:2007/12/03(月) 08:16:10 ID:TADfcfNf
煮詰まってぜんぜん進んでないんですが、とりあえず生存報告。

tp://sakuratan.ddo.jp/uploader/source/date61465.lzh

>>97

おたがいがんばりませう。
あんまり人が書いたソース見たことないので
よかったら97さんのソースもうpしてくれると嬉しいかも。
99名前は開発中のものです。:2007/12/03(月) 08:43:22 ID:3su1LaOd
WaitVSync(1) ;

メインループのなかにいれてみたら?
10097:2007/12/03(月) 19:02:30 ID:b9C0qSJp
>>98
>>1のと比べたら、見せられるほど効率的なプログラムじゃないよ・・・
101:2007/12/03(月) 21:11:55 ID:TADfcfNf
>>97
ぜんぜん効率よくないっすよ…
デバッグも力技だし。
メモリとかめちゃくちゃ無駄遣いしてるし
すでにスパゲッティ化してて自分でも訳分らなくなったりしてるし Orz
10297:2007/12/03(月) 22:05:34 ID:b9C0qSJp
メインとかまだぐちゃぐちゃだし、容量も大きいぜ・・・
ハズイのでそのうち消すわ

ttp://sakurachan.dip.jp/up/src/up8417.lzh
103名前は開発中のものです。:2007/12/03(月) 22:07:54 ID:tyrMCse6
参考にさせてもらいます
104:2007/12/04(火) 07:55:53 ID:gS+kwsGk
>>97
わーい うpだ うpだ。
グラフィックを一枚にして分割して読み込んでるんですね。
たしかにこの方がわかりやすい!
まねしてみよっと。

105名前は開発中のものです。:2007/12/04(火) 13:14:06 ID:tD4LtuOS
106名前は開発中のものです。:2007/12/06(木) 20:10:16 ID:5cqYyHrM
 スレはよくみてたのになかなかソース見る機会なかったが、
試験前日だってのに今見た。
しかしまぁよく書いたな。お疲れ。そしてこれからもがんばれ。
とりあえず>>1応援ノ
107:2007/12/07(金) 03:38:39 ID:TqKt9CYS
>>105
便利そうだけど、今から使うとCharとstringとStringがごちゃごちゃになって収集つかなくなるのでやめておきます。
今度、また新しく作るときに使ってみます。

>>106
汚いソース見てくれてありがとです。
試験前日は勉強以外のことがしたくなりますよね。。。
試験がんばってください。
なんか、応援されると涙でるくらい嬉しいな。

とりあえず現状こんな感じ。
tp://sakuratan.ddo.jp/uploader/source/date61918.lzh

戦闘に入ると、にげるを選ぶまでずっとコマンドを選び続けることになります。
攻撃とかの処理はまだ入れてません。
パーティアタックの要素もいれるつもりですが、まだ全然ですね。

BattleFieldに敵味方含めて全部のキャラクタのポインタを持たせ
すばやさ順に並び替えて
キャラクタが保持しているCommand,subCommand,Targetを元に行動させてみたいと思います。
108名前は開発中のものです。:2007/12/07(金) 05:13:38 ID:G3CHG+0v
煮詰まる・・・・
109裕釐@106:2007/12/07(金) 07:07:51 ID:9GENbEd8
>>107の最新版bだがウィンドウが表示されたと思うと消えてしまう。。。
110名前は開発中のものです。:2007/12/07(金) 11:04:20 ID:ZFkfzkEg
http://fatalita.sakura.ne.jp/SoftReview/img/DQTEST.gif
こんなん作ってたんですけど、ソースとかアップしてもいいですか?
全然開発進んでないんで多分見ても面白くなさそうですけど
111名前は開発中のものです。:2007/12/07(金) 11:27:46 ID:SfdXkRE6
どうぞ
112名前は開発中のものです。:2007/12/07(金) 21:41:34 ID:ZPLhqQBz
なんか餅ベーションあがってきた
俺もRPG作る!

目標年内で、初期FC程度の遊べるレベルまで


しかし、DQドット絵って、どこかで流れてるの?
みんな、自分で手打ちしてるの?
113:2007/12/07(金) 22:02:06 ID:TqKt9CYS
>>108
僕も煮詰まってます。
挫折しそうな時に、このスレを見てがんばってます。

>>109
DLありがとうございます。
今Upしたやつ試してもらってもいいですか?

>>110
ぜひUpしてください。
見た目DQ1なのに、台詞が3で宝箱が4だw


敵味方全部のポインターをBattleFieldクラスに持たせるようにしようとしたけど
なかなか上手くいかずにずっと悩んでました。
デストラクタが呼び出されるタイミングについて質問があったんですが
どこだったか忘れました Orz

tp://sakuratan.ddo.jp/uploader/source/date61994.lzh
114裕釐:2007/12/07(金) 22:30:50 ID:9GENbEd8
かわりませんね。。

VC++で再コンパイルを試みているんだがコンパイルできない。。
・KeyTest.cppは何? 関数らしき宣言が見当たらないのだが。。
115裕釐:2007/12/07(金) 23:11:43 ID:9GENbEd8
連レスすまん。 起動できた
どうやらDQフォントに問題が。。tk別のほうのをインストールしてた

//フォント変更
if(ChangeFont("DragonQuestFCIntact") == -1){
DMsg("できればドラクエフォントをインストールしてください。");
}
これうまく作動してないかと。
何故Error関数じゃないのか気になるね
116:2007/12/10(月) 08:14:42 ID:P9jsj/2m
>>114-115

KeyTest.cpp はキー入力のテストで作ったファイルで、今はもう必要なかったです。
//フォント変更
if(ChangeFont("DragonQuestFCIntact") == -1){
DMsg("できればドラクエフォントをインストールしてください。");
}
↑は確かに思うように動作してないですね… Orz
Error関数じゃないのは、 で き れ ば インストールしてください ってことで。
僕の汚いコードを見てくれるのにわざわざフォントのインストールまで強制するのはどうかと思ったので。

あんまり進んでないけど最新版
****のこうげき!
****は **のダメージをうけた!
と表示されます。
今度は実際にダメージ計算をして
HP計算をして、死亡判定、戦闘の勝利判定までやりたいと思います。

tp://sakuratan.ddo.jp/uploader/source/date62360.lzh
117もつ ◆3hrQ9eL3.Q :2007/12/10(月) 21:47:12 ID:8T67gjbd
コンソールゲームスレで途中でやめたDQ1
コンソールなんですべてキャラクタ(文字)
ttp://sakuratan.ddo.jp/uploader/source/date62420.zip
一応、人、会話、戦闘、復活の呪文等を実装。
魔法はつかえん。バグたくさん。
↑、↓、←、→、スペース、BS が操作キー
118名前は開発中のものです。:2007/12/11(火) 13:12:14 ID:i04hax3Y
ドラクエふぉんとのないパソコンで起動すると
DrawStringDQ関数呼んだときに強制終了くらうよ。


対戦中の敵のパラメータは構造体で管理するとして、
対戦全体を管理するのにもクラス作ったほうが楽な気がする。 
119名前は開発中のものです。:2007/12/11(火) 16:54:54 ID:xDs0NYc0
>>2

int hn2fn(char c)
{
 return c + ('0' - '0');
}
120:2007/12/11(火) 19:12:31 ID:ANDKxxZg
>>118
僕のPCだとDQフォント無しで動いちゃってるんですよねぇ…
でもChangeFont("DragonQuestFCIntact")が-1を返しているわけではないみたいです。
ちょっとDxライブラリの掲示板に質問ぶつけてこようかな。

対戦全体を管理するのがBattleFieldクラスです。

…のつもりだったんですが、いまいち機能が中途半端なんですよねぇ…。
どんな機能をどこに持たせるべきなのかっていう判断が初心者には難しい…。
っていうか、それがそのままPGの力量に直結するんだろうなぁ…

      BattleField
    ↓       ↓
 PlayerParty MonsterParty
    ↓       ↓
    PC    MonsterGroup
            ↓
          Monster

あれ?矢印の向き逆?


>>119
レスありがとうございます。
今のところ
char c[2];
char[0] = 0x82; //
char[1] = 0x
みたいな感じで無理やりやってましたw

char型を取ってint型を返すのか…
なんか目からうろこだな。
121:2007/12/11(火) 19:21:33 ID:ANDKxxZg
現状UPです。

敵を倒すと戦闘終了するようになりましたが、
経験値やゴールドの増減はありません。

ステータス表示がパーティの人数で伸び縮みするようになりました。

モンスターの行動パターンとかどうしようか悩んでます。
今のところ攻撃一辺倒で、勇者一行の先頭キャラしか攻撃しません。
経験値とゴールドを解決したら、いちおう遊べるのかな?


tp://sakuratan.ddo.jp/uploader/source/date62496.lzh
122裕釐:2007/12/11(火) 21:00:59 ID:31kIAbMQ
BattleFieldね。おk。
敵数と敵の情報をまとめればいいかな、と℃素人は思ってしまう。。。あとで必要だと思うときに
付け足せるような形にまとめておくのがいいと思うよ。

戦闘中、複数種の敵がいる場合、たたかうを選んだときに
どれに攻撃するか選ぶよね。あの敵リスト?を更新するようにしないと。
倒してもリストからは消えないのは問題。

123名前は開発中のものです。:2007/12/11(火) 22:50:31 ID:FZGhBsSs
>>119

return c + '0';

でよくね?ちなみにマルチバイトだと…
124名前は開発中のものです。:2007/12/11(火) 22:54:54 ID:FZGhBsSs
おっとこの場合数値から全角文字か
125名前は開発中のものです。:2007/12/12(水) 07:39:59 ID:J/TJHZ+a
全角文字を' 'で囲むな
126名前は開発中のものです。:2007/12/12(水) 08:37:22 ID:7RFZk29b
ドラクエフォントを入れなくても動くように、
ドラクエフォントを画像データにしたほうが良いのでは?
字数知れているし。
127名前は開発中のものです。:2007/12/12(水) 13:27:41 ID:DWQ3Q4UI
>>126
サイズetcの変更はどうする
128名前は開発中のものです。:2007/12/12(水) 15:32:17 ID:DfKtb5wZ
>>125
C#ならOK
129名前は開発中のものです。:2007/12/12(水) 16:09:05 ID:9ySxVkow
サイズ変更なら、StretchBiltなりDrawExtendGraphなりでできるだろ。
130名前は多分開発中のものです。:2007/12/12(水) 16:17:11 ID:m1CVZqe+
>>128
残念ながらココはC++のスレ。


ストレッチは1ブロックあたりがでかく汚くなる。
131名前は開発中のものです。:2007/12/12(水) 20:51:46 ID:DYTuCNrB
ドット絵ベースなゲームに、TTフォントを使うこと自体間違っている。
132名前は開発中のものです。:2007/12/12(水) 22:58:46 ID:VmmQnXXX
WCHARでいいんじゃね
133名前は開発中のものです。:2007/12/12(水) 22:59:54 ID:M90VuyCU
いっそC++/CLIで
134名前は開発中のものです。:2007/12/13(木) 00:45:36 ID:6EdETOic
>>132
むしろwcharでないとvistaで問題出るんじゃないかね
使ってるライブラリがwchar対応してるか知らないから黙っていたが…
135名前は開発中のものです。:2007/12/13(木) 00:52:37 ID:8oxft27H
0〜9が並んでる保障ってあるの?
136名前は開発中のものです。:2007/12/13(木) 01:39:26 ID:oHtWeYhI
1371:2007/12/13(木) 07:33:43 ID:xfGpgGHW
そのうち画像を表示に切り替えるかも知れないと思いDrawStringDQを使ってました。
実はWCharって言うのがよくわからないんですよね…
使わなくても問題ないなら全角はChar二つ分でやりたいと思います。
あ、でも練習のためにも使っていたほうがいいのか。
勉強してこよう。。。。

フォントの画像は8x8でつくり
自分で拡張したDrawGraphWで二倍に引き伸ばして使う予定です。
Vistaに関しては。。。。 シラネ。

敵選択で倒したグループが非表示になりました。
経験値をゴールドが取得できるようになりました。
でもレベルはあがりません。

職業関連を実装しようと思ったら、パーティのグラが消えちゃいました。
Jobクラスにグラフィックを実装しようと思ってます。

tp://sakuratan.ddo.jp/uploader/source/date62614.lzh

138名前は開発中のものです。:2007/12/13(木) 09:30:11 ID:nRgEBkW0
マルチバイトのほうが面倒だと思うんだが
最近のwindowsだと標準じゃないし。
139名前は開発中のものです。:2007/12/13(木) 13:35:23 ID:6EdETOic
TCHARで切り替えられる作り方をするのが普通
140名前は開発中のものです。:2007/12/13(木) 16:40:58 ID:wG78UTwH
そうだな
俺もTCHARをお勧めする
Borlandにもちゃんとtchar.hあるじゃないか
141名前は開発中のものです。:2007/12/13(木) 16:49:11 ID:wG78UTwH
といっても全角使うのは明らかなんだからWCHARでいいか
とにかくchar2個とかはやめといた方がいい
時代の流れなんだから勉強しておいて損はない
142名前は開発中のものです。:2007/12/13(木) 17:30:26 ID:c4nhYvvc
従来の方法を学ぶのも大事。
とりあえず今回はchar[2]でいこか
143名前は開発中のものです。:2007/12/13(木) 19:17:40 ID:BdT1avie
マルチバイトが従来の方法(笑)
144名前は開発中のものです。:2007/12/13(木) 19:50:19 ID:AkmNVLfQ
>>142
>>1乙。それぐらい面倒くさがらずにやれよwwww
てめぇみたいなクズの公開オナニー見てもらえてるだけありがたいと思え。
わかったら黙って言うこと聞いて動けボケが
145名前は開発中のものです。:2007/12/13(木) 20:05:44 ID:qfpSXaMi
いや初心者らしいからそれはないだろw
どう考えてもUNICODE使う方が簡単に書けるし
146:2007/12/13(木) 22:54:41 ID:xfGpgGHW
tcharとwcharについて調べてみました。
Unicodeに対応することを考えるとWCharよりはtcharのほうがいいんですね。
でもUnicodeに対応させる、っていうのがどういうことなのかいまいち分かってなかったりします。
UnicodeってUTF-8とかSJISとか文字コードの一種?…じゃないですよね?
string型から直接一文字ずつ取り出せればChar型自体を使わなくて済むような気もするんですが
そんなに単純じゃないのかな?

文字の画像データ化に関しては
文字の色を変更する必要があるためだめそうです。
ビットマップフォントを作ったほうがきれいに表示されそうなんですが
それを作る方法を探してる途中です。

とりあえずLvUPするようになりました。
Lvが上がった時にExpTable.csvから必要経験値を引っ張ってくるようにしました。
でもLvがあがっても強くなりません。

tp://sakuratan.ddo.jp/uploader/source/date62745.lzh
147名前は開発中のものです。:2007/12/13(木) 23:33:02 ID:PIfEmrrG
まーstringが使えるならそれで良いかもね。
148名前は開発中のものです。:2007/12/14(金) 00:58:40 ID:zCqlLrTu
必要経験値って公式で出ないのかな
149名前は開発中のものです。:2007/12/14(金) 01:01:14 ID:6SckcvZt
>>146
×tchar
○TCHAR
×Char
○char

wchar_tをwcharと書くのは別にいいけど…
TCHARはマクロだから全て大文字、charはプリミティブだから全て小文字になってる。
意味を大きく変えるような俺表記は控えるべき。

ソースの一貫性の無さをレスに滲ませてしまうと
レビューしてくれる人が減るよ
150名前は開発中のものです。:2007/12/14(金) 01:47:46 ID:0FCOwon9
>>149
たしかに、マにあるまじき行為ですた。以後気をつけます。。。Orz

経験値の公式… DQ3はあるらしいけど、詳しくは知らない。他のはまったく知らない。
確かに必要経験値とか自分で決めるのかなり面倒くさいかも。

151名前は開発中のものです。:2007/12/14(金) 09:18:05 ID:zCqlLrTu
テキトーに増加率決めて毎回かけてやれば勝手にインフレするんじゃないかな
152名前は開発中のものです。:2007/12/14(金) 11:14:06 ID:RH7bHxg6
lv = 1 + floor(sqrt(sqrt(exp * 2)));

とか
153名前は開発中のものです。:2007/12/14(金) 11:38:29 ID:OjqwAalp
string使うにしてもwstringがあるよ
154名前は開発中のものです。:2007/12/14(金) 13:43:31 ID:nzb/etqw
ひらがなしか使わないなら
ka = か
とかしてワイド文字使わなくてもいいんじゃないの。2バイトで同じだし
155名前は開発中のものです。:2007/12/14(金) 14:09:47 ID:kCvfmPHq
初心者自慢大会開催ですか?
156名前は開発中のものです。:2007/12/14(金) 23:11:45 ID:PVHuBi0D
ところで>>1の素材って使ってもいいの?
157名前は開発中のものです。:2007/12/15(土) 06:07:38 ID:bFTHAKDO
おまえら>>1を妬み過ぎw
1581:2007/12/16(日) 00:08:59 ID:ErKldHRa
wstringなんてものまであるんですか…。
Cってcharとの戦いなんだなぁ…。
あとカタカナは使います。
メラゾーマ が めらぞーま になってしまう。
経験値のアレはまだ直してないんですが
レベルアップした時にステータスが伸びるようになりました。
それを確認するための画面もつくりました。
つよさ>つよさをみる>
で確認できます。

ドラクエって実装しなきゃいけないコマンドの数がかなり多い気がします。
全部実装することを考えたら気が遠くなってきました。

バトルからフィールドの開発に戻ってきたら、最初の頃のやり方と、今のやり方がかなり違うことに気がつきました。
今のほうが分りやすいソースをかける気がしますが、一貫性がないのはまずいですね。
次は道具を追加したいですね。

tp://sakuratan.ddo.jp/uploader/source/date62942.lzh
159名前は開発中のものです。:2007/12/16(日) 01:42:40 ID:3vNRwpYs
俺も造ってみようと思ったけどVCしか持ってないんだよね
160名前は開発中のものです。:2007/12/16(日) 10:55:45 ID:XAAKi2bo
オレはvcで作ってる
161名前は開発中のものです。:2007/12/16(日) 10:57:24 ID:XAAKi2bo
まちがた。c#
162名前は開発中のものです。:2007/12/16(日) 11:23:18 ID:en60zWi1
ファミコンレベルならハードウェア性能が今と段違いだから好きな言語でいいさね
携帯Javaでドラクエが作られる時代なんだし
163裕釐:2007/12/16(日) 12:46:38 ID:QZxSJZzR
モンスターと遭遇すると
 Gamedata/MonsterData/.bmpのモンスターのグラフィックがよみこめてませんが?
  ↓
 サイズの表記が間違っています
とエラーmsgがでるんだが。
Gamedata/MonsterDataには「.bmp」なんてファイルなかったんで とりあえずファイルを置いたら
 サイズの(略
が永遠とでてくる。
164名前は開発中のものです。:2007/12/16(日) 15:20:09 ID:PiXzjAgu
ソース見たがベタ書きし杉だろ
165名前は開発中のものです。:2007/12/16(日) 15:35:46 ID:EnxQUxiD
C++でFCのドラクエっぽいRPGを作るための上手な書き方について考察するスレになりましたよみなさんだいじょうぶですか?
166名前は開発中のものです。:2007/12/16(日) 16:03:55 ID:DoKPbT8s
某ランド使いのコードが汚いのは定説
1671:2007/12/16(日) 16:09:32 ID:ErKldHRa
>>165
おk
>>164 >>166
ソース書いてるときに理性が飛ぶ瞬間があって、冷静になって見直すと手がつけられない状態だったりします。
関数の行数が多すぎとか、引数が長すぎて見づらいとか。
エディターの所為にして逃げてもよい?(責任転嫁
>>163
もしかして、海で敵と戦うときにそのメッセージがでませんか?
海のモンスターは未設定だったので、グラフィックもモンスターのパラメータも用意してないので、エラーになります。
エラーならエラーで、ちゃんとError関数を使うべきでした。 Orz
海でしびれくらげが出るようにしました。(色が変なのは勘弁してください。

tp://sakuratan.ddo.jp/uploader/source/date63003.lzh
168名前は開発中のものです。:2007/12/16(日) 20:25:32 ID:Ty2sbBpB
>>167
今後のためにも一度キレイにしたほうがいいよ、
キミのスキルが上がってドンドン規模が大きくなった時に、
過去に作った基底クラスの改修のリスクが大きくなる。
169名前は開発中のものです。:2007/12/17(月) 00:17:39 ID:5U7KFETp
>>1の才能に嫉妬
170名前は開発中のものです。:2007/12/18(火) 14:29:15 ID:k2BEnLXI
>>169
>>1自演乙

この程度カスでも作れるからw
初心者が一生懸命やってると思って暖かく見守ってやってんだから調子に乗るなよ
171名前は開発中のものです。:2007/12/18(火) 16:12:05 ID:u7lRE18e
>170
zipでくれ
172名前は開発中のものです。:2007/12/18(火) 18:36:06 ID:2np8Lr6Q
>>170
こっちにもいんのかよw
単に作ってる奴叩きたいだけか?
173名前は開発中のものです。:2007/12/19(水) 13:33:05 ID:bDHcUzyc
ドラクエフォントを手に入れたが、どうやって使えばいいのかわかりません
174名前は開発中のものです。:2007/12/19(水) 14:20:48 ID:Pj6CyBbs
いちはとうぼうした
175名前は開発中のものです。:2007/12/19(水) 14:55:35 ID:F/n53iWq
>>1の技量であのコードをリファクタリングするんだもの
そりゃ時間かかるさ
176名前は開発中のものです。:2007/12/19(水) 15:48:07 ID:wxkJalN4
いちはメモリリークをたおした!
けいけんち4ポイントかくとく!
3ゴールドをてにいれた!
177名前は開発中のものです。:2007/12/19(水) 16:05:30 ID:qljgkazn
ソースを公開するからチンカスが住み着く
もうソースは出さん方がいいんじゃね
178名前は開発中のものです。:2007/12/19(水) 16:37:07 ID:Rgtwr7BZ
sambaやapacheのソース見て綺麗だと思う奴はいないが
世界中で役に立っている。それでいいじゃないか。
179名前は開発中のものです。:2007/12/19(水) 16:46:25 ID:K1qNY7pS
>>177
禿同だな

貶される程のコードならオープンにしても役にたつとは思えないしな
現にオープンソースにして>>1に何のメリットがあった?
基地外に煽られてるだけだろww
180名前は開発中のものです。:2007/12/19(水) 17:27:15 ID:WU61vHzY
日本語でおk
181名前は開発中のものです。:2007/12/19(水) 17:49:51 ID:UFtlHy+Q
別にソースを出さないといけないってワケでもないだろうし、
1に得るものがなければ、ソース無しで構わないでしょ。
見やすいコードを書かせようと必死になってる奴が
いるみたいだけど、ハッキリ言って流用されて乙なだけですよw
182名前は開発中のものです。:2007/12/19(水) 17:55:16 ID:G/oyIi8C
>>181そんなヤツいないだろwww
流用って、普通にフリーでオープンソースなRPGなんていくらでもあるし
そういうのは、多くの人の手がはいってるから結構なにげに凄い処理とかをさらっと描いてたりする。
>>1のがんばりは認めるけど、やっぱりまだまだ駆け出しだしねぇ・・・


正直、わざわざ>>1のソースをどうにかして使おう!!とか思ってるヤツは、(居ると仮定すればだが)
どう頑張っても、そいつは流用できるLvに達してないと思うが。
183名前は開発中のものです。:2007/12/19(水) 18:00:41 ID:WU61vHzY
1より下の奴が参考になるならそれはそれでやらしとけばおk
上の奴はスルーしとくか自分がソースだせばおk

どっちにしろ>>1の人気に嫉妬
184名前は開発中のものです。:2007/12/19(水) 18:12:21 ID:UFtlHy+Q
>>1
これで分かっただろ?w
なんだかんだ文句を言いつつソースを出してほしくてもう必死

あとは>>181ね。
185名前は開発中のものです。:2007/12/19(水) 18:29:45 ID:EcJVxUlm
2chなんて口だけのチンカスの集まりだからな
186名前は開発中のものです。:2007/12/19(水) 18:31:39 ID:gSqu12Dg
http://ossan.fam.cx/up/gazo/src/1198056595625.gif

ドラクエ5,6のフォントは、これだな。
187名前は開発中のものです。:2007/12/19(水) 21:08:33 ID:dUxlLljR
ここって1以外が作品出してもいいの?
188名前は開発中のものです。:2007/12/19(水) 21:16:55 ID:cCY2VP4H
パソを買おうとおもう高校生なんですが、最近のRPGツクールでどれくらいきれいな画面つくれるのか教えてください
189名前は開発中のものです。:2007/12/19(水) 21:19:24 ID:EcJVxUlm
お。早くも>1のパクリ作品がうpされるのかな ワクワク
190名前は開発中のものです。:2007/12/19(水) 21:54:24 ID:Mguefe/2
パクられると騒ぐ奴はC++でプログラム組んだこと無い奴だな。
三日前の自分は他人って言葉も知らないんだろう。

そもそも素人の設計じゃいくら可読性をあげても他人が再利用なんて非現実的。
>>1がうらやましいなら勉強しろ。
191名前は開発中のものです。:2007/12/19(水) 22:08:25 ID:qtVSPlwl
いきなり素人が素人煽りだしたけどなんで?
192名前は開発中のものです。:2007/12/19(水) 22:12:00 ID:Mr+WVqhZ
193名前は開発中のものです。:2007/12/19(水) 22:21:05 ID:k6t6Eu11
おまいらスレタイと>>1をちゃんと読んだのか?
194名前は開発中のものです。:2007/12/19(水) 23:37:31 ID:mTRZ4/8Q
知恵を貸してください、ってんだからソース出しとくのはいいんじゃね?
それで叩かれるのがイヤだって言われると困るけど、
叩くな言ってるのは他人なんだろ?
本人はけっこう素直に聞く耳持ってがんばってるようじゃないか。
ここは温かい目で、叩いてやれよ。

オレはミジンコだから、>>1のソースが解読できないけどさ。


ところで。ウィンドウの×押しで正常終了できないプログラムって嫌いなんだが。。。
1951:2007/12/20(木) 00:01:13 ID:jkXoOCi4
ちょっとスレが伸びてると思ったら、なんだかお騒がせして申し訳ないです。
今までぐっちゃぐっちゃだったソースを、ぐちゃ、位のソースにしようと悪戦苦闘で、アップできる状態じゃないです。
これからもソースと一緒に出すつもりでいます。
叩かれるのは100も承知です。
99は「ソース汚い」だけの無意味な叩きでも
1つは「ここがこう汚いからこうすべき」というアドバイスがもらえるかも知れませんし。

それからもし再利用したいという奇特な方がいらっしゃれば、どうぞ使ってやってください。(画像データ以外の話ですが
どのみち完成したらFCドラクエもどきツクールとしてオープンソースで配布するつもりなので。(ツクールも作成予定
ま、汚いソースをがんばって読んで再利用しようとするより、一から作ったほうが早いと思いますが。

あと、ここでソース公開したいっていう人はぜひ公開してください。
あんまり人のソースを読んだことがないので、人のソースを読む練習にもなるし。
でも、当然流用されることを前提の上でお願いします。
196名前は開発中のものです。:2007/12/20(木) 00:17:31 ID:55uWllby
別に汚くなんかないよ
197名前は開発中のものです。:2007/12/20(木) 00:40:35 ID:c2k1kUtz
他のスレでも制作者叩いてる奴だから気にするな
198名前は開発中のものです。:2007/12/20(木) 14:49:58 ID:E0vkwHlc
とにかく、1頑張れ。叩かれてもいいじゃないかぁ
199名前は開発中のものです。:2007/12/20(木) 15:00:36 ID:BoVdQ1SP
よくわからないけど>>1はホモに好かれるタイプ
現におれが>>1のこと好きだもん
200名前は開発中のものです。:2007/12/20(木) 21:08:01 ID:hPf6ENX3
なんというウホスレ
201名前は開発中のものです。:2007/12/20(木) 22:38:17 ID:tLt8cR7R
1は女性かもしれないぞ!
202名前は開発中のものです。:2007/12/21(金) 08:09:06 ID:JJIaTGjL
>>201you′re the dreamer
203名前は開発中のものです。:2007/12/21(金) 11:59:28 ID:CIW9ZWZn
>>1
前途多難かもしれませんが頑張ってください。
自分は挫折した。
夢の続きをあなたが担ってください。
応援してます。
204名前は開発中のものです。:2007/12/21(金) 15:15:47 ID:qNfTgitS
>>1
俺も能無しのうんこだから挫折した。
改造してパクるくらいしかできそうにないから早く完成させてくれ。
利用するだけ利用させてもらいます。
205名前は開発中のものです。:2007/12/21(金) 22:40:13 ID:+ezETTlV
パクってでも完成させられるなら、それはそれでいい腕だと思うがな。
少なくとも同じようなものを作れるだけの力量がないと、他人のソース読むなんて無理。

ドラクエとは関係ないが、俺もやろうとしたことあるからよくわかる。
206名前は開発中のものです。:2007/12/21(金) 22:45:03 ID:sZQMdwXf
自分で作れないうちは切り貼りでもなんか失敗するもんだしね
207名前は開発中のものです。:2007/12/21(金) 23:20:35 ID:pcz7fB4f
どれだけ無知なんだよw
208名前は開発中のものです。:2007/12/21(金) 23:35:41 ID:nR6ECJXi
ソース丸々コピればいいんじゃないの?
209名前は開発中のものです。:2007/12/22(土) 01:36:50 ID:NqisS1wp
無知じゃない奴ならいくらでもパクれるだろうが、
そんな奴はパクっても、自分が楽をするくらいの意味しかないだろ。

>>208
ソース丸々コピーしても、
その後どこを動かせばどうなるのかがきちんと分かってないと、
結局自分のしたいようにはできないんだよな。
210名前は開発中のものです。:2007/12/22(土) 01:55:30 ID:wzivk57h
俺はパクるからどうでもいいよ
2111:2007/12/22(土) 16:57:59 ID:GupsOJNk
プログラムって再利用の積み重ねで成り立っているものだと思ってました。
どこまでが再利用でどこまでがぱくりかの線引きは人それぞれなんでしょうが。
自分で書いたものを他人が、「俺が書いたんだぜー」見たいにいわれるとさすがにそれは違うだろ、と思いますが
でも、ソースを公開している以上、利用者の良識にまかせるしかないですよね。

直りきってない状態ですが、とりあえずUpします。
エンカウント時に生成されていないモンスターが現れるバグがあります。
名前が初期化時の【ななし】になっていてsizeが【0】だから多分。
原因は不明です。

あと敵がいくら殴っても倒れません。
ダメージ量が想定しているより少ないです。

ダメージが思うように出ない問題解決のために、ステータス表示ウインドウを作ってみます。

tp://sakuratan.ddo.jp/uploader/source/date63666.lzh
212名前は開発中のものです。:2007/12/22(土) 18:06:58 ID:RJx1d8cq
色々弄ったらVC2005でもコンパイルできた
213名前は開発中のものです。:2007/12/22(土) 22:13:12 ID:76aqh1yL
DirectXつかわないのでもOK?
214名前は開発中のものです。:2007/12/22(土) 23:42:56 ID:dee/YD/W
この掲示板における悪辣ないわゆる「叩き」による
ゲーム開発の業務妨害行為(刑233/234)に対する
情報提供をお待ちしております
有料で販売していたソフトを公開中止に追い込まれました
現在も無料ですが広告収入を得ており業務は継続し
民事上の損害額は発生していると考えています
よろしくお願いします
http://darkhouse.milan.jp/
[email protected]
215:2007/12/22(土) 23:50:21 ID:jgGcqNY9
叩きたくて必死で己の低脳丸出しな書き込みに気づいてないのかなw
216名前は開発中のものです。:2007/12/22(土) 23:59:13 ID:dee/YD/W
>>215
それは具体的にどういうことですか?
217:2007/12/23(日) 03:15:11 ID:YeyPpYCN
>>212
多分、VC用のDXライブラリに入れ替えるだけで大丈夫だと思います。
もしダメだったら、ここをこうしないとダメだよ、等のアドバイスがあるとかなり嬉しいです。

>>213
全然おkです。

>>211 のバグはなんとか直ったみたいです。
モンスターが倒れないのは、勇者一行をロードする時に攻撃力、守備力がちゃんと設定できてなかったからでした。
ななしがでるのは、モンスターのグループの数を設定し、
モンスターの総数を決定した時にサイズオーバーでグループごと切り捨てた時に起こるバグでした。

ステータスの詳細が見れるウインドウを追加しました。
モンスターがダメージを受けたときに点滅します。
モンスターを倒した時のグラが消えるタイミングを修正しました。
ダメージを受けた時のメッセージを 味方だと うけた! 敵だと あたえた!になる様になりました。

あと戦闘後のResult画面とパーティアタックを実装すれば修正作業完了です。
途方にくれていた修正作業が年内におわりそうでよかった。

tp://sakuratan.ddo.jp/uploader/source/date63747.lzh
218名前は開発中のものです。:2007/12/23(日) 11:05:23 ID:1h86Cx8E
eclipse+gcc(cygwin)でビルドしようとしたらだめだった。

とりあえず、itoaは処理系依存のようなので、
char * itoa(int number,char *s,int figure){
if(figure != 10){
msgBox(std::String("itoaの引数違反"));
return NULL;
}
sprintf(s,"%d",number);
}
の関数で代用。
219名前は開発中のものです。:2007/12/23(日) 11:06:03 ID:1h86Cx8E
続き。

問題はconst。
constオブジェクトからはconst以外のメンバ関数の呼び出しはエラー
になるし、当然、const関数ではメンバ変数への代入がエラーになる。
具体的に、
MetaStatus * Job::getGrowth(void)
をconst Jobから呼ぼうとすると、
const MetaStatus * Job::getGrowth(void) const
にする必要があり、この戻り値はjobのメンバ変数で、
この関数ではそのメンバ変数に代入して返そうとするのでエラー。
参照渡しにして、
void Job::getGrowth(MetaStatus &metaStatus) const{
metaStatus.setSTR(GetRand(status.getSTR()));
metaStatus.setCON(GetRand(status.getCON()));
metaStatus.setDEX(GetRand(status.getDEX()));
metaStatus.setINT(GetRand(status.getINT()));
metaStatus.setLUC(GetRand(status.getLUC()));
}
呼び出し側で、
MetaStatus growth;
party->getMember(i)->getJob()->getGrowth(growth);
とするとOK。
長くなったけど、まだ他にもたくさんconst関連のエラーが出てる。
あとは>1が自分でやってちょ。
220:2007/12/23(日) 12:06:32 ID:YeyPpYCN
>>218
itoaって処理系によっては使えなかったんですか…。
てっきりANSI Cとかで定められてると思ってますた Orz
ここまでやってきて実はsprintf関数の存在を知らなかったりします。
実はずっとあればいいのに、って思っていた関数だったので感謝。

>>219
constに関しては意味を勘違いしていました。
警告はでてたけど、無視してました。
const MonsterParty * mp = *((MonsterParty **)valuable)
とかやってステートメントが長くなって括弧が多くなって読解不能になるのを回避するべく
マクロみたいに、コンパイル時に置き換えられるのかとばっかり思っていて
そうじゃなかったらしいことは うすうす気がついていたんですが、気づかない振りをしてしまいました。
ま、動くならいいか、と。

参照渡しについては要勉強ですね Orz
まだconst関係のエラーを直していない、リザルト画面追加Ver
tp://sakuratan.ddo.jp/uploader/source/date63778.lzh
221名前は開発中のものです。:2007/12/23(日) 12:43:02 ID:91qXaWQF
>>217
入れ替える他適当にプロジェクトの設定を変えないと駄目だったけど、
それはVC固有の問題なので置いておくとして

class foo {
void func() {}
};

const foo f;
f.func(); // <- error

主にget***()のような函数でこういうのが問題になってたかな
get***のような函数では恐らくメンバの値を変更しないのでconstつけた方がいいかも
222名前は開発中のものです。:2007/12/23(日) 12:43:33 ID:91qXaWQF
被った・・・
223:2007/12/23(日) 13:11:26 ID:YeyPpYCN
const の問題を解決しました。
MetaCmdでconstメンバ変数をただの変数に変えただけ。
本来は全部手打ちする奴を手抜きするための変数だったからと思って。

でも単に値を返すためのget**()は全てconstをつけるべきですよね。
ただ、ポインタを返すget*()はconstにしちゃうとダメ。
getMember(i)->setHP(100);
みたいな使い方をして、メンバ変数を変更したいから。

メモリの効率的な使い方が分らないので、
とりあえず、と思ってなるだけクラスを作るのを避けてきたんですが、
(そのためにデコンストラクタが呼ばれた時にメッセージがでる);
そういうのもあんまりよくないんだろうなぁ…

tp://sakuratan.ddo.jp/uploader/source/date63785.lzh
224名前は開発中のものです。:2007/12/23(日) 16:23:12 ID:puPpIEyb
そもそもDXライブラリはcygwinでの利用を想定していない
225名前は開発中のものです。:2007/12/23(日) 19:29:09 ID:1h86Cx8E
>>224
というわけで、VC6でビルドしてみた。
VCでビルドするにはいくつか注意が必要。
まず、forループのintの再定義でエラーが出るので、
プロジェクトのプリプロセッサの定義に
for="if (false) ; else for"
を入れる。これでエラーが出なくなる。
226名前は開発中のものです。:2007/12/23(日) 19:29:51 ID:1h86Cx8E
続き
DxLibはサイトからVC用の2.24をダウンロードしてくる。
次に、これは俺の環境でだけかもしれんが、DxLibのバージョンのせいか
(2.24使用)ウインドウ化してからDxLibを初期化するとうまく動かない。
ので、
ChangeWindowMode(TRUE); //ウインドウモードで起動
SetGraphMode(512,480,16) ; //ファミコンの画面サイズの二倍
この二行を、
if( DxLib_Init() == -1 ){
Error("DXライブラリの初期化に失敗しました。");
return -1;
}
のあとに持ってくる。
227名前は開発中のものです。:2007/12/23(日) 19:30:19 ID:1h86Cx8E
さらに続き
さらに、このプログラムでは、読み込むセーブデータの形式が
デバッグモードの場合csvで、そうじゃない場合savとなっているが、
VCではデバッグ用の定義がDEBUGではなく、_DEBUGなせいで
セーブデータが読み込めない。
OpeningCommands::openSaveData
OpeningCommands::getFileAmount
の中の、
#ifdef DEBUG

#ifdef _DEBUG
にする。

とりあえずこれで動いた。
228名前は開発中のものです。:2007/12/23(日) 19:34:20 ID:1h86Cx8E
で、だ。
敵とエンカウントしたら、落ちた。
MsgCmd::Draw()の中に
msgRecord[lineIndex] += c;
とあるが、
lineIndexが初期化されていない(-52が入ってた)ので
コンストラクタでlineIndex=0とやったら落ちなくなった。
229名前は開発中のものです。:2007/12/23(日) 19:44:05 ID:tnd2Kzyl
VC2005で開く方法はわかります?
230名前は開発中のものです。:2007/12/23(日) 21:04:00 ID:jakAnU/i
なんだかんだ言いつつパクり候補だらけで吹いたw
231名前は開発中のものです。:2007/12/24(月) 02:26:02 ID:sxR7bqmX
古代イスラエルのペテン乞食の誕生日を祝う義理なんかないね。
232名前は開発中のものです。:2007/12/24(月) 04:20:15 ID:Qqp4Qc85
いつもzipでupしてて大変そうな>>1
openSVNでググってみ

upの手間解消以外にもいいことあるから
233名前は開発中のものです。:2007/12/24(月) 12:25:44 ID:W6Vnta1P
sourceforge以外にもこんなのがあったのか
しかもtracつきとは…
至れり尽くせりですな
234名前は開発中のものです。:2007/12/24(月) 13:28:12 ID:tyHiXGGL
>>232
なにこのオレオレ証明書
怖くてアクセスできません
235名前は開発中のものです。:2007/12/24(月) 13:52:28 ID:Qqp4Qc85
>>234
>>1のアーカイブ内に盗聴されてマズイものなんか明らかに含まれてないわけで。

そもそもソースが公開されてるわけだし。
何を怖がるの?
236名前は開発中のものです。:2007/12/24(月) 13:59:49 ID:QMo/K7QW
2ch的には、zipでくれ
でOK
237名前は開発中のものです。:2007/12/24(月) 14:02:37 ID:tyHiXGGL
>>235
>>1がオレオレ証明書の危険性とリスクを正しく理解して使うかどうか分からないので、
あえて警鐘を鳴らしてみただけ。
238名前は開発中のものです。:2007/12/24(月) 14:11:31 ID:Qqp4Qc85
>危険性とリスク
背伸びしてることはよくわかった
239名前は開発中のものです。:2007/12/24(月) 14:25:18 ID:tyHiXGGL
>>238
善意でいい場所教えてたところに水をさして悪かったね。
240名前は開発中のものです。:2007/12/24(月) 14:34:02 ID:mDb7ohkP
オープンソースコミュニティから認証されていれば
俺俺証明書といえどもそこらの企業が発行するよりよほど信用に値する。
241名前は開発中のものです。:2007/12/24(月) 14:56:27 ID:VZkDqfyR
ID:Qqp4Qc85
これがゆとりか・・・あはっ
242名前は開発中のものです。:2007/12/24(月) 15:41:17 ID:GMWXNbta
オペラだと証明書の警告出るからビビる事がある
243名前は開発中のものです。:2007/12/24(月) 15:42:27 ID:kLIOmkDP
cygwinってitoaは駄目なのか…。へー。

17時間かけて書いたソースを一瞬で17時間前の状態に戻してしまい、即svnを導入した俺が来ましたよ。
244名前は開発中のものです。:2007/12/24(月) 15:45:19 ID:GMWXNbta
TortoiseSVNが素晴らしすぎです
245名前は開発中のものです。:2007/12/24(月) 16:15:18 ID:jsxGAw5D
VSSでいいや
2461:2007/12/24(月) 16:35:47 ID:dQ2B5wP/
とりあえずなんか証明書が出たのはびびりましたw
オレオレ証明書って、そういう意味か。ちょっと吹いた。

とりあえず登録はしてみたものの、英語が得意ではないので、使い方がわかんない。
日本語で解説してくれるところも見つからないし
うpロダを使うよりもどういう風に良くなるのかさっぱりなんですが、
とりあえず使ってみよう、と思った次第です。

っていうか そもそもSVNってなんだ?ってレベルなので Orz
いろいろ勉強になるなぁ。。。
初心者ながらにスレ立ててよかったよ。
おまいら 本当にありがとう。
247名前は開発中のものです。:2007/12/24(月) 19:18:12 ID:eeQyTJgH
俺もあんまり詳しくないけどCVSとかSubversionとかでググって見ると良いかも
要するにソースを差分更新できるって奴じゃないかな。
で、バージョン戻したりとかブランチ切ったりする時に管理が楽になるんだと思う。

なんか勘違いしてたらごめん。
248名前は開発中のものです。:2007/12/24(月) 22:15:23 ID:vSGEO8zs
で、VC2005での開き方おね
249名前は開発中のものです。:2007/12/25(火) 01:26:04 ID:EFT5OR5C
おねがいします
250名前は開発中のものです。:2007/12/25(火) 07:21:53 ID:3AGd3eRU
空のプロジェクト作って、その中にインポートすればいいんじゃない?
試してないけど。


バックアップということを考えて、ローカルにsvn環境入れるのが吉。
251名前は開発中のものです。:2007/12/25(火) 09:04:51 ID:bD/x789M
無能が必死になっててワラタw
252名前は開発中のものです。:2007/12/25(火) 09:28:03 ID:3AGd3eRU
http://homepage2.nifty.com/natupaji/DxLib/DxLib_VC2_24.exe
ここからVC用のを落として、 >>1のソースフォルダ中に上書き。
空のプロジェクト作って、プロジェクトフォルダに>>1の中に入ってるファイルをコピー。
最後に既存項目の追加。


でもGetColorなんちゃらが未定義だってエラーが出る。
何のこっちゃ。
253名前は開発中のものです。:2007/12/25(火) 09:33:38 ID:/Ih03gre
VCでコンパイルするには
DxLib.hの#define DX_USE_VISUALC_MEM_DEBUGのコメントを解除した上で
その周辺に書いてあるようにランタイムライブラリをスタティック(/MT,/MTd)にする
254名前は開発中のものです。:2007/12/25(火) 09:58:55 ID:3AGd3eRU
>>253
そうだった忘れてたorz


コンソールアプリケーションにしちゃってたwww
なんかもうね…。
255名前は開発中のものです。:2007/12/25(火) 10:21:58 ID:3AGd3eRU
win32で作り直してみたらビルドできた。わーい。


でもキーが反応しねぇ…。
最初の画面から先に進まねぇぞ。
256名前は開発中のものです。:2007/12/25(火) 10:25:27 ID:3AGd3eRU
>>225
>>226
>>227
>>228
をやってみた。

めんどくせぇwwww
257名前は開発中のものです。:2007/12/25(火) 10:45:33 ID:yp96yKtz
なんだこの無能集団はw
ソース晒すと乞食が集まってくるのな
258名前は開発中のものです。:2007/12/25(火) 11:55:44 ID:EFT5OR5C
ありがとう 開けた
しかしC++って本当にコード量多いんだな
別にVBでRPGを作って、今も拡張してるんだが
その3倍はあるわ
259名前は開発中のものです。:2007/12/25(火) 11:57:43 ID:EFT5OR5C
ちょ;しかもよく見ると未実装部分が多いな〜〜
動かんはずだわ;;
260名前は開発中のものです。:2007/12/25(火) 12:55:54 ID:QQlPLUh8
ATLかCLR使ったのでもOK?
261名前は開発中のものです。:2007/12/25(火) 15:01:31 ID:cauaNc1L
C++ってライブラリ面倒だよねぇ。
JavaでドラクエっぽいRPGつくってる俺は勝ち組w
ビットマップもサウンドもスレッドまで「標準」装備だから、楽だよ。

一度書けば、WindowsにMac、Linuxはもちろんちょっと書き変えて携帯でも動かせるしね。
262名前は開発中のものです。:2007/12/25(火) 15:13:58 ID:/Ih03gre
最近見たアクションゲームのコードはC++で3600行弱
それをほとんど分割せずに一つのファイルに書いてた
管理できる作者が凄いと思った
263名前は開発中のものです。:2007/12/25(火) 15:14:09 ID:iHzefklh
多様性というか宗教がね
264名前は開発中のものです。:2007/12/25(火) 15:24:50 ID:EFT5OR5C
今、手持ちのVB製RPGのコードを数えてみたが
システム部が530行しかないぞ?
Win標準のコントロールは多用してるが・・
265名前は開発中のものです。:2007/12/25(火) 17:44:19 ID:HsCI0IW/
そもそもC++とかwindows以外日陰言語じゃね?
266:2007/12/25(火) 19:00:35 ID:y+e7ShHG
いろいろお騒がせしてすみません。
>>255
最初の画面で なにかぼたんをおしてください と出てますが
反応するのはじつは【X】だけです。
ちゃんとわかるように修正しました。ごめんなさい。

>>225-
>>225
 プリプロセッサが良くわかんないので、ごめんなさい。
>>226
 僕がコンパイルしたやつが上手く起動できるか教えていただけますか?
 Init()の前に書くと、最大で表示されてから、ウインドウに戻るのがなんかかっこ悪くて、もたつくので避けたいです。
>>227
 定数を設定しているconst.hに
#ifdef _DEBUG //VCのDEBUG定義用
#define DEBUG
#endif
 と追加してみました。 これで多分動くと思います。
>>228
直しました。リファクタリングが完璧じゃなかったですね。ほんとごめんなさい。

225さん、マジ感謝です。
2671 続き:2007/12/25(火) 19:01:04 ID:y+e7ShHG

>>229
 ごめんなさい、わかりません。

>>232
 openSVNは英語でさっぱり分かりませんでした。
 使い方が理解できるようになるまでは今までどおりでいくのでお願いします。

>>258-
ソースが長いのは僕の力量不足が原因だと思います。
初心者なんであんまり激しく叩かないでね(はぁと


MsgBox::lineIndex が初期化されていなかったバグを修正しました。
パーティアタックができるようになりました。
戦闘のコマンドのカーソル位置が前回の位置のままだったのを、常に一番上になるように修正しました。
フィールドのコマンドで、何を選んでも一応反応はするようになりました。
「しらべる」を実装しました。
なんちゃってスクリプトにGetItemを実装。でも、持ちきれなかった時の処理はまだやってません。

ちゃんと何を持っているかを表示して、選択して使えるようにしたいです。
tp://sakuratan.ddo.jp/uploader/source/date64082.lzh
268名前は開発中のものです。:2007/12/25(火) 22:07:35 ID:YDMhjtcq
>>262
まぁ、3600ぐらいなら稀にいるよなwww
保守なんかでぶち当たると、担当者をおもいっくそぶん殴りたくなるけど。
269名前は開発中のものです。:2007/12/25(火) 23:06:27 ID:a/8xYA/E
ワシのコードは20000行まであるぞ

移動手段は主にCTRL+F。
270名前は開発中のものです。:2007/12/25(火) 23:20:42 ID:ag668EB8
イタリアンなスレでした。ごちそうさま。
271:2007/12/26(水) 02:57:21 ID:1u83AD+Q
>>270
関係ないけど、僕チーズ苦手なんだ。
今、克服しようとがんばってるんだけど、なにかいい克服方法ないかな?


戦闘中に表示されるメッセージがとりあえず変になる不具合を修正しました。
アイテムコマンドが開けて、アイテムを捨てられるようになりました。
【つかう】と【わたす】も一応開いて、相手を選べるけど何もおこりません。

はやく使えるようにして、あと そうびもできるようにしたいなぁ…
tp://sakuratan.ddo.jp/uploader/source/date64290.lzh
272名前は開発中のものです。:2007/12/26(水) 10:56:47 ID:7EU3RgUI
2000行のRPG(VC++)だと、こんな感じみたい。

http://www.sm.rim.or.jp/~shishido/rpgp.html
273名前は開発中のものです。:2007/12/26(水) 11:17:05 ID:cowMx0h2
おまえらMeiryoKe_Consoleでソース印刷オススメ。
プリンタの設定いじれば2.5ポイントまで小さくしても識別できる。
段組4段くらいで両面印刷すると1MBくらいのソースでもA4用紙数枚に収まるぞ。
2000行どころか20000行あっても余裕
274名前は開発中のものです。:2007/12/26(水) 15:10:48 ID:50qxxoia
>>273
やっぱ印字して管理かぁ
極力分散化して、仕様書なしで開発してるけど、もう限界かな;
275名前は開発中のものです。:2007/12/26(水) 15:46:09 ID:SCmg4E2p
YOzFontOTWLが好き
276255:2007/12/26(水) 21:36:50 ID:U+VPBuDi
>>266
プリプロセッサの定義ってのは、簡単にいうと#defineでの定義ってこと。
_DEBUGとかのね。VisualStudio2002くらい(?)までは、同じスコープにint i
を使ったforループが二個あるとコンパイルエラーになってしまうので、
それを回避するためのマクロをソースコード外で定義してる。
最近のVCを使ってる人は問題なし。

配布されているexeはちゃんと動いてる。
ただ、俺の環境ではそうなっちゃってるんで、自分でビルドしてみたけど
同じ症状が出ちゃってる人は、こうすると、とりあえず動くよって話。

俺もリファクタリングしちゃろうかなと思ったけど、C++じゃEclipse使っても
名前の変更くらいしかできんのでアレだね。
Javaはいいぞ。IDEのリファクタリング機能が充実してるから(C#もらしい)
277名前は開発中のものです。:2007/12/27(木) 18:56:27 ID:niNmKkqY
Windows + EclipseでC++開発ってできるの?
できるなら俺もそうしたいが…。
Cygwin入れないと駄目だYOね…やっぱ…。
278名前は開発中のものです。:2007/12/27(木) 19:25:50 ID:StfaQThG
いや普通に出来たと思ったが。>>Eclipse

でもC++ならVC++かDelphiでいいんじゃね?
VC++もExpress Editionなら唯だし。
279名前は開発中のものです。:2007/12/27(木) 23:34:33 ID:5OqnPp7P
>>269
なんという俺ww
280名前は開発中のものです。:2007/12/27(木) 23:50:02 ID:kJ7Tc5xf
VCEEてどとねとしか作れなくね?
281名前は開発中のものです。:2007/12/27(木) 23:55:21 ID:rPpTSPbm
>>280
お前みたいな素人でもWin32のソフトが作れるようになったから
ダウンロードしてインスコしろ
http://www.microsoft.com/japan/msdn/vstudio/express/

VC2005EEでもちゃんと手順を踏めば作れたが
VC2008EEは勝手にインスコしてくれる
ミクロソフト様に感謝汁
282名前は開発中のものです。:2007/12/28(金) 17:46:11 ID:bBukVEqP
linuxでも動くようにSDLかirrichtでおk
283名前は開発中のものです。:2007/12/28(金) 21:00:05 ID:vFKC9i1/
>>282
釣りか?
突っ込み所満載なんだが
284名前は開発中のものです。:2007/12/29(土) 00:13:30 ID:E8hFcf4X
DXライブラリの画像置き換えとかどうすればいいんでしょうか。
285名前は開発中のものです。:2007/12/29(土) 21:57:12 ID:Wv0RLQJj
ほす
286名前は開発中のものです。:2007/12/30(日) 00:19:42 ID:BeUezp3c
【目指せ】2ch_city【世界一】

■以下のURLを踏めば街が発展する

・人口 http://2chcity.myminicity.com
・工業 http://2chcity.myminicity.com/ind
・交通 http://2chcity.myminicity.com/tra
・治安 http://2chcity.myminicity.com/sec
・環境
・ビジネス

工業以降は人口の増加に比例して選べるようになる

■発展のコツ
単に人口だけを増やしても、街は発展しない!
失業率が増えると人口が減ってしまうので、バランスよく発展させよう

■参照画像
http://www.uploda.org/uporg1178757.jpg
http://www.imgup.org/iup528827.png
http://www.vippers.org/img/uho2118.png

2chの力で世界1位を目指そう(`・ω・´)
287名前は開発中のものです。:2007/12/30(日) 00:49:10 ID:+C5YkyEz
>>286
うぜえな
このコピペあっちこっちで見るし
よっぽど暇なんだな
288名前は開発中のものです。:2007/12/30(日) 00:55:37 ID:xBMBsl4k
つか、xipとか名乗るのが来ている時点で、
このスレにもこんなのが出入りしているんだなぁと幻滅。
289名前は開発中のものです。:2007/12/30(日) 10:19:34 ID:D5MQ9R0C
非2ch民乙
290名前は開発中のものです。:2007/12/30(日) 13:36:17 ID:FTDXJbxl
運営が推せと言ってるわけでもないし
そもそも2ちゃん関係の街がいくつもあるだろ
291名前は開発中のものです。:2007/12/30(日) 13:47:05 ID:bQOjHSJq
2ch発にこだわるバカだろ
292名前は開発中のものです。:2007/12/30(日) 20:57:55 ID:vox8eoxh
【目指せ】2ch_city【世界一】

■以下のURLを踏めば街が発展する

・人口 http://2chcity.myminicity.com
・工業 http://2chcity.myminicity.com/ind
・交通 http://2chcity.myminicity.com/tra
・治安 http://2chcity.myminicity.com/sec
・環境
・ビジネス

工業以降は人口の増加に比例して選べるようになる

■発展のコツ
単に人口だけを増やしても、街は発展しない!
失業率が増えると人口が減ってしまうので、バランスよく発展させよう

■参照画像
http://www.uploda.org/uporg1178757.jpg
http://www.imgup.org/iup528827.png
http://www.vippers.org/img/uho2118.png

2chの力で世界1位を目指そう(`・ω・´)
2931:2007/12/31(月) 23:48:38 ID:FFzcA1fJ
年末の行事に追われてなかなか作業が難航してますが、挫折したわけではないので見捨てないでください。

それでは おまいら よいお年を。
294名前は開発中のものです。:2008/01/01(火) 00:16:46 ID:6htQfom6
>>1 は にげだした
295名前は開発中のものです。:2008/01/01(火) 12:44:38 ID:bYZxBYfp
ドラクエの逃げる効果音は秀逸
296名前は開発中のものです。:2008/01/01(火) 15:44:46 ID:0nVkScXG
久々に来たがもう二ヶ月続いてるのか
うまくいけば年内には最低限ガワくらいは出来るんじゃないの?
297:2008/01/02(水) 13:30:49 ID:MAyGlp63
あけましておめでとうございます。

あんまり進んでないけど久しぶりのUp。
「わたす」をとりあえず実装したものの、まだ動作が変。
自分に渡すと「わたすふりをしたが…」って表示しなくちゃだったよね。

tp://sakuratan.ddo.jp/uploader/source/date65133.lzh
2981:2008/01/04(金) 04:25:06 ID:4fMs9e5G
フィールドのアイテム関連の実装です。
じぶんにアイテムを【わたす】と わたすふりをしたが〜 と表示されるようになりました。
【やくそう】が使えるようになりました。

tp://sakuratan.ddo.jp/uploader/source/date65379.lzh

CommandsField::giveControl()が極端に長いのが嫌です。
switch文の多様でインデントつけると逆に見づらい、みたいな現象ですが、
各コマンドごとに関数に切り分けるべきでしょうか?

アイテム使用時に
use(MsgCmd *,Character *user,Character *target,int partyState);
みたいな感じにしたかったけど、Useable.hとCharacter.hがお互いをインクルードしなくちゃいけないので無理でした。
今のところCommandsFieldクラスで無理やりやってるけど、あんまり美しくないですよねぇ…。
299名前は開発中のものです。:2008/01/04(金) 14:01:08 ID:aDuyr57S
Sugeeeeeeeeeeeeeeeeeee
300名前は開発中のものです。:2008/01/04(金) 14:31:35 ID:OF7wpiKh
>>298
ソース読んでないけど、互いにincludeさせられないのなら、
UserクラスとTargetクラスを作って、
CharacterクラスがUserクラスとTargetクラスを継承すれば、
Useable.hにはUser.hとTarget.hをincludeして、
Character.hにはUserable.hをincludeすればいいので、
use(MsgCmd *,User *user,Target *target,int partyState);
みたいな感じになって(゚д゚)ウマー
301名前は開発中のものです。:2008/01/04(金) 14:59:40 ID:0MJJiUxP
ファイル分割と前方宣言を駆使すれば
循環インクルードは回避できるYO!
302名前は開発中のものです。:2008/01/04(金) 15:08:51 ID:0MJJiUxP
あ、今回のは循環インクルード問題じゃなくて相互参照の問題だった
303:2008/01/04(金) 17:31:29 ID:4fMs9e5G
>>300
確かに回避できますが…
HPやらNameやらを全部実装させないといけないので、あんまり意味がないような気が…
実際Characterを継承しているPCクラスがItemBoxを持っているので、ヘッダを別ければいけるんですが、
つかうと独自に設定したメッセージを表示できるアイテムとかを作れるようにしたいので
なんちゃってスクリプトの方に投げる形式にすることにしました。
static Useable::outMsg , who , to を作ってFieldクラスから命令文、使用者、対象者を見れるようにして

Field::iventPriProcess(std::string*)で
"<UserName>" とかを使用者の名前に変換して命令文を実行するようにしました。
PriProcess関数を使うと普通の村人の会話を作る時に先頭の人の名前を呼び出せたりできます。

Useableを自作スクリプトで解決する以上、
戦闘中のアイテム使用や、呪文使用も同じ方法で解決しなければいけないため
FieldとBattleFieldの上位クラスを作って継承させるか、
それぞれに独自に実装させるべきか迷ってます。
もしくは両方つかって、共用部は親クラスで、専用部は子クラスで実装すべき?
書いててわけわかんなくなってきたので 頭冷やしてきます。

tp://sakuratan.ddo.jp/uploader/source/date65423.lzh

304名前は開発中のものです。:2008/01/04(金) 18:14:08 ID:uTfk0Xu7
>>298
メンバは基本ポインタのみにすれば
前置宣言だけで、継承元のクラス以外のファイルはincludeする必要はない。
というか実体を持たせるとそのクラスを作成したときにメンバに実体を持っている
クラスのインスタンスも作成されて複雑になってくると問題が発生しやすいので
基本的には単にデータをまとめたようなクラス以外はポインタで持つのが基本。
ゲーム作るのと平行してC++の勉強をもっとした方がいい。
305名前は開発中のものです。:2008/01/04(金) 19:53:41 ID:OF7wpiKh
>>303
まずはそれぞれ独自に実装して、共通する部分が多いなら分離してクラス化すべし。
最初から共通部分を使いまわすことを前提に作ると、かえって冗長な部分が多くなって失敗することがある。

コードの美しさが気になるなら、リファクタリングとかデザインパターンを勉強するといいかも。
306:2008/01/04(金) 20:22:51 ID:4fMs9e5G
>>304
基本型以外のメンバ変数はなるべく作らずにするべき、という事でしょうか?
class TestClass{
public:
int x;
};

class TestMain{
 private:
  TestClass obj;
 public:

  void setObj(TestClass *obj){
   this->obj = *obj;
  }
×
  void setObj(TestClass obj){
   this->obj = obj;
  }
};
こんな感じですか?
でも、前置宣言だけで、継承元のクラス以外のファイルはincludeする必要はない。
って言うのが いまいち理解できなくて… Orz
すみません Orz
307名前は開発中のものです。:2008/01/04(金) 20:27:35 ID:4fMs9e5G
>>305
なるほど。確かにそんな感じがします。
個別に作っていって見ますね。
デザインパターンはGofは買ったんですが、半分くらいしか読んでねぇ。Orz
経験を重ねて、どう便利なのか理解しないと、身にならないなー、と実感してる次第でございます。
308名前は開発中のものです。:2008/01/05(土) 10:54:21 ID:NGmgLj5+
Gofはひととおりどんなパターンがあるのか目を通しておくだけで、
あとは必要に応じて辞書みたいに引くんでいいと思う。
「ここはもっと綺麗に実装できなかな?」と思ったときにちょうどいいパターンがないか探す感じで。

最初からパターンどおりに作ろうとするとこういう罠にはまることがある。

「ここはコマンド機能だからCommandパターンで作ろう!」
 ↓
「あれ…? なんでこんなに面倒な構造にしなきゃいけないんだ…?」
 ↓
「せっかくデザインパターンを適用したのにちっとも効率良くならない。やっぱデザパタなんて糞だな。」
309名前は開発中のものです。:2008/01/05(土) 12:52:55 ID:6sNkPPyH
>>308
でも、それができるのってある程度以上パターンを実際に見たり使ったりして
ある種のとっかかりがあればの話じゃないかなぁ?

なんというか、最低限の所は抑えておかないと部分的に”より綺麗な実装”とかって困難な作業じゃん。
下手したら、一から作ったほうが早かったりするし。
310名前は開発中のものです。:2008/01/05(土) 18:06:17 ID:TQ5K8a3c
深く考えるとゲームを作るというよりも、
パターンを実装するのが目的になってゲームが作れないという。
311名前は開発中のものです。:2008/01/05(土) 20:47:44 ID:6fbMpELT
>>パターンを実装するのが目的になってゲームが作れない
あるあるw
312名前は開発中のものです。:2008/01/05(土) 20:50:04 ID:ycLLo6O8
パターンとゲームエンジンは危険
313名前は開発中のものです。:2008/01/05(土) 23:48:21 ID:CJpqsrn9
デザパタとかアホが参考にするもんだろ
314:2008/01/06(日) 01:17:33 ID:8z3cTay0
今の僕がまさにその状態かもしれません。
ま、仕様も決めずにできるところからはじめたので、
詰まるだろうな、とは思ってましたが、リファクタリングってつらいですねぇ…
SEに完璧な仕様を求めるのも不可能だし
仕様書が変更されすぎてデスマーチなPGも気持ちも理解した。

本当はPartyクラスとかItemListクラスとかはSingletonパターンを使ったほうがよかったんだろうなぁ…
315名前は開発中のものです。:2008/01/06(日) 02:12:10 ID:7m3sm5Xq
>本当はPartyクラスとかItemListクラスとかはSingletonパターンを使ったほうがよかったんだろうなぁ…

それ罠。
「デザパタが使いこなせるようになれば上級者になれる」というのがそもそも迷信。
デザパタは銀の弾丸じゃない。
コーディングに後悔は付き物。迷うくらいなら今の設計で進んだほうがいい。

あと、リファクタリングは本来楽しいもの。
つらいと感じるようならリファクタリングのやり方が間違ってる。
アジャイルとかextreme programmingとかxUnitについて調べてみ。
316名前は開発中のものです。:2008/01/06(日) 03:12:38 ID:0uUhrKJm
さんざんガイシュツネタなんだが
デザパタはクラス設計をする上で(その当時は)頻繁に発生する設計を
うまく抽象化(これ重要。そのまま使えるわけではない)して名前をつけただけ。
主に設計者同士のコミュニケーションの役に立つ。
デザパタがそのままの形で設計に現れてくるケースは
実はそんなに多くない。大抵は状況に合わせて変形されていたりする。
またデザパタはC++に特化されたものではない
(ポインタとかテンプレートとかシラネ)ので過信は禁物。
正直言ってクラス設計の基本パターンを全てここから引いてくると
コードは酷いことになると思っている。
それよりかは熟練者のコードを読んだほうがいい。
デザパタは継承ありきの設計だが、
現在は不要な継承はできるだけ避けるべきとする設計手法もある。


もっと根本的には設計の技術は単なる道具。
重要なのは「設計思想」であって、
つまりなにがしたいのかと言う事。
例えば目的がコードを綺麗でシンプルにする事である場合、
デザパタを使った結果としてコードが複雑に読みにくくなったのなら
その道具はこの場合役に立たないということだ。
317名前は開発中のものです。:2008/01/06(日) 15:15:00 ID:SZ5sx4fN
ドラクエと関係ないな
実践の伴わない理論なんかどうでよい
318名前は開発中のものです。:2008/01/06(日) 15:21:05 ID:SZ5sx4fN
つか
ドラクエすれ
多すぎね?まとめろよ
319名前は開発中のものです。:2008/01/06(日) 16:43:22 ID:/HrmMcya
既に立てられたスレをまとめるって具体的にどうすんのよ
320名前は開発中のものです。:2008/01/06(日) 17:12:30 ID:SZ5sx4fN
削除依頼出すなり
下げて落とすなり出来るだろ
何年かかるかは知らんが

それぞれのスレも
どうせ、この板の住人なんだろうから見てる奴も
かぶってるだろうしな
321名前は開発中のものです。:2008/01/06(日) 17:57:28 ID:DM+h60cC
最終書き込みから5年近く生存してたスレもあるわけでw
322名前は開発中のものです。:2008/01/07(月) 01:02:22 ID:YQu/Z7rd
削除人はあなた方の消しゴムではありません
3231:2008/01/07(月) 02:53:31 ID:4zheO+Ql
とりあえず 戦闘中に薬草が使えるようになりました。
攻撃のダメージ計算の結果がマイナスの時にHPが回復するという間抜けなバグを修正しました。

tp://sakuratan.ddo.jp/uploader/source/date65782.lzh

アイテムを増やしていろいろ実験してみなくちゃな。破損率とか。
次は装備を実装してみたいと思います。
324名前は開発中のものです。:2008/01/07(月) 20:59:30 ID:yiUETlQX
すげーよ、がんばれ
325:2008/01/08(火) 08:00:58 ID:28otzPtg
装備実装とか言っておきながら、戦闘順番の修正をしてました。
すばやさを−25%〜25%の補正をかけて、補正後の値の大きい順番で行動します。
ただのバブルソートです。

tp://sakuratan.ddo.jp/uploader/source/date65958.lzh
326名前は開発中のものです。:2008/01/08(火) 09:52:24 ID:D3pjyDXl
テスト
327名前は開発中のものです。:2008/01/08(火) 17:10:35 ID:JvrNAlpQ
あぷろだにアクセスできないな
http://ddo.jp/には行けるんだけど
328名前は開発中のものです。:2008/01/08(火) 17:55:44 ID:Y5Es8nAh
sakuratan時々アクセスできなくなる。
しばらくすると復旧するからしばし待てばよし
329名前は開発中のものです。:2008/01/09(水) 03:23:20 ID:yeQM8ZEN
濁点が<
なのがなんか泣ける
でもそんなの関係ねぇ〜

がんばれ
3301:2008/01/09(水) 08:13:12 ID:HAK5lZLN
とりあえず 装備しているものに E がつくようになりました。
でも、攻撃力とかは上がってません。
戦闘時にすばやさで行動順がかわるようになりました。

tp://sakuratan.ddo.jp/uploader/source/date66027.lzh
331名前は開発中のものです。:2008/01/10(木) 22:36:10 ID:1zT0fMGD
ここのスレを見て、
>>1の晒したEXEを実行してみた。

 コマンド部分はまだ完成度は低いのかな…?
コマンド>つよさ>じょうたい と選んでいったときに、
「MetaCmd::getWidth()が適当な実装です」と出てくるが、OKボタンを押しても
しつこく出てくるのだけは勘弁…(ノд`
(未実装なら、エラーメッセージを出して強制終了 ぐらいはしてもいいかな…?と思うけどw)

それでも、形になっているみたいなので、負けてられんなと思ったよ。
>>1よ、がんがってくれ!


自分も、昔VBで作ったRPGをVCとDirectXでリメイク中だが
勉強の為にライブラリから自作しとるので、何にも形になっとらん…orz



3321:2008/01/10(木) 22:59:37 ID:kdi+SJlD
装備品の能力上昇を実装しました。
ドラクエフォントをインストールしていない場合に警告が出るようになりました。
つよさをみる のステータス詳細画面に装備品が表示されるようになりました。
IventScriptに【Goto】と【Label】と【If】(HasItem)と【Div】を実装しました。
これによってアイテムフラグで進む簡単なストーリーなら作れます。
破損率99%以下の物の破損時「おともなくくずれさった…」と表示するようになりました。

とりあえず、ストーリーはおわりです、というメッセージが表示されるまでの
ミニストーリーを作ってみました。
ちょっとテストのつもりなので、おもしろいとか面白くないとか言わないでくださいね。

メモ帳でEditしたんですが、このスクリプト結構見づらいです。(インデントつけられないし
がんばって専用のエディターも作らなくっちゃ、ですね。

tp://sakuratan.ddo.jp/uploader/source/date66194.lzh
次は戦闘中の武器持ち替え対応か
→ はい
   いいえ
の選択窓か
あと呪文?

の前にフィールドでそうびコマンドの実装だな Orz
333:2008/01/10(木) 23:07:07 ID:kdi+SJlD
>>331
あれ?ほんとだ(汗
いままでちゃんと表示されてたはずなのにOrz
332でUpしたやつも同じ症状に陥るので、修正版を出すまで【つよさをみる】をしないでください。
未実装の部分は、選択してもなにもおこらないようにしてあるつもりなので(強制終了すると、僕も困る)
つっこみサンクスです。
334:2008/01/10(木) 23:10:21 ID:kdi+SJlD
バグが出るのは【つよさをみる】じゃなくて【じょうたい】でした。
そういえば、実装しようとして、中途半端なまま忘れてたんだ Orz
実装してきます。Orz
3351:2008/01/11(金) 00:06:11 ID:Jjm7Zu81
つよさ->じょうたい のバグっていうか、放置プレイだった箇所を修正しました。
そういえば、「うんのよさ」の使い道ってなにもなし、だったかしら?
雰囲気だけでつけたとかって話を聞いたことがあるんですが…
でも、それじゃアレなので、なにかつけたいと思います。
何か利用方法ある?
宝箱のドロップ率アップくらいしか思いつかないや。

あ… 宝箱おとすとかも実装しないとな…

tp://sakuratan.ddo.jp/uploader/source/date66205.lzh
336名前は開発中のものです。:2008/01/11(金) 22:37:41 ID:8z4xaIl1
すげーことやってんなw
3371:2008/01/12(土) 00:28:36 ID:WDlhVTgQ
どうぐ->そうび から装備できるようにしました。
普通の装備コマンドはまだ未実装です。
戦闘中に攻撃用アイテムが使えるようになりました。
複数攻撃できるようになったのは、かなり興奮しました。

もうちょっとしたら じゅもん の実装に取り掛かろうと思うのですが
じゅもんの並べ方をどうしようか迷ってます。
案@DQ3方式
職業ごとに呪文テーブルを用意する。
転職などをして、他の職業の呪文を覚えたら
じゅもん->しょくぎょう->呪文選択
という流れで選択する。
○空白が埋まらないイライラがなくなる
×手間がかかる。 DQ6方式の転職には対応できない。

案ADQ6方式
全呪文を網羅したテーブルを用意しておく。
○ 用意するテーブルが一つで済む。
× 人によっては埋まらない空白ができてしまう。

説明のしかたがへたくそだなぁ… Orz
tp://sakuratan.ddo.jp/uploader/source/date66269.lzh
338名前は開発中のものです。:2008/01/12(土) 09:13:21 ID:nuc01uN3
おまいが作りたい方で作れ。
やっていることはFCドラクエの移植じゃなく、スレタイのように
「ドラクエっぽいRPGを作ること」だろうから。
339名前は開発中のものです。:2008/01/12(土) 09:53:41 ID:b7SQU1lN
じゅもんに番号つけて前から順番に並べるっていうのじゃあかんの?
340名前は開発中のものです。:2008/01/12(土) 19:40:34 ID:84T2Ztwg
うpは週一くらいにしとけよ
こんな過疎板のスレで誰もいちいち落として見てねえだろ
はっきりいってろだスペースの無駄遣い
341名前は開発中のものです。:2008/01/12(土) 20:09:55 ID:VCz2GVdS
差分うpでもいい気がするけど、モチベ維持にいいだろうしペースはうp主次第でいいんじゃね?
342名前は開発中のものです。:2008/01/12(土) 21:00:00 ID:PD5xMP0i
343名前は開発中のものです。:2008/01/13(日) 21:47:31 ID:CoopjDr1
時間かかってもちゃんとやれてるってのが偉いな
俺もこういう事やろうとはしたがすぐ飽きて挫折してばかりだ。

それはそうと、配布zipにobjファイルは別にいらんと思うんだが
exe作った後に消すか別フォルダに作るよう設定した方がいいんじゃないか。
344名前は開発中のものです。:2008/01/14(月) 03:31:18 ID:SVRk/AgR
俺は作りながら見せるってのがすごいと思ったよ
俺はβ的な所まで形になってから公開する予定…
345:2008/01/14(月) 06:17:05 ID:aSQurjHs
【そうび】コマンドを実装しました。
思ったよりはすんなりできたかもしれない。

tp://sakuratan.ddo.jp/uploader/source/date66552.lzh

>>338,339
 呪文に番号をつけて並べることにします。れすさんくす><

>>340,341
 自分的にひと段落のところでUpしていかないとモチベーションが… Orz
 でも、ろだの無駄遣いは、おっしゃるとおりかもなので、次回から更新ごとに削除することにします。
 え?OpenSVN? 英語が読めなくて結局使い方が… Orz

>>343
 たしかに、objはいらないですねぇ…
 サイズ減らすためにも消すことにします。(忘れたらごめんなさい。
>>344
 誰かにレスつけてもらうと、モチベーションあがってくるんです。
 多分、僕みたいなタイプが一人でやろうとすると、形になる前に終わってしまう気がするので
346名前は開発中のものです。:2008/01/14(月) 18:09:01 ID:PQcWfF1X
>>345
簡単な配布用サイトを作って、このスレで逐一更新報告するのは駄目なの?
ろだの無駄遣いを気にせず、モチベーションも維持出来るぞ
347名前は開発中のものです。:2008/01/14(月) 19:50:06 ID:UuCFVpAj
>>344
それが普通だと思うよ
348名前は開発中のものです。:2008/01/14(月) 22:32:53 ID:G0SwQqXv
この板の普通といえば逃亡だろ
349:2008/01/15(火) 00:38:48 ID:V3xzM7xj
俗に言うまとめサイトですか…
作ったことないんだよなぁ…
いざ作るとなると、そっちに全力費やして、本来のものがおろそかになりそう…
350名前は開発中のものです。:2008/01/15(火) 00:43:14 ID:C2FoLMEe
そんなもの完成するまで作る必要なし
351名前は開発中のものです。:2008/01/15(火) 00:43:26 ID:AtQAfnor
管理きにしないでやるならどっかのブログスペース借りればいいけど
気にしないでやりたいようにやればいいと思うよ
352名前は開発中のものです。:2008/01/15(火) 11:48:24 ID:tFhP1thC
変にまとめサイトとか作ったとたん放置されるのが基本だから
現状維持OK
353名前は開発中のものです。:2008/01/15(火) 19:17:28 ID:TKI/oqBM
>>1が頑張っている様なので、
俺もソース読んでアドバイスしてみる。
長文なので、長いと思ったら適当に読み飛ばしてくれ。

1.
Character.hとかで使われているフラグはbool型を用いたほうがいいな。
C言語ならintで代用するのは分かるが、せっかくC++を使っているんだから。

2.
C++ならポインタより参照(&)を出来るだけ使うべきだ。
ただし全てのポインタを置き換えられるわけじゃない。念のため。
だが、ソースコードも結構な量があるから大変だろう。
勉強して、置き換えたいなと思ってからやればいい。

3.
引数にポインタや参照を用いる場合、
引数にもconstをできるだけ付けるように気をつけたほうがいいと思う。
変数の入出力がよく分かるようになるから。

4.
クラスのメンバ変数名が大文字だったり、小文字だったり統一されていないようだけど、
普通は定数を大文字にするよね?
混乱するので書き直したほうがいいと思う。
354名前は開発中のものです。:2008/01/15(火) 19:18:51 ID:TKI/oqBM
続き

5.
int Character::decreaseHP(unsigned int i)
とか、妙なところでunsigned intを使っているけど、
できればintに統一したほうがいいと思う。
怖いのはunsigned int とintが混ざって値がおかしくなることだから。

6.
所々でvoid *を見かけるけど、普通は使わないと思う。
あまりソース見てないから、絶対必要だという理由があれば教えてくれ。

7.
方向を0や1や2で管理しているけど、できればenum(もしくはconst)を使って欲しいなあ。

8.
.hにもgetter/setter程度なら定義を書いたほうがいいと思う。
どうしてもという理由があるなら別にいいが。
.hに書いた関数はinline展開されるから簡単な関数なら実行速度が上がるぞ。
355名前は開発中のものです。:2008/01/15(火) 19:22:55 ID:TKI/oqBM
悪かったところばかり挙げていると、
>>1がへこんでしまうだろうから、最後に良かったところを挙げる。

1.
DXLibを使っているとはいえ、
数ヶ月でここまでのRPGを作ったことは素直に凄い。

2.
ゲームプログラミングだと、描画関連で苦労するので、
ライブラリを使用したのはある意味正解。

3.
C++経験が少ない割には
ソースがそれほど汚くはない。

4.
クラス分けが継承を使って、きちんと出来ている。

以上、長文スマソ。
昔からRPGを作りたかったが、結局作れなかった俺は>>1を応援しているよ。

ついでに報告しておくと、DragonQuestImitation,
俺の環境ではXボタン押して終了したのにプロセスが残っていたぞ。
多分リソースをリークしている。確認したほうがいいのでは?
356名前は開発中のものです。:2008/01/15(火) 23:48:33 ID:UO44uzzc
Window閉じたけどpostpuitしてないって奴か?
357:2008/01/16(水) 08:09:07 ID:aNkfkNcc
>>350-352
 たしかに、まとめサイト作った瞬間に半端な達成感で放置しちゃいそうですね。
 現状維持で逝きたいと思います。

>>353
 レスありがとうございます。
どれも気をつけるべきことばっかりなので、とても参考になります。
void * についてですが
MetaCmdクラスでつかってます。
MetaCmd::type で受け取った文字列によって void *valuableが
PlayerParty* だったり MonsterParty * だったりItemBox * だったりするので
それぞれ専用のポインタ変数を用意しなくてもいいようにしたかったんです
でも、エラーを避ける、という意味ではなるべく使うべきではないんでしょうね。
なんか便利そう、使って見たい! って思ったのもあったんです(ぉぃ

Xボタンで終了に関してですが、僕のPCでは確認できなかったので
どの場所で押したか教えてもらってもいいですか?

>>356
postpuitってなんでしょうか? すみません、ググってもでてこなかったんです Orz
358:2008/01/16(水) 08:15:36 ID:aNkfkNcc
つよさ -> ならびかえ を実装しました。
職業による装備判定を実装しました。
いまのところ てつのたて と てつかぶと は
ゆうしゃ は装備できますが そうりょ は装備不可です。

tp://sakuratan.ddo.jp/uploader/source/date66751.lzh

次にすべきは353さんの言ってたことを中心にリファクタリングかなぁ…
359名前は開発中のものです。:2008/01/16(水) 08:16:39 ID:9K3RdyGz
ごめ、post"q"uit w
360353:2008/01/16(水) 13:42:54 ID:StPDBBfO
postquitとは多分PostQuitMessage()のことだろう。
ただ、ソースを見たところ、ウインドウプロシージャを使わずに、
DxLib_End()とかを呼び出しているようなので関係ないのかな。

ちなみに最新版でもう一度やってみたが、
戦闘中でXボタンで強制終了させるとリソースリークが起こるようだ。
移動中やタイトルでは起こらなかった。
361名前は開発中のものです。:2008/01/16(水) 17:11:20 ID:dnCNkhgK
>>360
ソース見てないから、適当な発言だが

それって、単にDXlib側の終了命令の時に
終らせるべきモノを終らせないで、普通に終らせちゃうから
リソースリークしてるだけでは?
どっかで、なにか取得または確保したのを自動開放してくれないのに
そのまま落としてるとかさぁ
362:2008/01/17(木) 08:14:24 ID:HCFfaCxW
多分PostQuiMassageの代わりがDxLib_End()だと思います。
無限ループは、キー入力待ちの状態のはずで
キー入力はPlayerPartyクラスのsetInputKeyで行われていて
setInputKey関数内で、ProcessMessage()を呼び出していて
×ボタンを押すとProcessMessage()が-1を返すんだと思います。
-1が返ってくる時はsetInputKeyは0を返してループを抜けるようにしてあります。
最終的にWinMainの最後まで行くはず…?

DxLibはフルスクリーンを前提としているらしいので、×を押された時の対応が曖昧なのかも知れませんが、
どっかで取得あるいは確保した何か、をリリースし忘れている可能性が 大 で す 。


363名前は開発中のものです。:2008/01/17(木) 09:41:19 ID:/oeOIVqW
なんだろうなあ。
DxLibでユーザが解放しなきゃならないものはほとんどなかったと思うけど。
そもそも解放するしないにかかわらず、プロセスが残るってのは変な気がする。
364名前は開発中のものです。:2008/01/17(木) 09:53:05 ID:/oeOIVqW
ソース見たが、
Field::Draw()でProcessMessage()使ってる。
しかも戻り値チェックしてない。

ProcessMessage()やScreenFlip()はあまりソース中に散在させるものではないと思うよ。
人それぞれかもしれんが。
3651:2008/01/17(木) 21:23:10 ID:HCFfaCxW
あ、本当だ… Orz
右も左も分からない時に書いた箇所だ…

ProcessMessageは全二箇所で、一箇所にまとめるのは、僕の頭じゃ無理そうです。
ScreenFlipも同様で、こっちは19個もありました。
ProcessMessageもScreenFlipも最小限に抑えるべきだと、僕もそう思います。
完全に設計ミスですね Orz
でも、今、修正すると心が折れそうなのでやめておきます。
次回作を作る時は、もう少しまともな設計ができそうです。
…いや、そうならないとこのスレの意味が…

Xボタンの件は、タイトル画面で症状を確認できました。
Escで終了した場合はおこりませんでした。
原因はやっぱり不明です。
もうちょっと自分でいじってみてダメそうならDxLibの掲示板に行ってみます。

方向を定数に変えました。
すこしずつconst関数に変えていってます。
呪文を実装しています。フィールドで使用が可能になっています。

tp://sakuratan.ddo.jp/uploader/source/date66885.lzh
削除パス設定し忘れた… Orz

366名前は開発中のものです。:2008/01/17(木) 21:56:13 ID:6FxDnuCV
複数ある時点でメッセージキューの仕組みが破綻すると思うのだが
367名前は開発中のものです。:2008/01/17(木) 22:17:21 ID:/oeOIVqW
>>365
タイトル画面の処理って、下のループかな?

> int TitleCount = 0;
> while(!party.setInputKey()){

ここでウィンドウ閉じるとループは抜けるだろうけど、DxLib_End()までは遠いね。
やはり、party.setInputKey()が分散≒ProcessMessage()が分散してるところが怪しい。

DXライブラリは自分も使ってるけど、以下のような感じでやっている。
メインループは一つ。ProcessMessage()やScreenFlip()は毎フレームに一回だけ呼ぶ。

DxLib_Init();
その他の初期化
while(ProcessMessage()) {
キー入力
switch(state) {
case STATE_TITLE:
title_exec(); title_draw();
case STATE_GAME:
game_exec(); game_draw();
}
ScreenFlip();
}
DxLib_End();

実際は、もっとオブジェクト指向っぽくしたり、ステートが階層構造になっているけどね。
368名前は開発中のものです。:2008/01/17(木) 22:18:56 ID:yQ/WXoAm
最初から人様の作ったラッパー使うのはどうかと
369名前は開発中のものです。:2008/01/17(木) 23:32:10 ID:HfiR7GrD
別にいいよ
>>1はゲーム作りじゃなくてC++の勉強してるんだろ
3701:2008/01/17(木) 23:39:44 ID:HCFfaCxW
winMain以外の関数でループさせないほうがいい、って事ですよね。
格ウインドウのgiveControl関数でループがあり、処理を投げているので
ほぼ一からやり直しになると思います。

×ボタンはつかわないでください、とコメントを添えて配布?とか思ったけど
そんなもん読む人はいないと思うので、(守らないと思うし)
苦肉の策で setKeyInputで呼び出したProcessMessage()が-1を返す時に
その場でDxLib_End()とexit()を呼び出してみました。

僕がテストした範囲内ではタイトル、移動、戦闘、全部Xボタンで正常終了することができました。
お手数ですが、興味のある方、検証お願いします。

大丈夫だったかダメだったかカキコしていただけると大変助かります。

tp://sakuratan.ddo.jp/uploader/source/date66915.lzh
371名前は開発中のものです。:2008/01/18(金) 00:20:44 ID:NZS+eY32
C++の勉強なら余計に人様のラッパー使わない方がよくない・・・?
勉強とかいうつもりがなくてただゲーム作るだけなら有り物で近道した方がいいかもしれないけど。
372名前は開発中のものです。:2008/01/18(金) 00:35:48 ID:Y9jpO8YC
>>371
ポリゴンで疑似スプライトから、とか?
そのほうが順番おかしいだろ
DirectXの勉強が主体になっちまう
373:2008/01/18(金) 00:50:54 ID:tZf/+rJ/
371さんが言いたいのは、DxLibなしでは何もつくれなくなるようなヘたれになるぞ、って警告ですよね?
その忠告、しっかり胸に刻んでおきます。
DxLibを使うようになった経緯の一つに、そもそもライブラリとは何か、すら分っていなかったというのがありまして。
コンソールでHelloWorldを出力して、次にやろうと思ったのがこれなんです。
その程度の初心者が行き当たりばったりではじめたスレなんです。
勉強をかねて、とはいえ、やっぱり愛着もあるわけで
完成させたいんですよ。
シナリオとかも妄想をメモしてる程度ですが、書き溜めていますし。

で、これからの方向性ですが
ランタイム部分は従来どおりDxLibを使っていって
ツクール部分を作る時はDirectXも使わないで作ろうと思っています。

全部完成したら、2DアクションMORPGを作りたいとか思ってます。

これからもがんばるので、なにとぞ応援よろしくお願いします。
>>3-372
374名前は開発中のものです。:2008/01/18(金) 02:20:52 ID:vnoeWmB4
HellowWorldの次がこれって階段飛ばしすぎだろw
それでここまで作れるってんだから
LV1の勇者が偶然の会心の一撃ではぐれメタル倒しでもしたようなLVアップだな
その心意気は買うけどw

ゲームのプログラムやるならDxLiv使ってもいいと思うよ。
1なら大丈夫カモ知れないけど、DirectXの勉強から入る大概の奴は途中で挫折するし。
375名前は開発中のものです。:2008/01/18(金) 05:15:51 ID:fmL4VK0l
DirectXは初級者には難しいからな
とても素人の手には負えない代物
ラッパーライブラリから入るのは強ち間違ってないな
376名前は開発中のものです。:2008/01/18(金) 07:02:39 ID:cTq/87tt
SDLやopen_glを使ってくだちい<><><><>
377名前は開発中のものです。:2008/01/18(金) 13:03:50 ID:xQ14t5Bn
ライブラリを使いこなして組むことも勉強(経験)の一つだよ。
これができない奴は生産性が恐ろしく低い。
勉強はともかく時間とモチベーションは有限なんだから1がやりたいことをやるべきだ。
378名前は開発中のものです。:2008/01/19(土) 12:25:38 ID:57iRLZiD
俺はゲームのライブラリ作成で挫折した口だ。
ゲーム創るのって難しいんだよな。
特に何もかもを自分で作らないといけないC/C++言語の場合。
だから最近はRPGツクールやHSPに逃げる人が増えているのではないか?
379名前は開発中のものです。:2008/01/19(土) 13:22:38 ID:3gX+QM4P
何もかもを自分で作らなきゃならないと思ってるからモチベーションがもたないだけ
趣味プロは、やりたい所以外は楽してもいいんだよ
380名前は開発中のものです。:2008/01/19(土) 13:32:47 ID:qd03KsuI
俺はエディタや開発環境の構築で挫折したよ
381名前は開発中のものです。:2008/01/19(土) 15:47:36 ID:gSyG+qPE
俺はRPG用ツール(マップエディタやドット絵作成ツール)の開発に熱中して結局RPG本体は作る機会を逸しているよ
3821:2008/01/19(土) 15:50:28 ID:IEEE/S8f
なんか僕、ライブラリの意味が分ってないみたいです。
再利用しやすい形でまとめたプログラムの塊、って思ってたんですが、それだけじゃないのかな?
dllとか共有ライブラリとか、掘り下げれば一晩語れそうなくらい深い…?

でもOpenGLはおもしろそう。XBoxで動くらしいじゃないですか。
コンシューマで自作ゲームが動くなんて!
問題は僕の周りに僕以外にX箱もってる人がいないことですね。ねらーはPCもってるだろうし。

***************************************************************
戦闘中に呪文が使えるようになりました。
MP回復アイテムを実装しました。

tp://sakuratan.ddo.jp/uploader/source/date67042.lzh

つぎはルーラとか実装しようかな。
戦闘の呪文が9個以上の時の対応しなくちゃ Orz
383名前は開発中のものです。:2008/01/19(土) 17:02:16 ID:Z9p4bTX2
HelloWorldの次に手つけてここまでやれてるってまじかよw
しかも次なる目標2DアクションMORPGとか>>1なら本当にやれそうだし
久々に焦りを感じた。これは俺も何か形になる物を作らねば
384名前は開発中のものです。:2008/01/19(土) 17:45:24 ID:HocoF4ik
俺はライブラリとサンプル作りながら作業は順調に遅れてる
385名前は開発中のものです。:2008/01/19(土) 20:31:54 ID:M1k0mHX6
XBOXで動くのはXNAだよ
【Xbox360】 XNA Game Studio その4 【C#】
http://pc11.2ch.net/test/read.cgi/gamedev/1198312422/
386名前は開発中のものです。:2008/01/19(土) 20:46:07 ID:efIJqSsS
ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ   
   /\  /| 
  / /| \/ |(\ /)
 / / |  \|( ゚ー゚) <全力でBCCを捨てVCに移行せよ
/  / |   __〃`ヽ 〈_ 
  / γ´⌒´-−ヾvーヽ⌒ヽ 
  //⌒  ィ mfc `i´cli ); `ヽ
 //    ノ^ 、___¥__人  |
/ !  ,,,ノ爻\_ _人 ノr;^ >  )
/ (   <_ \ヘ、,, __,+、__rノ/  /
  ヽ_  \ )ゝ、__,+、_ア〃 /
    ヽ、___ ヽ.=┬─┬〈  ソ、
      〈J .〉、|   |, |ヽ-´
      /""  |ATL|: |
      レ   :|:   | リ
      /   ノ|__| |
↑    /| ,,  ソ  ヽ  )
 \_/ .,ゝ   )  イ ヽ ノ
     y `レl   〈´  リ
     /   ノ   |   | .
     l  /    l;;  |
     〉 〈      〉  |
    /  ::|    (_ヽ \、
   (。mnノ      `ヽnm
387名前は開発中のものです。:2008/01/20(日) 15:27:22 ID:gNdOCc+8
〜がやりたい→試しに実装してみる→せっかくだから汎用的なクラスにしよう
→せっかくここまでやったんだからどうせならこの機能も付けとこう
→ベース部分のコードばっかり増えて全然ゲームが作れない
助けてくれ
388名前は開発中のものです。:2008/01/20(日) 17:05:47 ID:hrOxsR47
妥協無くして形にならず
とりあえずかたちにしたいならいい加減な吶喊工事が一番さ
389名前は開発中のものです。:2008/01/20(日) 18:23:03 ID:WjtNncJn
>>387
>→せっかくだから汎用的なクラスにしよう

ここまでで止める
390名前は開発中のものです。:2008/01/20(日) 18:50:59 ID:ImQG3BnS
>〜がやりたい→試しに実装してみる

いつもここで止まる俺は、何が足りないんだろうね?
391名前は開発中のものです。:2008/01/20(日) 20:53:01 ID:3ekNMmoB
「こういうものを作りたい」という完成形が頭に描けないことかな。

多分、ちゃんとした絵と音楽があれば、やる気が俄然違うはず。
それらがないから、ちょっとプログラムの実験をして満足、みたいな。
392名前は開発中のものです。:2008/01/20(日) 21:23:11 ID:6uADG+oQ
Kneel to the Emperor of Japan.
You are a Korean. It is ugly race.
3931:2008/01/21(月) 04:26:01 ID:VsfG21W1
>>386
BCC Developerの便利な機能をやっと把握し始めたところなのに… Orz

呪文で、一定数(8個)を超えるとページが送れる仕組みでちょっとてこずってます。
断片的に思いついた事が一つにまとまらない感じ。
紙に箇条書きと自分にしか分からない図を書いて最適解を探してます。
最適解って言っても、全然【最】適ではないんだろうけど。

【とりあえず動くもの】を作るのが楽しくやる秘訣だ、ってどっかで見ました。
自分が書いたプログラムが動くのが楽しいので
ベースのクラスからかっちりくみ上げていくとモチベーションが持たないらしいです。

ところで、ツクール部分はWinAPIで作ろうかと考えていたんですが、
面倒くさいからやめとけとか、そういうのはこのライブラリを使えとかありますか?
ちょっと先のことになりそうですが、先に聞いておきたいなー なんて思ったりして。
394名前は開発中のものです。:2008/01/21(月) 08:18:29 ID:Pz6N6vbp
> BCC Developerの便利な機能をやっと把握し始めたところなのに… Orz
VCを使うとBCCの糞さに気づいてVCマンセーするに100ペリカ
うだうだ言い訳する前に試しに使ってみろ
395名前は開発中のものです。:2008/01/21(月) 11:58:46 ID:MLczczSF
おれは、他のサンプルプログラムをDLして、コンパイルすると
リンクエラー"mfc42d.lib"が見つからん。というのをみて挫折した。
対処方法をググって見たけど、プロジェクトファイルにそんなmfc42dをリンクする設定なんてなく、
アプリケーション形式も、Win32アプリに設定しているにもかかわらずだ。
コンパイラ自体扱えない俺にはC++は無理だと悟った。
396名前は開発中のものです。:2008/01/21(月) 12:46:36 ID:D+puFnUV
>>395
mfc42d.libって、えらい古いライブラリだな。
たまに使っているプログラム見るけど。
mfc42d.libはちゃんと持っているのか?
プロジェクトにはライブラリまでのパス通したか?

>>393
別に無理してVCに移行することはない。
むしろ、初心者のうちにBCCあたりで苦労しておいた方がいいと思う。
俺はBCC Developer->VCへと移行したが、BCCの苦労も役に立ったぞ。
397名前は開発中のものです。:2008/01/21(月) 13:10:26 ID:gT2U2JAO
ツール類は普通に考えるとMFCなんだろうが有料だしな・・・
自分しか使わないならJavaでもRubyでもPythonでも何でもいいんじゃ?

自分用のツールは楽に作れる言語とライブラリでサクッと作るべき
398名前は開発中のものです。:2008/01/21(月) 15:06:45 ID:4uf1EjU0
普通に考えたら.NETなんじゃないの
399名前は開発中のものです。:2008/01/21(月) 16:09:39 ID:5xd0Lli5
>>378
逃げるって言うか現実的な妥協策だろ
400名前は開発中のものです。:2008/01/21(月) 16:13:16 ID:0dbr+6K/
普通とかわけわからん。
使い慣れた方法つかえばいいよ。
データだけならテキストエディタでもExcelでも作れるし。
HSPでサクッと作れるならそれでやりゃいい。
.NETってのが何を指すのかしらんがそれで作りやすいならそれでやりゃいい。
ツールだしな。
401名前は開発中のものです。:2008/01/21(月) 16:36:37 ID:SNqbI5o2
>>393
とりあえず、ツール類なら「バイナリデータが扱いやすい環境」が欲しいね。
バイナリデータを直感的に扱いにくいJavaやスクリプトはやめておいた方が良い。
できればC/C++、GUIの作りやすさ優先ならC#あたりか。

ツクールとして一体化させたい(今作っているシステムをツクールで作ったシナリオ
実行系に作り直したい)というのであれば、今のライブラリでいけそうならそのまま
行けばよいし、ライブラリを使う利点を感じないならAPIベースで組めばよい。
個人的には自力描画中心で描画も単純なドラクエ系RPGなら、自由度の高いAPI
(DIBSection)ベースの方が作りやすいが。

ただ、この部分も出来ればエディタ部分と同じ環境で開発しておくと「部品」を使い
まわしたり統合しやすくなるかな。
402名前は開発中のものです。:2008/01/21(月) 20:12:37 ID:KV4/mVtg
Javaでドラクエ風のゲーム作ってる俺から言わせてもらえば、
Javaは特にバイナリを扱いにくいということはないと思うぞ。

ただ、ツール作るには確かに向いてないかも。
javax.swingでツール作ってたら、
JDKを5から6に上げた途端動かなくなって俺涙目。
403名前は開発中のものです。:2008/01/21(月) 20:20:55 ID:OwrF49yn
VC#は使い易すぎる
タダだし
404名前は開発中のものです。:2008/01/21(月) 20:23:20 ID:NNIybW4r
好きなの使え
誰も止めない
4051:2008/01/21(月) 20:35:30 ID:VsfG21W1
みんないろいろありがと!
実は環境設定とかが苦手で、DxLibを使うに至ったのもDirectXをそのまま使えなかったから、でした。
みんなの意見を参考にしていろいろ試して、自分に合うものを探してみるよ。
406名前は開発中のものです。:2008/01/21(月) 20:41:57 ID:GWNEjOJ7
自分は逆にVC6からBCC(Developer)だな。
アカデミックで商用は作れなかったのと、
どうせWin32APISDKしか使っていなかったので。
プロジェクトファイル名前順並び替えだけツール作って行っている。

407名前は開発中のものです。:2008/01/22(火) 02:25:51 ID:wx3uD/aG
VCだBCCだ言う前にIDEじゃない素の環境を経験するほうが大事な気がする
そうすればリンクエラーでつまづくとかありえないから
そんな大前提の知識もなしにOOP語ってるからあきれるを通り越して笑える
408名前は開発中のものです。:2008/01/22(火) 02:36:36 ID:6clbrVe2
老害がここにも
409名前は開発中のものです。:2008/01/22(火) 05:38:58 ID:Gv4Ssyc0
GCC(MinGW)はどう? 全部フリーで商用も可能w
実際吉里吉里3はMinGWで作ってるらしいよ
https://sv.kikyou.info/trac/kirikiri/wiki/documents/kirikiri3/development/build_win32
410名前は開発中のものです。:2008/01/22(火) 08:47:44 ID:IQmrOM9L
あまり考えすぎてモチベーション下がらないようにな
全員が完全に納得する選択なんてないし趣味の範囲の事だ
411名前は開発中のものです。:2008/01/22(火) 09:32:24 ID:51mKF/+V
emacsとかgnuのツールを使えるようになれば今より確実にコードの質や作業効率はあがるだろうけど、
そうなるまでにソフトが2つ3つ完成するぐらいの時間がかかるからなぁ。
「C++の勉強してたのにいつの間にかperlやlisp、シェルスクリプトの勉強してた」とか馬鹿な事になるのがオチ。
BCからC++にうつるにしても、ここまで酷くはないだろうが似たようなことになるだろうとは思う。
412名前は開発中のものです。:2008/01/22(火) 13:20:46 ID:wLhxzshQ
DirectX使ってる時点で移植性も糞もないが
90%近くの環境で動くから問題なし。
4131:2008/01/22(火) 21:22:41 ID:mOu/eEXx
確かにテキストエディタ+コマンドプロンプトで、ビルドしてみるのは重要かもしれませんねー。
どうして違うのファイルに書かれてる関数が見れるのか、最初不思議だったんですよ。
今日、ためしにやってみて、その謎が解けました。

GNUって名前は聞いたことありますね。emacsは知りません。
なにが自分に必要で、自分にあっているか分からないので、少しずつ試して見たいと思う今日この頃。
一応、作業が滞らない程度にね。

やっと呪文のページ送りの機構ができました。

tp://sakuratan.ddo.jp/uploader/source/date67486.lzh

これでルーラの行き先とか
持ち物を9個以上持てるようにしたりとか
フィールドの呪文もたくさん持たせられたりできます。

あとイベントフラグ系を実装してみようかな。
414名前は開発中のものです。:2008/01/22(火) 23:25:50 ID:5GRLbyxQ
そろそろ>>1のキャパが限界に近づいてきたヨカーソ
415名前は開発中のものです。:2008/01/23(水) 05:52:11 ID:wvQOC4ad
とりあえずこれが完成するか行き詰まってやめるかするまではbccのままで行ったほうが良いと思う。

と、ツールをとっかえひっかえして肝心のゲーム制作が一向に進まない俺が言ってみる。
416名前は開発中のものです。:2008/01/23(水) 19:00:56 ID:cgi6PhB/
VHDL → メガカミス
汗   → キロカミス
C/C++ → カミス
Java → アホス
C#  → アホス
VB  → キロアホス
PHP → メガアホス
Flash → ギガアホス
Web → テラアホス
417名前は開発中のものです。:2008/01/23(水) 19:13:39 ID:6RO0vpyg
汗って何かと思ったら
Assemblerか
418名前は開発中のものです。:2008/01/23(水) 20:22:26 ID:2KgUJkIZ
>>416
ワナビー乙
419名前は開発中のものです。:2008/01/23(水) 20:57:14 ID:LtiCnrxY
>>416
RPGツクールでおk
420名前は開発中のものです。:2008/01/23(水) 21:46:22 ID:Qgepck6P
>>416

http://www.geekpage.jp/blog/?id=2006/12/13
プログラミング言語ヒエラルキー
421名前は開発中のものです。:2008/01/24(木) 00:24:18 ID:ViAvMgFb
>>416
可哀想な子だな
422名前は開発中のものです。:2008/01/24(木) 00:53:39 ID:yYzSvo3e
>>416
わかりました。あなたは世界を革命するしかないでしょう。

423:2008/01/24(木) 21:41:55 ID:j3/D/798
アク禁につき携帯から…

>>420
吹いたw

空気読まずに最新版投下。
******************************
ルーラが使用可能になりました。
イベントフラグを実装しました。
とびらを実装しました。
各マップオブジェクトに存在フラグを設定できるようになりました。
アリアハンを拡張しました。

tp://sakuratan.ddo.jp/uploader/source/date67764.lzh
424:2008/01/25(金) 14:01:19 ID:UVi0ePn3
すみません、最新版アリアハン歩けませんでした。
metaMap.csvに嘘コメントが乗ってます。
家に帰ったら修正版うぷしますが、とりあえず。

× 画像ファイル名 昼 夜 通行可否
○ 画像ファイル名 通行可否 昼 夜
425名前は開発中のものです。:2008/01/26(土) 07:51:23 ID:6ZDIHq1v
>>423
戦闘の文字の送り方のタイミングとかドラクエっぽくなっているな。

アリアハンに入ると右側に動けない。
左側に動いて城から出ることは出来る。
426:2008/01/26(土) 09:15:46 ID:3u97CoxS
いろいろ手をつけてたら、まともにアップできる状態じゃなくなってしまった… Orz
とりあえず、>>423でうpしたやつをアリアハンが歩けるようにしてうpしておきます。

tp://sakuratan.ddo.jp/uploader/source/date67926.lzh
427:2008/01/26(土) 10:36:56 ID:3u97CoxS
平行してエディター部分も作り始めました。
WinAPIで作ってます。
C++っぽくウィンドウをクラス化しようと思って、
WNDCLASS構造体を継承したWndクラスを作りました。
WNDCLASS::lpfnWndProcにメンバ関数Wnd::WndProcのポインタを渡したいんですが

'long (__stdcall Wnd::*)(HWND__ *,unsigned int,unsigned int,long)' 型は
'long (__stdcall *)(HWND__ *,unsigned int,unsigned int,long)' 型に変換できない(関数
Wnd::Wnd() )

というコンパイルエラーがでます。
相変わらずBCCでやってます。

ソースは
tp://sakuratan.ddo.jp/uploader/source/date67927.txt
です。
ボスケテ Orz
428名前は開発中のものです。:2008/01/26(土) 10:52:11 ID:H+OG9eM0
HellowWorldの次がこれって絶対冗談だろ?w
429名前は開発中のものです。:2008/01/26(土) 12:32:09 ID:pcXY3xH1
MetaCmd クラスを見ると
bool に int を代入してたり、
bool型を返却するメソッドなのに、intを返却してるケースが有るが、
>>1 の環境ではワーニングも何も出ないんか?

あと、VC++2005だけかもしれんけど、
hakase.h の small関数でエラー出まくる
どうやら、platform sdk側 の rpcndr.h で
#define small char
とか ぶっこいちゃってるのが原因みたい
430名前は開発中のものです。:2008/01/26(土) 13:29:52 ID:pcXY3xH1
うちは VC++2005 しか無いんだけど、
動くようになるまでに色々とイジる必要がありますな
なんつーか、本来なら警告が出る部分が目立つから
いまのうちに潰しとかないと危ないなぁ

>>427
& は要らなくね?
431名前は開発中のものです。:2008/01/26(土) 13:30:25 ID:n87t9W9f
432名前は開発中のものです。:2008/01/26(土) 13:49:11 ID:n87t9W9f
つか1はとても初心者とは思えんな
C++の知識は確かに貧弱だけどCかもしくは別言語はやってたんだろ

まあ、がんばってくれ
俺もゲーム作ってるからソースは参考にさせてもらうよ
433名前は開発中のものです。:2008/01/26(土) 15:37:30 ID:qYaFn144
c用の構造体は継承しちゃダメだよ
publicになっちゃうし…
434名前は開発中のものです。:2008/01/26(土) 18:12:33 ID:e3cqRtGD
small関数は別の名前に変えて欲しいところではある。
435名前は開発中のものです。:2008/01/26(土) 19:33:43 ID:dThAsdf4
MFCやWTLのCRectとかふつーにRECT派生してるよ。
まーそもそもAPIの薄いラッパーなんだが。
436名前は開発中のものです。:2008/01/26(土) 21:17:54 ID:qYaFn144
>>435
で?
CRectと同じように自由に中身いじれていいと?
どう考えてもhas関係のほうがいいだろ
437名前は開発中のものです。:2008/01/26(土) 22:39:29 ID:dThAsdf4
用途によると
438名前は開発中のものです。:2008/01/27(日) 03:49:56 ID:rwExEoOD
>>437
>>427を読んでもまだ言うかww
439名前は開発中のものです。:2008/01/27(日) 14:29:06 ID:T94kIYTo
>>1は当然リファクタリング中なんだよな?
こんな状態で新機能つけられても失笑をかうだけだぞ
440名前は開発中のものです。:2008/01/27(日) 14:35:04 ID:2lUOmqYr
リファクタリングなんか実装終わってからやればいいじゃんか
441名前は開発中のものです。:2008/01/27(日) 17:26:00 ID:bil4rrw2
1は明らかに本業
442:2008/01/28(月) 09:42:14 ID:efejqwIm
>>429
実は、警告が一切でません。

たとえば
×
bool test(int a){
retun a;
}


bool test(int a){
if(a){return true;
}else{retun false;}
}

とやらないと警告がでるってことですか?
それとも他の問題?

あとsmall関数に関してはreturnSmall関数に名前を変えます。
衝突しやすい名前は避けるべきでしたね。すみませんでした。

>>431
まさしく僕の状況と同じですね、ありがとうございます。
参考にしてやってみます。

アクセス権についてはprotectedにすれば大丈夫?
でも、最悪publicになっても仕方ないと思うことにします。
443名前は開発中のものです。:2008/01/28(月) 11:51:19 ID:Fsa5EfdA
>>442
まあ、普通はboolをintに変換すると警告が出る。
C言語ではしょうがないが、intとboolは本来違う型だから。
BCCでは警告出ないのか……。
BCCは警告がVC++より多く出るのでデバッグしやすいと思っていたのだが。
最近のVC++が賢くなったのかも知れん。

ちなみに、このソースなら
bool test(int a)
{
  return a != 0;
}
とやったほうがいいぞ。
Javaだとifにはbool型しか書けないから、このようにする必要がある。

アクセス権は正直難しいな。
無理やりprivateにしても、アクセサを作るのは面倒だし。
最小限の関数がアクセスできるように設定するのが理想。
継承してオーバーライドしたメンバ関数が参照する変数ならprotected。
そうでなければprivateが正解。
publicは構造体専用のような気がする。構造体のような基本クラスならあり。
444名前は開発中のものです。:2008/01/28(月) 12:17:32 ID:DJpHQP7Z
int から bool への変換で警告はないだろ。
0が偽で非0が真なんだから、警告の出しようがない気がするが。
VC++ が過剰なだけでは?

return a != 0;
としたほうが良いってのは同意だけど。でも Java は別に関係ないな。
445名前は開発中のものです。:2008/01/28(月) 18:46:30 ID:DSI82zKh
コンパイラだけ見ればVCのほうが標準準拠度がまし
446名前は開発中のものです。:2008/01/28(月) 22:03:00 ID:qDZhZR+9
intをboolに変換したらintに再変換できない。
情報が失われているから警告出してもよさそうなのだが。
しかし手元のg++でコンパイルしてみたが警告出ないな。
447名前は開発中のものです。:2008/01/29(火) 01:30:19 ID:M4FlFQH0
世界ランク14位おめw
http://2chcity.myminicity.com/

ランク   国名      街             人口  (前日比)  前日
--- 1   US1      LUELand         326354 (+211)   326143
--- 2   US2      GoonTown        179482 (+711)   .178771
--- 3   Germany1  .isnichwahr.de       119091 (-654)   119745
--- 4   US3      CreateMyCity Forum  .87380  (+1982)   85398
--- 5   Poland1    #debian.pl         79594  (+1043)   .78551
--- 6   Germany2  upOTia             52443  (+399)    52044
--- 7   France1    Reze'Les Nantes     .41960  (+246)    41714
--- 8   Canada1   J-C Satanas & CO   .40995  (+721)    40274
--- 9   US4      retromundi        .40604  (+788)    39816
--- 10  France2    FanaZ           .39902  .(+1268)   38634
2↑ 11  Germany3   deluxebits         38770  .(+3199)   35571
1↓ 12  US5      .isnichwahr.at        .38234  (+78)    38143
1↓ 13  France3    gravure-news       .37204  .(+765)    36439
2↑ 14  Japan1     2ch_city          35637  .(+1970)   33667
1↓ 15  Spain1     Media-Vida         .35205  .(+686)    34519
1↓ 16  France4    Sguy            .35083  .(+1456)   33626
2↓ 17  Ireland1    .prapikilty          .35067  .(+871)    34196
--- 18  Spain2     benidaver         .34505  .(+914)    33591
--- 19  Germany4   directupload       ..32490  .(+82)    .32408
-↑ 20  Slovakia1    Legionar City       32056
448:2008/01/29(火) 10:11:54 ID:owOBTCKE
>>349
今中途半端に新機能付けてる所なので、一段落したらリファクタリングしようと思ってます。
VCに移行する事も考えてます。
せっかく見てくれる人がいるんだから、殆ど使われてないBCCよりアドバイスも受けやすそうだし。

はやくアク禁とけないかなぁ…
449:2008/01/31(木) 08:17:54 ID:gs4vtOjg
VC++ 2005をインスコして、コンパイルしてみたものの
吐き出されたエラーの量に愕然…。
しかも見たことないエラーだから対処法がわかんないOrz

とりあえず、このプロジェクトは最後までBCCで行ったほうがよさそうだ。
VCは次のプロジェクトでつかってみることにするよ。
いや、エディター部分で使ってみるか。

**************************************
人と物の区別をつけました。
町の中の入り口に立ってるのが【人】です。

tp://sakuratan.ddo.jp/uploader/source/date68697.lzh
450名前は開発中のものです。:2008/01/31(木) 09:09:52 ID:KWbgYovb
>>449
VC++2005っていうのはExpressEditionか?
それならWin32 SDKをインストールする必要があるぞ。

もし違うのなら、ユニコード関連のエラーじゃなかったか?
俺も最初そこではまったぞ。
VC++2005以降ではデフォルトのプロジェクト設定は
ユニコード関数になってる(当然98/Meでは実行不可)。

多分今まではANSIライブラリで開発していただろうから、
プロジェクトー>プロパティー>構成プロパティ
ー>全般ー>プロジェクトの規定値ー>文字セット
を「マルチバイト文字セットを利用する」と設定してみたらどうだ。
関数でセキュリティ警告がでたらググって消すといい
(あまり良い対処法ではないが)。
意外とVC++も面倒なんだよな。
インテリセンスは便利なんだが、そっちはVC#のほうが進化してるし。
451名前は開発中のものです。:2008/01/31(木) 10:33:31 ID:g4vS4NUg
windowsのAPI直接呼んでなければplatformSDKは不要
>>1のソース見てないから使ってるかは知らんが…
452名前は開発中のものです。:2008/01/31(木) 10:43:18 ID:9v/0NHUq
>>451
Dx_Lib使ってるなら必要だったような希ガス
453名前は開発中のものです。:2008/01/31(木) 13:05:33 ID:g4vS4NUg
>>452
それはおかしい
DX_libがWinAPI用のlibファイルとリンクしてないことになる
バイナリで提供されているということは、WinAPI用のlibはリンク済みなはず
454名前は開発中のものです。:2008/01/31(木) 14:16:08 ID:a5CfO9IL
DXLIB配布元の説明くらい読め
PlatformSDKは必須
455名前は開発中のものです。:2008/01/31(木) 15:42:20 ID:ZxMw62D0
必須て・・・
dll版も配布されているので可能だけど
456名前は開発中のものです。:2008/01/31(木) 15:53:29 ID:a5CfO9IL
ライブラリ群の話しじゃないよ
ヘッダはどうすんのよ
windows.hとか最初に読んでるし

まさかBCCの使えとか言ってる?
457名前は開発中のものです。:2008/01/31(木) 15:57:23 ID:ZxMw62D0
>>456
つれたwww
ライブラリ側のビルド時に依存してるだけだから、コメントアウトして問題ない。

implibとかdumpbin等等の細かいツールいくつかと、元のdxlib.hを加工すればいける
dll作成経験が恐らく無い>>1には大変かもね
458名前は開発中のものです。:2008/01/31(木) 16:02:19 ID:a5CfO9IL
加工かよ
じゃあ
WIN32ライブラリリンクしてるとこも加工な
がんばってくれww
459名前は開発中のものです。:2008/01/31(木) 16:03:26 ID:ZxMw62D0
>WIN32ライブラリリンクしてるとこも加工な
お前本当にDLL作ったことないのな・・・

単体のexeとほぼ同じ構造になってる
この意味がわかるか?
460名前は開発中のものです。:2008/01/31(木) 16:20:07 ID:a5CfO9IL
よく読め
俺はお前の言った
ヘッダの修正の話しをしている

それからdll版ってなんだ?
悪いが見たこともない
win32リンクされてるdll版でも配布されてんの?
461名前は開発中のものです。:2008/01/31(木) 16:26:06 ID:ZxMw62D0
>よく読め
>俺はお前の言った
>ヘッダの修正の話しをしている
やっぱりお前わかってないってdll作ったこと無いなら素直に質問すればいい

>それからdll版ってなんだ?
C#版アーカイブに入っている。
C#で開発する際には、同梱の.NETのクラスライブラリを使ってアクセスするというだけなので、
dxlib.dll自身はネイティブ。
462名前は開発中のものです。:2008/01/31(木) 16:36:15 ID:a5CfO9IL
お?
あった

納得
つかC#かよ!!
というツッコミは辞めておく

勉強になったわ
サンキュー
463名前は開発中のものです。:2008/01/31(木) 17:58:32 ID:ad/sWf4T
>つかC#かよ!!
>というツッコミは辞めておく

いや、そこはつっこめよw
464名前は開発中のものです。:2008/01/31(木) 18:17:56 ID:ZxMw62D0
>463
>C#で開発する際には、同梱の.NETのクラスライブラリを使ってアクセスするというだけなので、
>dxlib.dll自身はネイティブ。
465名前は開発中のものです。:2008/01/31(木) 18:51:00 ID:ad/sWf4T
1の開発環境はC#なのか?w
466名前は開発中のものです。:2008/01/31(木) 18:54:57 ID:ZxMw62D0
>>465
だから、dxlib.dllはネイティブだと何度(ry
467名前は開発中のものです。:2008/01/31(木) 22:23:51 ID:Qxg+Khni
>>452-466
お前らかっこ悪りぃwwww
468名前は開発中のものです。:2008/02/01(金) 19:01:44 ID:eYKdS8Iu
2008EEならPSDK付いてるだろ
同じ無料だし軽くなってるし
469名前は開発中のものです。:2008/02/01(金) 19:19:54 ID:tyk5s2hE
俺が初めにやったのはlibがRelease用なのにdebugでビルドしようとしたミスだ。
470名前は開発中のものです。:2008/02/02(土) 09:02:14 ID:IBv7+ZuZ
>>449
>吐き出されたエラーの量に愕然…。
>しかも見たことないエラーだから対処法がわかんないOrz

たぶん次プロジェクトで使おうとしても同じ部分でつまづくから
開発の合間に少しずつでいいから解決してみれ
オレもこれを VC++2005 でビルドできるようにするまでに
色々な部分をイジったから
分かんねーことがあったら全部ここで聞いてみー

あと、VC++2005 がアホだからかもしれんけど
BattleCommands クラスの giveControl メソッド内に
goto Spell;
があるんだが、Useable.h の Spellクラスと混同されてるみたいで
エラーになっている

Field.cpp の380行目で
構文エラー : ';' が '}' の前にありません
とか出てくるけど、
それ以前に Field クラスの iventProcess メソッドは
近いうちに何とかしといた方が良さそうだな
471名前は開発中のものです。:2008/02/02(土) 14:00:18 ID:O0xDaWr+
gotoのラベルは全て大文字が基本だね
エラー処理以外で使うべきではないが…
472名前は開発中のものです。:2008/02/02(土) 17:38:17 ID:I9mkDQj0
4819と4996の警告を無視するようにオプション付けると少し幸せになるかもしれん。

VC++コンパイラが文字コードを知らないバグはゲイツも認識しているらしいが修正は次期リリースを待て、
とのことだったような気がしたが、ソースは無い。

というわけで、文字コード警告は無視。
atoiは時代遅れ、という警告も無視。

無視するのはいいが、全角文字みたいにマジで認識できない文字が入っていたとしても警告出ないので注意な。

ん?
それだと警告じゃなくてエラーがちゃんと出るやもしれんが…。

どうでもいいが、コンパイラが文字コードを判別できないってアホすぎるだろ。
473名前は開発中のものです。:2008/02/02(土) 17:39:12 ID:I9mkDQj0
おっとsage忘れたごめんよ。
4741:2008/02/03(日) 01:37:14 ID:hMoICJCS
みんなありがとう ><
もうちょっとVCがんばってみるわ。
ちなみに、お察しの通り2005 Express Editionです。
gotoのラベルの文字衝突なんか 自力じゃ絶対わかんないって Orz
壁にぶつかったら質問しに来るね。
ほんとありがと。
475名前は開発中のものです。:2008/02/03(日) 07:00:58 ID:NH1+l1Mk
Standard Editionの俺の足元にも及ばないぜ
476名前は開発中のものです。:2008/02/03(日) 13:23:59 ID:FIiEId7l
>>474
2008でてるのに・・・
477:2008/02/04(月) 07:07:12 ID:RaDIAkOA
2008か…
ダウソしてみる…
478名前は開発中のものです。:2008/02/04(月) 12:10:13 ID:Cc7CMG8W
>>477
俺はVisual C++ 2008 Express Editionを使っている。
使用頻度は高くないが……。
Visual C++ 2005 Express Editionと違って、
設定しなくてもWin32プログラミングが出来るのが強みだ。
479名前は開発中のものです。:2008/02/04(月) 20:36:01 ID:RaDIAkOA
2008ダウソしたらVC++9.0 って書いてあったけど、 Vc++6.0 の2005と どっちのほうが使ってる人多い?
それともどっちでも関係ない?
もしくは6.0で作っておけば9.0ならコンパイル通る?
480名前は開発中のものです。:2008/02/04(月) 20:38:55 ID:teV1oW9H
VC2005は8.0だよ
481:2008/02/04(月) 23:04:12 ID:RaDIAkOA
とりあえず2008をダウソして使ってみたんですが、
DxLibのHPのガイドにそって設定を終わらせて、白い点を表示させるだけのプログラムは正常に動きました。
が、肝心のDQもどきのコンパイルは通らなかったです。
エラーメッセージはこんな感じです。

------ ビルド開始: プロジェクト: test, 構成: Debug Win32 ------
コンパイルしています...
CommandBattle.cpp
リンクしています...
.\Debug\BattleField.obj : fatal error LNK1107: ファイルが無効であるか、または壊れています: 0x23817 を読み取れません。
ビルドログは "file://c:\Documents and Settings\はかせ\My Documents\Visual Studio 2008\Projects\test\Debug\BuildLog.htm" に保存されました。
test - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

いろいろググって見たところ、リンカが上手く動いてないっぽい?
482名前は開発中のものです。:2008/02/04(月) 23:22:27 ID:PaK1bp7B
VisualC++用 のライブラリ使ってる?
483名前は開発中のものです。:2008/02/05(火) 01:30:29 ID:YbsfZF5u
>>482
ちゃんとVC用のを使ってます><
サンプルは一応動くんですよねぇ…。

ファイルの追加のやり方が間違ってる?
484名前は開発中のものです。:2008/02/05(火) 01:54:57 ID:JnBm9OcX
>>1には悪いけどはかせでワロタ
485名前は開発中のものです。:2008/02/05(火) 01:57:31 ID:c8iqtCfM
>>483
↓これはもう試した?

プロジェクトのプロパティから、構成→全般
文字セットの欄 → 「マルチバイト文字セットを使用する」に変更
486名前は開発中のものです。:2008/02/05(火) 12:53:15 ID:2IEJhn/E
>>483
リンク時のエラーということは文字セットの問題じゃないな。
Releaseモードでコンパイルしてみたらどうだ。
確か、俺はDebugモードではライブラリが入ってなくて
実行時にエラーになった覚えがある。
Releaseモードだとデバッガが使えなくなるのが難点だが。

あと、481のログは全部のソースファイルをビルドしたやつか?
ソースファイルが1つのはずはないが……。

>ファイルの追加のやり方が間違ってる?
どのように追加したのか詳しく説明してくれ。
487名前は開発中のものです。:2008/02/05(火) 18:16:38 ID:Ehp9HBzC
>>485
それ2008からなくなったよ
488名前は開発中のものです。:2008/02/05(火) 18:32:15 ID:tL3mZ0gl
>>487
あるじゃねーかww

釣られてしまった
489名前は開発中のものです。:2008/02/05(火) 21:36:16 ID:YoGlW1vl
流れ無視で書くけど致命的なエラーだからBattleField.objってのに
単純に出力されてないとかロックがかかっててアクセスできないとか
リンカが想定してるobjではないとかそんな感じだとおも
つーかLNK1107もちゃんとヘルプで確認しろよ
490:2008/02/06(水) 09:36:50 ID:q7r4U2fq
みんなありがとう
体調不良で早く寝て、朝起きて出かける前に少しいじって、出先から携帯カキコ。
LNK1107のエラーはBCCでコンパイルしたobjファイルを削除してからビルドしたら解決した。
>>489の言うとおりヘルプ見たら解決できた。
ググるだけで、ヘルプ見るって考えが無かったよ orz

だけど、また違うエラーがでてきた。
家に帰ってからじっくりやってみる。
491:2008/02/07(木) 08:19:47 ID:+l6ry8aS
Useable.obj : error LNK2005:
"public: static char * global::c" (?c@global@@2PADA) は既に BattleField.obj で定義されています。
C:\Documents and Settings\はかせ\My Documents\Visual Studio 2008\Projects\test\Debug\test.exe :
fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。

現状のエラーは上の感じです。LNK2005が205箇所でてます。
エラー内容はヘッダを複数回重複して読み込んでる、ってことみたいなんですが、
#ifndef _CHARACTER_H_
#define _CHARACTER_H_

本体

#endif

とやって回避したつもりでしたが、できてない様子。
ヘルプを見ると
ヘッダに
extern BOOL MyBool;
cppソースに
MyBool = false;
と記述しろ、と書いてありましたが、記入すると

error C2146: 構文エラー : ';' が、識別子 'MyBool' の前に必要です。
とエラーが出ます。

現状報告でした。

492名前は開発中のものです。:2008/02/07(木) 08:37:14 ID:XCIeOzX/
#ifdef _MSC_VER
#define pragma once
#endif /* _MSC_VER */

ヘッダの重複を避けるなら先頭に↑とでも書いておけば。
493名前は開発中のものです。:2008/02/07(木) 08:37:58 ID:XCIeOzX/
#pragma once

だったorz
494名前は開発中のものです。:2008/02/07(木) 11:11:53 ID:4ZyDT5RJ
>>491
> cppソースに
> MyBool = false;
> と記述しろ、と書いてありましたが、

cppの方でヘッダインクルードしてる?
ってか、ソース晒したほうが早いような
495名前は開発中のものです。:2008/02/07(木) 12:04:04 ID:QgLjGbkn
>エラー内容はヘッダを複数回重複して読み込んでる、ってことみたいなんですが、
>#ifndef _CHARACTER_H_
>#define _CHARACTER_H_
>
>本体
>
>#endif
>
>とやって回避したつもりでしたが、できてない様子。
これ(インクルードガードという)は全部のヘッダにやる必要があるぞ。
面倒だったら大抵のコンパイラが対応している
#pragma once
でも良い。
ヘッダファイルにグローバル変数の定義とか
記述していると重複するのでこんなエラーが出る。

>>491
> cppソースに
> MyBool = false;
> と記述しろ、と書いてありましたが、記入すると
これはBOOL MyBool = false;
の間違いじゃないか?
多分MyBoolの実体をcppソースに定義する必要があるはず。

>error C2146: 構文エラー : ';' が、識別子 'MyBool' の前に必要です。
>とエラーが出ます。
MyBool = false;
の前には何がある?
多分読み込んでいるヘッダファイルの中身がおかしい。
このエラーだと;の抜けか?
496名前は開発中のものです。:2008/02/07(木) 13:24:18 ID:/8kqxVw7
BOOLのtypedefしたヘッダ読んでないんだろうよ
あとBOOLはfalseじゃなくFALSEだな
497名前は開発中のものです。:2008/02/07(木) 21:59:20 ID:tz5rxEMj
そういやー、Usable.h の
static int amount;
static Item *itemList;
に対する
int ItemList::amount = 0;
Item * ItemList::itemList = NULL;
の部分は、上のと似たような理由でコメントアウトしたような気がするなー
そもそも静的変数って 0 で自動的に初期化されるんだっけか?
4981:2008/02/07(木) 23:31:34 ID:+l6ry8aS
コンパイルとおったぁぁぁああああああああああああああああ!

>>491のエラーの原因は
ヘッダファイルで関数の中身を書いてたからみたいです。
たとえば
//* const.h
class global{
 public:
  static char c[64];
  static std::string msg;
};
char * global::c = 0;
std::string global::msg = "";
はダメで


//* const.h
class global{
 public:
  static char c[64];
  static std::string msg;
};

//* const.cpp
char * global::c = 0;
std::string global::msg = "";

と、ファイルを分ければおk。
…仕様なのかな?

ろだの調子が悪いみたいなので、あとでファイルあげます。
みんな本当にありがとう T◇T
499名前は開発中のものです。:2008/02/08(金) 00:51:30 ID:8VOzPRyE
>>498
静的メンバ変数はグローバル変数と似たような扱いになる。

common.hにてグローバル変数g_varが存在し、a.cpp, b.cppがそれぞれincludeしているとする。
a.cppがコンパイルされる→a.objにg_varが存在する
b.cppがコンパイルされる→b.objにg_varが存在する
最終的にリンクするときにg_varがバッティングする。
500名前は開発中のものです。:2008/02/08(金) 01:11:45 ID:MoDyMZB7
某ランドでは動くのにね
501名前は開発中のものです。:2008/02/08(金) 11:48:47 ID:sAmmpMO4
>>498
> //* const.h
> class global{
>  public:
>   static char c[64];
>   static std::string msg;
> };
>
> //* const.cpp
> char * global::c = 0;
> std::string global::msg = "";
こうではなくて、こちらが正しい。

//* const.h
class global{
 public:
  static char c[64];
  static std::string msg;
};
extern char * global::c;
extern std::string global::msg;

//* const.cpp
char * global::c = 0;
std::string global::msg = "";

つまり、ヘッダファイルに記述するのは
変数や関数、クラスの宣言であって、定義ではない。
これはBorland C++でも問題が出たと思うぞ。
多分Borland C++でコンパイルした時は複数のcppファイルで
ヘッダファイルをインクルードしていなかったから問題が起こらなかったのだろう。
502名前は開発中のものです。:2008/02/08(金) 12:50:49 ID:l8JQSvGp
>>501
デタラメ書くなよ
コンパイルできないぞ

あと配列をポインタに変換してexternさせると長さ失うからお勧めしない
503501:2008/02/08(金) 13:15:21 ID:sAmmpMO4
>>502
すまん、間違えた。
クラスのstaticメンバだったんだな。
普通のグローバル変数と勘違いしていた。
クラス自体が宣言だ。
> extern char * global::c;
> extern std::string global::msg;
これはいらない。501で言ったことは忘れてくれ。

あと、確かに>>502の言うように
//* const.cpp
char global::c[64];
としたほうがいいな。

それで気づいたのだが、
char * global::c = 0;
はバグだな……。
ここで配列の初期化はできないぞ。
しかもポインタで代入してるし……。
>>1にはコンストラクタを使えといっておく。
504名前は開発中のものです。:2008/02/08(金) 22:54:29 ID:1LutvMl1
ぼ、ぼ、ぼくも、C++でゲーム作るんだお。
すーぱーマリおだお。
http://members2.tsukaeru.net/ogawa/gameprogu2.html

さん、をつけて、ねっ。はずかしがりや、さんっ。
ぼ、ぼ、ぼくは、言語にふりまわされないんだからっ。えっへん、だお。
なんかー、言語名を冠につけるってはずかしいお。きゃっ。
すれちがっている。ミーンがすれちがっている。しゅーるだお。
ぼくね、IQ300なんだおって細君にいったら、絶対30だからっ!って言われたの。
1回転して、30になっちゃたんだね。って言ったら、ほんとに30だねって感心されたお。ぶぃっ!

なにがいいたいかってーと、まぁ、言語に振り回されんなや、ゲームなんて、たかだか、数値と画面を
更新してるだけのもんだで。まじでそんだけ。ぷっ。だよな。むずかしいことなんて、ひとつもないぜ。
まぁ、頑張れや。ぼ、ぼくは、いま、がんばれ屋さんです。がんばれ、1。
あんまりにも言語に振り回されている様が、恥ずかしかったので、まぁ、書き込んでしまた。

ぼくのオーバードライアブ(波紋)が、伝わっただろうか。夕陽のオレンジのオーバードライアブ(覚醒の波紋(あの裏側が目覚める!))
505名前は開発中のものです。:2008/02/09(土) 00:26:46 ID:41azRV47
C言語ぐらいわかってからゲーム作れよw

http://www.ascii.co.jp/books/books/detail/4-7561-1639-6.shtml
オススメ
506名前は開発中のものです。:2008/02/09(土) 00:35:32 ID:ucOS0Odn
http://pc11.2ch.net/test/read.cgi/gamedev/1034694683/
ここのオガワンってヤツだろ
507名前は開発中のものです。:2008/02/09(土) 02:08:54 ID:uWdwi6vy
ホームページに自分の画像を載せてるけどナルシストなのかな?

http://members2.tsukaeru.net/ogawa/index.html
508名前は開発中のものです。:2008/02/09(土) 02:17:17 ID:OEsnMtz3
>>504
あまりにも酷いソースでお茶噴いたww
509名前は開発中のものです。:2008/02/09(土) 21:35:27 ID:vKTa7a8F
>>504
宣言わろた
510名前は開発中のものです。:2008/02/10(日) 00:36:09 ID:Ze9YCxYS
>>504
> int TIME[3]; //基本的に、通番の変数は1番から使う。0番は無視。
クソワロタww
511名前は開発中のものです。:2008/02/10(日) 07:51:48 ID:DQWHtX5v
using namespace std; //?
5121:2008/02/11(月) 00:04:10 ID:vFv6OLzk
ろだの調子が悪いんじゃなくて、サイズオーバーでした Orz
VCに変えたとたんいきなり5倍くらいサイズが増えたみたいでびっくり。

コンパイル事態は通ったものの、会話するとエラーで落ちる。
どうやらhakase.hのStringクラスが悪さしてるみたいだけど、まだ原因の特定には至ってません。

IDEに慣れるまで少し時間はかかりそうだけど
とりあえずデバッグ機能は使いこなせるようになりたいな。

tp://sakurachan.dip.jp/up/src/up9332.lzh
513名前は開発中のものです。:2008/02/11(月) 02:35:47 ID:vFv6OLzk
あとなんか良く分からなくなってきたので質問なんですが

const.h
class global{
  public:
   static char c[64]; //これが宣言
};

const.cpp
char global::c[64] = ""; //これが定義

でいいんですよね?
ちなみにこのクラスはexternを知らなかったので
無理やりグローバル変数として使ってた。
グローバル変数って言っても、宣言無しで使いまわしてなるだけメモリを使わないように、って用途ですけど。
コンストラクタは一回も呼び出されないので、cppで定義しました。
もしクラスを生成するなら
const.cpp
char global::c[64];
global::global(){
 c="";
}
でいいのかな?
でもコンストラクタが呼び出されるたびに初期化されちゃう?


514名前は開発中のものです。:2008/02/11(月) 04:10:20 ID:pgtIh2EL
文字列と文字は違うからどちらもコンパイルできないよ
515名前は開発中のものです。:2008/02/11(月) 08:30:36 ID:aDsF8YDL
>>512
たぶん 拡張子 .ncb ってヤツが一番巨大だと思うんだけど、
.ncb は各々の環境で勝手に作られるから、配布時は不要っすね、
配布用からは消して圧縮すればいいよー。

あと、すごい昔から気になってたけど
はかせって何よ?
516名前は開発中のものです。:2008/02/11(月) 14:28:47 ID:UBlSMgHv
俺もそれが気になる。すげー気になるw>はかせ
517名前は開発中のものです。:2008/02/11(月) 14:37:13 ID:dALXccIV
>>481を見るとユーザ名みたいだけど
1の名前なのかな
518名前は開発中のものです。:2008/02/11(月) 14:50:42 ID:G+Qy0YvV
これからは>>1をはかせと呼ばせていただきます
519名前は開発中のものです。:2008/02/11(月) 20:01:42 ID:o0lcrIeV
NCBはインテリセンスのキーワードデータベースだな
STL使うと相当膨れる。
520名前は開発中のものです。:2008/02/11(月) 22:31:24 ID:ummcWhTi
余計なファイルを作らせない設定ってないんですか?
521名前は開発中のものです。:2008/02/11(月) 23:57:52 ID:HhQuAIPA
インテリ切れば?
522:2008/02/12(火) 00:22:15 ID:tLRoXqiP
はかせ は僕のあだ名です。
もっとも今もそうやって呼ぶ人はいなくなったけど、気に入ってるから使ってます。かたわれも同様。
本名ってのもアレだし。
>>512のエラーですがデストラクタで
delete [] restr;
をする時にエラーになってるっぽい。
危険だけどコメントアウトすると動くんだけどなんで?
コンストラクタはそれぞれ引数に char* FILE* std::string を取る三種類しかなくて
それぞれで char str[] と char restr[] を new してて
strとrestrの配列は同じ長さをとってあるはずなのになんで?

でも、まったく違うところが原因かも。
523名前は開発中のものです。:2008/02/12(火) 00:28:40 ID:IKtCZVK3
>>520

ツール(&T)→オプション(&O)→テキストエディタ→C/C++→全般→入力候補
自動メンバ表示(&M) [OFF]
パラメータヒント [OFF]
→OK
524はかせ:2008/02/12(火) 01:22:27 ID:tLRoXqiP
バグの原因がわかりました。
Stringクラスを作る時の引数が、空の文字列だとエラーになるみたいです。
とりあえずMsgCmd::Draw() 側ではじくようにしたんですが
本来はStringの方で何らかの処理をすべきですよね。

さて、どうやって処理するのが一番いいんだろう?
ゆっくり考えてみます。
さて、ようやく前に進めそうなのでモチベーションあがってきました!

↓とりあえず動くようにしたバージョン↓
tp://sakuratan.ddo.jp/uploader/source/date70346.lzh
525名前は開発中のものです。:2008/02/12(火) 04:46:08 ID:XWB4jY1F
おー、久々にビルドしてみたら、スゴい進化してるではないか
ルーラとかまで実装されてんのな

画面上のウィンドウを生成するところは
装備ウィンドウやステータスウィンドウごとに力技で作ってるように見えるけど
ウィンドウ生成部分は、もっと部品化していいんじゃないっすかね?
基本的に # とか % で長方形を作ってるだけっしょ?
難しいんかな?
526名前は開発中のものです。:2008/02/12(火) 18:37:02 ID:oGlnsN82
解凍した中のDebugフォルダの中のtest.exeクリックしたら、
「デバッグ」
「GameData\Useable\SpellList.csvが開けませんでした。」
が出て、プログラム終了してもプロセス残っててCPU100%になるんだけど、なんで?
これこっちでVC入れてコンパイルしないと実行ファイル試せないの?
527名前は開発中のものです。:2008/02/12(火) 19:09:02 ID:fyhPt8Zk
.\GameData\Useable\SpellList.csv
を用意してやれば
528はかせ:2008/02/13(水) 11:01:51 ID:husK91Sv
>>526
解凍したフォルダにdebugフォルダとGameDataフォルダがあると思います。
GameDataフォルダをdebugフォルダに入れてからtest.exeを起動するとできると思います。
プロセスが残ってる件は、これからやっつけます orz
529はかせ:2008/02/15(金) 08:08:59 ID:Vnl/Si0U
城などの入り口の位置を修正しました。
大きい扉を実装しました。
移動中に【e】を押すとエンカウントを無効にできます。

tp://sakuratan.ddo.jp/uploader/source/date70703.lzh

岬の洞窟に入った時に二人目以降のグラがおかしいです。
原因は分かっているので、それを上手いこと修正したいと思います。
530名前は開発中のものです。:2008/02/15(金) 09:04:54 ID:5vT1hdTU
インテリoffってどこの馬鹿だよ…
531名前は開発中のものです。:2008/02/15(金) 19:41:30 ID:mWyYNOjz
本人が余計なものと認識しているんだから仕方ない。
532名前は開発中のものです。:2008/02/15(金) 19:53:52 ID:Rkucko5s
>>531
インテリ機能が邪魔なわけじゃなくて、.ncbを消したいだけなんだろ
バッチ書くとかビルドイベントいじるとかいくらでも方法はあるだろうに・・・
5331:2008/02/16(土) 02:56:55 ID:ArwSTL4u
ごめんなさい。インテリOffにした馬鹿です。
邪魔とかうざいとかそういうの以前に
nbcがなんなのか、インテリセンスが何なのかまだ理解してないので
その辺はご理解くださいませ。

がんばって勉強しなくちゃなー

534:2008/02/16(土) 03:58:26 ID:ArwSTL4u
マップ切り替え時の二人目以降のキャラクタの描写をなんとかしました。
リレミトを使うと落ちるバグを修正しました。

tp://sakuratan.ddo.jp/uploader/source/date70839.lzh


まだVCになれない… Orz
535名前は開発中のものです。:2008/02/16(土) 06:06:27 ID:CcpxY//e
ttp://homepage1.nifty.com/rucio/main/nyumon/nyumon5.htm
インテリセンスの機能はここに書いてある。
(C++の場合もうちょっとしょぼいけどw)
536:2008/02/16(土) 13:28:46 ID:ArwSTL4u
>>535
ありがとうございます。
たしかにこれ切ったら馬鹿って言われるなー Orz
537名前は開発中のものです。:2008/02/16(土) 21:32:02 ID:CmBL2sVg
vsよりイクリプスの方がインテリ強くね?
538名前は開発中のものです。:2008/02/17(日) 13:14:43 ID:aHSAdthd
VCに比べてCDTがショボいのは定説
WindowsアプリでVS使わない奴は頭湧いてる
539名前は開発中のものです。:2008/02/17(日) 14:23:07 ID:Cg2VWlwZ
その辺の主張はム板でやればいいと思うよ
540名前は開発中のものです。:2008/02/17(日) 17:20:33 ID:rRXJwyg0
ム板にも持ち込まなくて結構。マ板でやれ。
541名前は開発中のものです。:2008/02/17(日) 21:35:01 ID:XOQbsCvL
補完使ってると馬鹿になるよ。
542名前は開発中のものです。:2008/02/18(月) 00:28:07 ID:BBbqDL5F
↑こういう奴に限ってコンパイル通らないソースをオープンソースのプロジェクトにコミットしたがるから困る
543名前は開発中のものです。:2008/02/18(月) 00:36:07 ID:08DD/JC7
有名な哲学者も文字なんか使うと脳が退化するとか言ってたからねw
544名前は開発中のものです。:2008/02/18(月) 01:08:34 ID:vUYQTiug
小説読まずに漫画ばかり見てると馬鹿になるとも言われてたなw

これについてだけは当たってなくもない気がするが
545名前は開発中のものです。:2008/02/18(月) 01:14:50 ID:UpTmLwcj
VCのインテリセンスはVBやVC#が神すぎるからしょぼく見えるんだよね
546:2008/02/20(水) 08:18:05 ID:V7ld5O9y
現在新機能実装中なわけですが、作業が難航してます。
FieldMapのMapObj[i]をField.party->iventFlag[i]に対応させて表示/非表示を切り替えたかったのですが
FieldMapクラスで表示/非表示を切り替えさせようと思ったけど

check(PlayerParty *party)
として引数にポインタを取るか
あらかじめFieldMapクラスにポインタ変数を格納しておくか
PlayerPartyクラスをグローバル化してしまうか
悩んでます。
どっちにしてもFieldMapクラスにPlayerPartyクラスをヘッダを読み込ませないとだめですよね?
547名前は開発中のものです。:2008/02/20(水) 10:01:13 ID:eusdqHEV
iventじゃなくてeventにしたほうが
548名前は開発中のものです。:2008/02/20(水) 18:18:28 ID:a8QXZ2ge
いくらイージス艦のレーダーが凄いからって
戦時でもないのに常に最高の警戒レベルで巡航していることなんか有り得ないわけで…
549名前は開発中のものです。:2008/02/20(水) 18:24:11 ID:V7EDVY0P
そうは言ってもあれじゃ中国や朝鮮が船で攻めて来たら何もできずに沈められちゃうよ
550名前は開発中のものです。:2008/02/21(木) 02:26:57 ID:Wf5Zb2+X
漁船と衝突してイージス艦が沈んだら面白かったのにw
551名前は開発中のものです。:2008/02/21(木) 04:48:12 ID:vbUxjJ5P
最強の楯は殴るのにも最強でした
552名前は開発中のものです。:2008/02/21(木) 07:03:01 ID:R8XN2vkw
デュエル バスター ブリッツ
553名前は開発中のものです。:2008/02/21(木) 20:21:58 ID:fJ0DkPYJ
>>546
アクセサ書くってのはどうだい?
ソース見てないから最適解かどうかは知らんが。
554名前は開発中のものです。:2008/02/21(木) 21:52:45 ID:iy0K8pSX
class PlayerParty;
class FieldMap
{
 check(PlayerParty *party);
 いろいろ…
};

でいいんじゃないか。
555名前は開発中のものです。:2008/02/21(木) 21:53:00 ID:0C4L3kC+
マップオブジェクトの表示制御に必要なのは
パーティ情報じゃなくて、イベントの状態なんだから
わざわざパーティ情報の扱いを考慮するんじゃなくて
フィールドマップはイベント情報だけ受け取るべきじゃね?

そうでないと、
フィールドオブジェクトとパーティ情報の結合度が強くなり過ぎて
ちょっと気持ち悪い感じがする
(ドラクエだったら、パーティ情報 = フィールドの状態
 で構わないかもしれないけどね・・・)
556:2008/02/21(木) 23:28:46 ID:9ZwlGJuJ
たしかに あんまり依存関係を強くしたくないのはありますね。
イメージ的にこうやってFieldクラスがFieldMapクラスとPlyartPartyクラスを見て仲介するようにしたかったのかも。

          Field class
    ┌─────┴─────┐
PlayerParty class      FieldMap class
                      │
                 MapObject class

ただしPlayerPartyクラスにイベントのフラグが入っていたため
FieldMapの中にあるMapObjectクラスから、何番のフラグがたっているかは見えない、っていうのが問題でした。

こうなると Fieldクラスで
if(PlayerParty.getIventFlag(FieldMap.MapObject.getEventFlag())){
 //以下普通に処理

みたいな感じに処理するふうになるのかな?
557:2008/02/21(木) 23:29:37 ID:9ZwlGJuJ
あと
×
 ivent

 event

は、めっちゃ恥ずかしくて死にたくなった。
558名前は開発中のものです。:2008/02/22(金) 00:45:22 ID:/6yYYp4N
ええー
559名前は開発中のものです。:2008/02/22(金) 12:19:02 ID:gAchg6ey
>FieldMap.MapObject.getEventFlag()
POD型ではないのにpublicなメンバ変数があるのは変だと思う。
インスタンスの利用者が階層を深く掘るのが当たり前な実装はOOPじゃないし。
かといって、万能クラスを作るのもおかしい話だけど・・・
あとインスタンスがPascal記法ってどうなの?

とここまで書いてからソース読んでみた。
いくら擬似コードでも実態とかけ離れすぎだろww
publicになってないし、インスタンスは小文字始まりの名前になってるし・・・

むしろ気になったのは
・コンストラクタで初期化じゃなく代入をしてる
・あちこちにハードコーディングしてる
・継承しててもデストラクタがvirtualじゃない
・enumを使わず#define使ってる
・関数に対するコメントが無い(doxygenやxml code commentのような)
・ローカル変数にポインタか参照おけばいいのに"character[ci]->getDs()->"のような記述が沢山並んでいる
・あちこちで動的なメモリ確保を行っているにも関わらずスマートポインタを使っていない
・警告レベルが最大じゃない

こういうところ
560名前は開発中のものです。:2008/02/22(金) 14:30:33 ID:ik+aPlRF
>>559
まぁ、>>1はC++初心者のようだからな。
C++の標準記法を知らなくても不思議じゃない。

補足しておこう。
>・コンストラクタで初期化じゃなく代入をしてる
多分>>1は初期化リストを知らない。
初期化リストのほうが分かりやすいし、constな変数、参照は
これでしか初期化できない(代入できないため)。

>・継承しててもデストラクタがvirtualじゃない
デストラクタがvirtualじゃないと、
基底クラスのポインタに派生クラスのポインタを代入して
ポリモ−フィズムをしているとき、
オブジェクトを破棄するときに派生クラスのデストラクタが呼ばれない。

>・enumを使わず#define使ってる
#defineは時代遅れ。コンパイラが処理していないので。
できればenumやconstを使う。

>・ローカル変数にポインタか参照おけばいいのに"character[ci]->getDs()->"のような記述が沢山並んでいる
ローカル変数にポインタか参照を代入して、
hoge = character[ci]->getDs();
hoge->hoge();
のように呼び出したほうが読みやすい(し、関数を不必要に呼ばないので高速)
ということを言っている。
561名前は開発中のものです。:2008/02/22(金) 14:33:59 ID:ik+aPlRF
続き。
>・あちこちで動的なメモリ確保を行っているにも関わらずスマートポインタを使っていない
動的メモリ確保は解放し忘れてしまうので、
参照が無くなった時に自動的に解放してくれる
boost::smart_ptrのようなスマートポインタを使うのが基本。
標準のスマートポインタにはstd::auto_ptrがあるが、使い方が特殊でオススメしない。
使えるところなら、std::vectorを使うのも良い。

>・警告レベルが最大じゃない
警告を無視するのはバグの元。
むしろ、「もっと俺に警告をくれ!!」のような勢いで。
562名前は開発中のものです。:2008/02/22(金) 20:29:49 ID:zYdRz8UL
あんまり一気にダメ出ししちゃうと はかせタンが凹んじゃうから
週に1個ほど、ちょいダメ出しにしといてあげて
オレはそうしてる

まぁ、はかせタンの向上心なら幾らダメ出ししても学習しそうだけど
563名前は開発中のものです。:2008/02/22(金) 20:38:44 ID:HEZBKFdo
ダメ出しでも実力自慢じゃなくフォロー入ってるあたり良スレ
564559:2008/02/22(金) 21:37:02 ID:sRPpWiqL
ソースはそこそこ綺麗だったよ
このスレに載る疑似コードがいつもショボかったから、upされてるのも当然…と思ってたんで意外だった

>>562
この先原因不明のバグでモチベーションダウンさせるよりはいいかなと思った。
少し反省している。
565:2008/02/22(金) 22:55:08 ID:OojD/ESp
みんなのヌクモリティで前がにじんで見えない…
みんなありがと

ダメだしが多いのは、へこまないのは嘘ですけど
消化しきるのに時間がかかるので、レスが遅くなっちゃって申し訳ない気持ちが強いです。Orz
ご飯食べてお風呂入って続きがんばります!

みんな ほんとに ありがとう!

追伸
またアク禁の食らいました。
なんでこんなに喰らうんだろう?
普通そんなもん?
566名前は開発中のものです。:2008/02/23(土) 02:05:15 ID:bnLD25M9
>>565
俺も最近くらった。一日でとけたけど。
567名前は開発中のものです。:2008/02/23(土) 06:56:35 ID:HSvKNA24
なんだ、DQIをつくってるのかと思ったらIIIか。
また大変なところを選んだなあ。
568名前は開発中のものです。 :2008/02/23(土) 08:37:01 ID:N04xmAge
>>1 に影響されました
僕はDQIIをC#で作ろうと思います!
569名前は開発中のものです。:2008/02/23(土) 12:16:38 ID:OuVO6QWF
じゃ 俺はDQ4にするか
570名前は開発中のものです。:2008/02/23(土) 12:57:51 ID:x1Ouesp5
俺はMASMでFF11を作るぜ!!
571名前は開発中のものです。:2008/02/23(土) 13:11:06 ID:F+CAkEqg
じゃおれDQ1をC++で
572名前は開発中のものです。:2008/02/23(土) 14:18:01 ID:Oy3gPfcf
果たして何人生き残れるのか・・・
573名前は開発中のものです。:2008/02/23(土) 14:39:52 ID:CN8IHKwV
アセは死ねるだろw
574名前は開発中のものです。:2008/02/23(土) 17:13:08 ID:yJaKrN6D
FCのドラクエは殆どアセンブラだろうが…FF11と言う所に大物の器を感じるぜ。
575名前は開発中のものです。:2008/02/23(土) 19:39:11 ID:5sJEeE+q
俺は綾織で
576名前は開発中のものです。:2008/02/23(土) 23:32:45 ID:3EN2w25Y
C++から汗のソース作れるけどね。
577名前は開発中のものです。:2008/02/24(日) 01:02:43 ID:l0RmX92h
568です、2008は持ってないので、VS2005 C# Framework2.0でやります!
DirectDrawはとりあえず使わないで、やります
動くものが出来たら別スレを立て・・・るまでもないですね、
適当にうpしていきます

>>1さんに負けずにやっていきたいと思います
578名前は開発中のものです。:2008/02/24(日) 03:56:21 ID:nHWrFw/U
>>576
全然意味合いが異なるのに何故得意気になって言ってるんだ?
キモイヨー
579名前は開発中のものです。:2008/02/24(日) 09:09:13 ID:ATsuTWws
>>576
C++コンパイラの仕組みを理解して無いだろ。
作れないコンパイラがあったら教えて欲しいわ。
580名前は開発中のものです。:2008/02/24(日) 09:55:26 ID:lvcDUo5f
if(>>576)
{
 std::cout << "作れないコンパイラがないなら正しいだろ。" << std::endl;
}
581名前は開発中のものです。:2008/02/24(日) 10:39:19 ID:pf6g1kUn
ソース見たよ。
他の人が言うように、初心者にしては上出来。
動くとやっぱり感動するね。

>556
とりあえずそれがいいんじゃないかな。ベストな解かどうかわからないけど、
グローバルにするよりは確実にbetter。

全体に関していえるけど、変数のスコープをできるだけ狭くしたほうがいい。
理由はバグを減らすため。またデバッグを楽にするため。例えばある変数の値がおかしくなっていたとき、
スコープが狭いと調べる範囲が少なくてすむ。広いと大変。

なおローカル変数、非staticメンバ変数、staticメンパ変数、グローバル変数 の順にスコープが広くなる。
グローバル変数はよっぽどのことがなければ使わないこと。

class global{
public:
static std::string msg;
static char c[64];
};

これは使用している各クラスで定義できないの?
582581:2008/02/24(日) 10:47:13 ID:pf6g1kUn
あとデバッガはちゃんと使えてる?

以下のようにすると、VSでデバッグ時に画面下の「出力」欄に出力される。
要所要所で変数の値とかを出力すると楽だよ。

#ifdef _DEBUG // デバッグ時のみ出力
int value = 3;
char buf[128];
sprintf(buf, "値=%d\n", value);
OutputDebugString(buf); // デバッグ出力するWin32API
#endif

//出力欄
//値=3
583581:2008/02/24(日) 10:54:51 ID:pf6g1kUn
>これは使用している各クラスで定義できないの?

例えば以下の部分ではローカル変数で十分だよね。多分。

void BattleField::battleProcess()
{
global::msg = party->getMember(0)->getName();
global::msg += "たちは にげだした!";
coms.getMsgCmd()->setMsg(global::msg);
}
584:2008/02/25(月) 20:20:58 ID:D9lkRrNk
土日は風邪で寝込んでました。
今日もこれから寝込むと思います。
目の前が見えなくなったのは涙じゃなくて熱の所為だったのかもしれません(ぁ

寝付けないときに少しずつ手をつけようと思ったんだけど
自分が何をやってるのかわからなくなってしまう感じで作業が進みませんでした。

一緒になにか作ってみるって名乗りを上げてくれた方、一緒にがんばりませう。
やっぱりライバルがいたほうがモチベーションあがるしね。
585名前は開発中のものです。:2008/02/25(月) 23:38:57 ID:sR23oxXi
>>584
お大事に!!
586名前は開発中のものです。:2008/02/25(月) 23:57:44 ID:8s3HJfM7
>>584
本当は、ロジックを真似した方が早いと思うんですが、
まったく同じじゃ意味がないですし、言語も違うことですから、
まずは C#でどれだけ出来るのか、ってことを意識しつつ、やっていこうかなと思ってます
物理層がやることって同じなんですけど、今は、FC DQII をプレイして、動きを調べています
主に、ビルダーとC#で、VC++はわかりませんが、よろしくお願いします
587名前は開発中のものです。:2008/02/26(火) 02:39:50 ID:4hK7dCf/
>>584
お体お大事に
僕も今年の初めごろインフルエンザにかかって数日寝込みましてね
体調がすぐれないときは難しいことを考えるとgdgdになるので
回復に努めたほうがいいと思う…

寝付けないときは僕はようつべやニコ動を見てましたね
最近はゲームのプレイ画面などをキャプチャしてる人も多くて
検索すると同人ゲームや自作ゲーム、制作講座、開発過程なども
ちらほらとアップロードされてるみたいです
手軽に見られてなかなか興味深いです
588名前は開発中のものです。:2008/02/26(火) 14:11:57 ID:aeOOlTFX
やばい、俺スレ違いすぎる・・・
二年間学校でcとjavaを習って中途半端に覚えて
RPG作ろうと思った俺が馬鹿だったぜ。
あとapiのサイト見てウィンドウの出し方とか
ちょっとづつ勉強してるが大半イミフだぜ。
589名前は開発中のものです。:2008/02/26(火) 15:41:39 ID:DQfrVq4A
プラットフォームAPI使うより、簡単なライブラリ探して作ったら?
590名前は開発中のものです。:2008/02/26(火) 16:20:44 ID:MEOj2U2m
>>589
ID:DQおめ
591名前は開発中のものです。:2008/02/26(火) 20:10:21 ID:DQfrVq4A
あり
記念に俺もDQ作るかなw
592名前は開発中のものです。:2008/02/26(火) 22:07:55 ID:HLcSYJXY
MDXあぼーんされたしGDI+だとBitBltすらないからなー。
XNAに逃げるか、DllImport連呼か、C++/CLIか。
593名前は開発中のものです。:2008/02/26(火) 22:57:31 ID:gUk7N6wJ
それでもまだ非C/C++の中では恵まれてるけどな
自分でラッパー書かなくてもSlimDX(非公式MDX)とかSDL.NETとか探せばいろいろあるし
594オワンワン:2008/02/26(火) 23:02:50 ID:CncrBCpj
ライバルがきましたよ。
ぼくはね、関数とかクラスとかポインタとか構造体とか
仮想関数とかローカル変数とかを一切使わないでゲームを作ります。
必要不可欠でないことをがんばっている1さんとは好対照ですね。
ま、さ、に、ライボー。
更新してないんでリンクは貼りませんが、進展したら貼りにきますよ。
よろしこっ。ぼく、おじさんだけど、、、なかよくしてね。ぶちゅー。
おれの、おれの屍をこえていけよ、わかうどよ。ふっふっふ。
「未来の人よ 僕を思い出してくれ 僕は 王者の滅びる時代に生きていた」
「未来の人よ 僕を崇めたたえよ 僕は あなたたちよりも未来の時代を生きていた」
だれだ!?
タキシードのロングハットのコケティッシュな、、、ぼく!?
「不可思議という点において、この世界の不可解という点において、みな平等ではないかね」
、、、
「形而上の話をしてるわけではありません。形而下において、、、ふふふ、
僕は何百年先を生きているんだろう!ふあははー」
、、、
「ぼくはぼくはぼくは、、いや、結果がすべてか、結果をだせてない僕は、
まだ、天才ではないか、、、」
、、、
「はぁ、遠いね、境地は遠いね。凡人とは違って僕には見えているが、遠い」
595名前は開発中のものです。:2008/02/26(火) 23:22:32 ID:oa0uM2zA
>>594ふむふむ、なるほど、ほほぉ〜。それでそれで!?
596名前は開発中のものです。:2008/02/28(木) 19:08:36 ID:SwMCkkQw
いちはにげだした。
しかし(ry
597:2008/02/29(金) 00:27:49 ID:PbvqMElj
まだ全部直ったわけじゃないけど報告age

とりあえずdefineはconstに直しました。
デストラクタも仮想関数に変えました。(なんか上手く動かないって悩んでたことがあったけどこれが原因だったのか?
コメントもこれからなるべくつけていきたいと思います。(全部つける前に心が折れそうです。
初期化リストも一箇所だけやってみました。
実はこれもっと先に知っておきたかったことだったかも。
引数無しのコンストラクタと引数ありのコンストラクタの二つ用意しなくちゃいけないって悩んでたんですよ。Orz
親クラスのコンストラクタも明示的に呼び出したいと思ってたし…。
ま、あとの祭りなんですが。 Orz

スマートポインタ、っていうかboostなんですが、
じつは<>の意味が分からなくて手をつけられなかったんですよ。
<>でぐぐるわけにもいかず途方にくれていたんですが
ようやくクラステンプレートと言うものだったことが判明。
コンテナクラスもなんとなくは理解できたのですが
今から組み込むのは結構大変そうだなぁ…
とりあえず多重deleteはNULL代入で回避できそうっていうのは分かりましたが、
del忘れは回避できないですよね。
でもハンドルの開放し忘れもおんなじような問題がおこるので、
ある程度は仕方がないのかも、と割り切ってます。(いや、ダメだろ

*****************************************************************
イベントアイテムを使ってイベントを起動できるようになりました。

アリアハンの右の女にゴールドオーブを使うとイベント起動します。

現状、はなす、とアイテム使用の両方同時に起動スイッチに指定することはできますが
起動方法によって起きるイベントを別々にすることができません。


…あ、警告レベル変え忘れてたOrz
598名前は開発中のものです。:2008/02/29(金) 00:33:14 ID:PbvqMElj
おまけにURLも貼り忘れた… Orz

シャワー浴びてくるOrz
p://sakuratan.ddo.jp/uploader/source/date72377.lzh
599名前は開発中のものです。:2008/02/29(金) 00:40:35 ID:cTbpZwm+
:p
600名前は開発中のものです。:2008/02/29(金) 11:44:13 ID:DrPXVtO6
むしろあれだけのコードをよくコメント無しでやってられたな。
今の俺はコメントだらけだよ
601名前は開発中のものです。:2008/02/29(金) 12:28:22 ID:sp+Hir2Y
まだ11月に作り始めたばかりだから
>>1の頭の中にコードが入っているのだろう。
ただ、これからプログラムはどんどん複雑になっていくので、
コメントを入れるようになったのは良かったと思う。
602名前は開発中のものです。:2008/02/29(金) 14:36:59 ID:jGuhamLn
自分のソース見てるとどうでもいいコメントが多くて困る
603名前は開発中のものです。:2008/02/29(金) 16:14:12 ID:l3/kMfiZ
MDXあぼーんなのか?
XNAはWinProcもフックできないし、
使い難くてしょうがないよな、、
604名前は開発中のものです。:2008/02/29(金) 18:55:48 ID:P7uRmJkm
>>603
MDX2.0はベータの段階で消滅済み。
MDX1.1のランタイムは残ってるけどサンプルはなくなった。
605名前は開発中のものです。:2008/03/01(土) 00:45:34 ID:w3ZGIR9q
>>603
SlimDX使え
つか流れ読まずにスレ違いって…
606603:2008/03/01(土) 01:08:55 ID:PBLPyAh9
スマソ、吊ってくる
6071:2008/03/05(水) 00:07:57 ID:XbOvO3YX
久しぶりのソースうpです。
tp://sakuratan.ddo.jp/uploader/source/date73110.lzh

*街から出ちゃうと入れないかも。
入り口に立っている女に「はなす」かゴールドオーブを「つかう」とイベントが起動します。
話したときとアイテムを使ったときでイベントを分岐できて
アイテムを使ったときにイベントフラグをオンにして
それに連動してイベントが消えるようになりました。
608名前は開発中のものです。:2008/03/05(水) 19:39:27 ID:/lpfwC1N
ここまで整理もせず手広く機能増やし続けられるのはある意味凄い
609名前は開発中のものです。:2008/03/05(水) 22:09:51 ID:L493nIER
>>1さんハァハァ
610名前は開発中のものです。:2008/03/06(木) 00:31:36 ID:RMi8Rb30
真似して作ってみたがタイトル表示まで出来たら秋田
611名前は開発中のものです。:2008/03/06(木) 00:58:35 ID:7dwVQ00B
>>610
DQ3のタイトル画面なら文字だけじゃねーかw
612オワン:2008/03/06(木) 03:01:49 ID:+3hA2EkN
報告忘れてました。更新しました。インデントがおかしいのは
VC++のせいです。
http://ogawapc.myhome.cx/gameprogu2.htm
613名前は開発中のものです。:2008/03/06(木) 07:41:01 ID:cGcDTNaF
<code></code>で囲んで
タブをスペース四つに置換すれば正常に表示されるはずなんだが。
おめーがタブとスペースごちゃ混ぜで打ってるのが原因だ。
614名前は開発中のものです。:2008/03/06(木) 07:53:07 ID:cGcDTNaF
<pre class="code"></pre>のほうがいいか。
615名前は開発中のものです。:2008/03/06(木) 15:15:17 ID:eBnb1Mw9
>>612
本人かどうかは知らんがもうやめて
そんな糞コード真に受ける奴が増えたら世の中に良くない
616名前は開発中のものです。:2008/03/06(木) 17:19:40 ID:htNDRL9Y
VCカワイソス
6171:2008/03/07(金) 00:57:17 ID:rq1yy0In
整理はちょっとずつ… じゃダメですよね Orz
実装を進めていくうちにコメントつけたり、無駄なコードを減らしたりはしてるんですがまだまだです。
せっかく見てくれる人がいるんだからもっと見やすくしなくちゃいけないのは分かってるつもりなんですが
モチベーションと時間が… Orz

static なメンバ変数を初期化で分からないことがありまして。
関数の戻り値を初期値でセットしたいんですが

//DQI..hより
class VisualEffect{
  static int hBlendGraph;
(略)

//Effect.cppより
int VisualEffects::hBlendGraph = LoadBlendGraph("GameData/EffectData/BlendGraph.bmp");
(略)

これでコンパイルは通るけど、起動すると動きません。
なんか無限ループに入っちゃってるような雰囲気。
メイン関数で初期化してあげるべきでしょうか?
それとも他に方法があるのでしょうか?

*********************************************
レベルアップで呪文を覚えるようになりました。

tp://sakuratan.ddo.jp/uploader/source/date73357.lzh

警告レベルを最大にしたら警告いぱーい Orz
がんばって退治しなくちゃな。。。

618:2008/03/07(金) 02:08:23 ID:rq1yy0In
上のstaticの問題、解決しました。
c++の問題ではなくDxLibの問題でした。
DxLib_Init()を呼び出す前にGetBlendGraph関数を呼び出せないみたいです。
とりあえずエフェクト関連のクラスを初期化する関数を作って、メイン関数でDxLib_Init()後に呼び出す事にします。

現状のバグですが、フィールドで普通のアイテムや呪文が使えません。
ホイミを使ってもルーラを使っても
しかし なにもおこらなかった
と表示されます。

原因は分かったので直しておきます。
619名前は開発中のものです。:2008/03/07(金) 02:11:20 ID:QhGOdilr
その hBlendGraph は main 関数よりも前の段階で初期化が行われるから
DX ライブラリの初期化より前に LoadBlendGraph が呼ばれることになる。
しかもどの翻訳単位から初期化されるかは決まってない。
準備が整う前に関数を呼び出したりしたら、上手く動きそうも無い。

基本的に static を多用するのは良くないよ。C++の本読んで勉強しる。。
620255:2008/03/07(金) 07:10:26 ID:jWW/3mmy
>>617
そういう場合には、デザインパターンのシングルトンパターンってのが使える。
具体的にいうと、
class VisualEffect{
  static int hBlendGraph = NULL;
(略)
としておいて
static int VisualEffects::GetBlendGraph(){
  if(hBlendGraph == NULL){
    hBlendGraph = LoadBlendGraph("GameData/EffectData/BlendGraph.bmp");
  }
  return hBlendGraph;
}

とすれば、VisualEffects::GetBlendGraph()を呼び出した時点で
1回だけ初期化が行われる。

でもゲームだと、1回だけとはいえメインループで重い処理
をやっちゃうとアレなので初期化関数でやるのが正解だと思う。
621名前は開発中のものです。:2008/03/07(金) 10:56:57 ID:1WoBL1I/
>>620
static constじゃないのにクラス定義で初期化は不可能。
ポインタでないのにNULL判定をするのはおかしい(cppではNULL=0)。

そもそもこれをシングルトンパターンと呼ぶのが間違いな気がする
622名前は開発中のものです。:2008/03/07(金) 12:38:13 ID:QLw1djJn
シングルトンってコンストラクタをprivateにしたやつでインスタンスが1つなのが保証されてるってやつじゃなく?
1つだけに限定されるから、static要素にする必要もないわけだおね。
623620:2008/03/07(金) 19:49:28 ID:jWW/3mmy
>>static constじゃないのにクラス定義で初期化は不可能。
そうでした。Javaとごっちゃになってしまいました…orz

>>ポインタでないのにNULL判定をするのはおかしい(cppではNULL=0)。
ハンドルもNULL判定するよね?if(m_hWnd == NULL)とか

つか、LoadBlendGraphがNULL返したらどうするつもりなんだ、俺。
ごめん、このコード忘れて。

>>622
元がstaticだったからそのままにした。深く考えてなかった。忘れて。
624名前は開発中のものです。:2008/03/07(金) 21:53:13 ID:hQbuz1ma
>621
>static constじゃないのにクラス定義で初期化は不可能。
constは関係ねーだろ。
静的オブジェクトが生成されるタイミングほんとにわかってんのかよ。
6251:2008/03/08(土) 00:44:08 ID:D+4Cnx/D
言いたいことはなんとなく伝わってきたので大丈夫です。
たしかにシングルトンパターンをイメージしてました。
全部staticでできてるクラスってシングルトンパターンと変わらない気がしませんか?
仮にインスタンス化しても全てのメンバ変数はどのインスタンスから見ても同じものになるから。

メモリの無駄遣いになりそうな感じはありますが。

やっちゃいけないstaticの使い方をしているところは確かにあります。
FieldMapクラスのms_xとms_yです。
いけない理由も分かってるつもりです。
どうやってstaticじゃないメンバ変数に変えようか悩んでて、そのまま忘れて放置プレイになってました。

今、手をつけてる箇所の実装終わったらそこ修正してみます。
626名前は開発中のものです。:2008/03/08(土) 01:36:29 ID:0CP0oXDr
1の熱情に感動した。
こまめにソースアップしてるとこも好感度高いよ高いよー。
627名前は開発中のものです。:2008/03/08(土) 09:21:15 ID:U6M1Sa0y
619の言うように、staticメンバ変数の多用はよくない。シングルトンパターンも多用しないほうがよいよ。
理由は分かってると思うけど。581も参照のこと。

まずはstaticじゃなきゃ実現できないのかよく考えること。
おそらくstaticじゃなきゃいけない場合はほとんどないはず。
自分はC++職業プログラマだけど、staticメンバ変数を使うことはまずない。

面倒くさいけど、まだまだ規模が大きくなるんだから
しっかりやっといたほうがいいよ。
大きくなればなるほど痛い目みるから。
628名前は開発中のものです。:2008/03/08(土) 09:41:50 ID:U6M1Sa0y
VisualEffectsクラスについてアドパイス(提案)

1.まずメンバ変数、メンバ関数を全て非staticにする
メンバ変数の初期化はコンストラクタで行う。

2.VisualEffectsクラスのインスタンスをどこで作成するか考える。
プログラムの保守性の観点からは以下の順が良い。
 (1)VisualEffectsのメンバ関数を呼び出してる部分で毎回作成する。
 (2)VisualEffectsを使用するクラスのメンバ変数とする
(3)WinMain()で作成して、VisualEffectsを使用するクラスに参照orポインタで渡す
 (4)singletonパターンを使う。(詳しくは後述)

インスタンスの生成回数は以下のとおり
(1) >= (2) >= (3) = (4) =1
まず(1)から順に試してみて処理速度に問題があれば(3)か(4)にすればいい。
629名前は開発中のものです。:2008/03/08(土) 09:51:02 ID:U6M1Sa0y
Singletonパターンを使ったVisualEffectsクラスの例

VisualEffects.h// ヘッダファイル作った方がいいよ。

class VisualEffects{
int GrHandle1;
int hBlendGraph;
// コンストラクタをprivateに
VisualEffects();
public:
void CaptureScreen();
void BlackOut();
void SpellFlash();
void EffectErase();
       static VisualEffects& GetInstance(); // ここがポイント
};
630名前は開発中のものです。:2008/03/08(土) 09:51:58 ID:U6M1Sa0y

--VisualEffects.cpp---
// コンストラクタで変数を初期化
VisualEffects::VisualEffects(void)
: GrHandle1(-1), hBlendGraph(LoadBlendGraph("GameData/EffectData/BlendGraph.bmp"))
{
}

// 他のメンバ関数はそのまま。

VisualEffects& VisualEffec::GetInstance()
{
static VisualEffects instance;
return instance;
}

呼び出し方はこんな感じ
VisualEffects::GetInstace().BlackOut();

詳しくはググってみて。
631名前は開発中のものです。:2008/03/08(土) 09:56:59 ID:U6M1Sa0y
念のためだが、620やメンバ変数/関数が全部staticのクラスは
singletonパターンとは呼ばない。やりたいことは似てるけど。
632名前は開発中のものです。:2008/03/08(土) 11:23:41 ID:e3SgUCNB
private:を書かないなんてキモいな。
あとコンストラクタでファイル読み込みなんてしない方がいいのでは
633名前は開発中のものです。:2008/03/08(土) 11:37:13 ID:d+vrDc9c
どっからでも使いたいからシングルトンにするんだったらグローバル変数と一緒
634名前は開発中のものです。:2008/03/08(土) 14:26:33 ID:eQ2FMe8O
>>624
タイミングの話じゃない
そんなものハナから指定できないからな
constならそこで初期値を与えてもコンパイルできるという話。
635名前は開発中のものです。:2008/03/08(土) 16:01:25 ID:njb2fD55
さすがにVisualEffectクラスにシングルトンパターンに適用するのは
やりすぎかと。

要件としては、
1)VisualEffectのインスタンスは複数あってよい。
2)ただし、複数のVisualEffectのインスタンスから
参照されるhBlendGraphは必ずひとつ
3)hBlendGraphは外部からアクセスできない
な感じとして、

hBlendGraphを管理するクラスを
a)VisualEffectのprivateな内部クラス(要件3)
b)シングルトンパターン適用(要件1・2)
として作るのがいいと思うがどうよ。
636名前は開発中のものです。:2008/03/08(土) 16:40:27 ID:U6M1Sa0y
>>635
よく分からないな。
要件1の「VisualEffectのインスタンスは複数あってよい」であればSingletonにする必要がない。
この要件であれば620のやり方(Proxyパターンに近い)が自然と思うけど。
hBlendGraphを管理するクラスを作る方がやり過ぎに感じる。

>>632
>private:を書かないなんてキモいな。
好き嫌いの問題。よく見る。自分は書くが、なくても気にならない。

>あとコンストラクタでファイル読み込みなんてしない方がいいのでは
一概にそうは言えないけど、今回についてはそう思う。原型をなるべく変えないためにこうしたが、
もうちょっとやりようがあると思う。


637名前は開発中のものです。:2008/03/08(土) 17:06:53 ID:U6M1Sa0y
FieldMapクラスのms_xとms_yをどう非staticにするかだけど、PlayerParty::DrawParty と PlayerParty::move で呼んでるFieldMap::getMsx()とFieldMap::getMsy()を引数で渡すようにすれば
解決すると思うよ。呼び出し側ではfm.getMsx(), fm.getMsy()を使えばいい。
とりあえず直して動かしたけど大丈夫っぽい。

FieldMapのコンストラクタでms_xとms_yを初期化するのを忘れないように。
638名前は開発中のものです。:2008/03/08(土) 17:44:56 ID:U6M1Sa0y
>>635,636
よく分からないこともなかった。b)に要件1が書いてあったので勘違いした。
そのやり方でも別にいいと思う。

自分ならVisualEffects::BlackOut()のループの前で毎回LoadBlendGraphする。
でSingletonは使わないで毎回インスタンス生成する。(628の2(1)の少し変形)

ダンジョンや城から出るときに呼ぶ関数で、そんなに頻繁に使うわけじゃないからファイル読み込み時間はそんなに問題じゃなさそうだから。
問題になったらそのときにリファクタリングすればいいし。

まあ正解はないので
ハカセは今まで出てきた中から、自分がいいと思う方法でやればいいかと。
639名前は開発中のものです。:2008/03/08(土) 22:39:15 ID:b0Kr/BOB
また>1未満の屑がネット弁慶かよ

640:2008/03/09(日) 01:21:21 ID:ZtBr13OB
みんないろいろありがとう。
VisualEffectクラスはシングルトンで行くことにします。
ちなみにSpellFlashはじゅもんを使ったときのあの光です。
他にもいろいろな場面で使うことが予想されるので
インスタンスを複数作る必要もないし
ファイルの読み込みは一回で済ませるようにしたほうがよさそうだからです。

効果音担当のSoundEffectクラスを作ろうとかも思ってるんですが
この二クラスを集約するEffectクラスとかにまとめたほうがいいのかな?
音関連もそろそろ実装してみたいと思う今日この頃。
効果音のファイルを用意するとしたら…
肉声しかないか!?
641名前は開発中のものです。:2008/03/09(日) 03:38:41 ID:detWKevS
ttp://www.soundsnap.com/

ここなんかどうでしょう?
ソース参考にさせてもらいます。 初心者なんで。
642名前は開発中のものです。:2008/03/09(日) 07:06:58 ID:ijlbToFV
単豚
643名前は開発中のものです。:2008/03/09(日) 09:45:32 ID:jKvtfIDT
ソース流用させてもらいます。初心者なんで。
644名前は開発中のものです。:2008/03/09(日) 13:24:24 ID:tApCcfwl
ソース拝借させてもらいます。貧乏なんで。
645名前は開発中のものです。:2008/03/09(日) 14:24:40 ID:HWkAMpo4
ソースかけさせてもらいます。トンカツなんで。
646名前は開発中のものです。:2008/03/09(日) 16:53:37 ID:bez1/1Bt
単屯のほうがいいな
647名前は開発中のものです。:2008/03/09(日) 17:26:03 ID:llJV2/qF
you,ドラクエオンラインにしちゃいなよ!!
6481:2008/03/10(月) 22:47:54 ID:h96LME7o
なんかとんかつ食べたくなってきた。
明日はとんかつにしよう。
カツ丼大好きだけど、明日はカツとキャベツを皿によそって、ソースとマヨネーズとレモン汁かけて食べる。

とりあえずソースうp
tp://sakuratan.ddo.jp/uploader/source/date73642.lzh

>>629-630のソースだとinstanceがローカル変数だから、
BlackOut()とかの変数からからinstanceが見れないっぽかったのでちょっと直して使ってます。
staticなローカル変数は関数が最初に呼び出された時にだけコンストラクタが呼び出される。
って言うのは勉強になりますた。

getInstance()されるたびに条件分岐が呼ばれるので効率がいいとはいえないかもしれませんが
気にならない程度だと思うのでよしとします。(これよりひどい条件分岐とかたくさん使ってるし)
こういうのって関数ポインタ使えば条件分岐無しでいけるのか、といまさらながら思いつきました。
サーバーサイドプログラムだとこういうの使って無駄を削らなくちゃいけないんでしょうね、きっと。

>>647
MOも興味ありますが、コマンド式のRPGを複数でやるのにそれほど魅力が感じられないので
いろいろ仕様も煮詰めなくちゃだし。
これが終わったら僕なりのオンラインドラクエを作ってみたいって思ってたりはします。
そういえばここの↓前スレの88さんは元気だろうか?
tp://pc11.2ch.net/test/read.cgi/gamedev/1198652802/l50

649名前は開発中のものです。:2008/03/11(火) 03:13:27 ID:fYlzNlBT
有能だが頑固な>>1だなw
でもまあ、今は完成させることを目標にした方がいいのかもね
がんばれ〜
650名前は開発中のものです。:2008/03/11(火) 04:30:41 ID:tDxIwUFw
>>1の成長っぷりはすごいなぁ
始めた頃は「自分より初心者かな!」と思ってたんだが
今じゃすっぱり追い抜かれてるわ
651名前は開発中のものです。:2008/03/11(火) 11:52:00 ID:bjWYhTwI
そうだお! 完成させるのえらいのだお!
>>1はようやるわー。
ソースの定期的なうpも好感度たかいよねー。
652名前は開発中のものです。:2008/03/11(火) 15:12:26 ID:eMM3dXjR
>>648 getInstance() の分岐が嫌なら createInstance() のようなメソッド用意してはどうでしょ。
653名前は開発中のものです。:2008/03/11(火) 20:05:38 ID:Tpg7o3iz
>>BlackOut()とかの変数からからinstanceが見れないっぽかったのでちょっと直して使ってます。

BlackOut()とかの変数からからinstanceを見る必要はないのでは?

staticなローカル変数を勘違いしてないかな?
ローカル変数だけど、一度生成したらプログラム終了まで生き続ける。
ハカセの書いてるように最初に通ったときに一度しか生成されないので、
bmp読み込みは1度ですむ。
多分629,630で問題ないと思うよ。

デバッグしたらわかるかも。
654名前は開発中のものです。:2008/03/11(火) 20:19:22 ID:Tpg7o3iz
う〜ん。やっぱりなぜ629,630で問題があったのか分からないので教えて。
655名前は開発中のものです。:2008/03/12(水) 01:06:46 ID:dycjFj7Y
>>1の言っている問題点は俺も理解できんが、
問題のあるソースなのは間違いない
656名前は開発中のものです。:2008/03/12(水) 06:08:02 ID:6+05uqkx
Visual C++で開けないんじゃ論外だろ
エラーでまくり
657名前は開発中のものです。:2008/03/12(水) 07:15:12 ID:s7+SbL9p
656 「パクリたいけど俺の環境じゃ使えないよぉ(´;ω;`) 無能だからどうしていいかもわかんねえし(´;ω;`)」
6581:2008/03/12(水) 08:02:25 ID:YbQGwFh7
BlackOut関数ではhBlendGraph変数を使いたいんですが、
hBlendGraphは普通のメンバ変数なので呼び出すにはインスタンスから呼び出す必要がありますよね?
hBlendGraphがstaticなメンバ変数なら大丈夫だと思うのですが、
全プログラムを通して生成されるVisualEffectsクラスはstaticなinstance変数のみなので
VisualEffects内のどの関数からもhBlendGraph変数が見れる必要があるのです。(使わない関数もあるけど)


ここまで書いて気がついたけど、BlackOut関数内でgetInstance()を呼び出せばよかったのかOrz
すまそ、吊ってくる。

659名前は開発中のものです。:2008/03/12(水) 08:14:18 ID:5RY0OFRn
悪いが658は意味不明だ。根本的な勘違いをしてる。でもうまく説明できる自信はないな。
とりあえず 655 の言うように問題のあるソースになってるので何とかしたほうがいい。

singletonはやめて、こうしたらどうだろう。
変更前の全てstaticな状態に戻し、今回追加した初期化関数を追加する。
WinMain など、適当な箇所で1回だけ初期化関数を呼ぶ。
ハカセの要望を満たせるし、理解しやすいと思うけど。

660名前は開発中のものです。:2008/03/12(水) 08:29:14 ID:5RY0OFRn
>全プログラムを通して生成されるVisualEffectsクラスはstaticなinstance変数のみなので

インスタンスが生成されるか、またstatic/非staticか、とは無関係に、
VisualEffectsクラスからメンバ変数のhBlendGraphは見れる。
hBlendGraphのstatic/非staticに関わらずね。

インスタンス(オブジェクト)とクラスの関係を誤解してるんじゃないのかな。
661名前は開発中のものです。:2008/03/12(水) 08:43:56 ID:5RY0OFRn
×VisualEffectsクラスからメンバ変数のhBlendGraphは見れる。
○VisualEffectsクラスのメンバ関数からメンバ変数のhBlendGraphは見れる。
662名前は開発中のものです。:2008/03/12(水) 10:47:50 ID:GnKR/8yc
勉強になる流れですね。
シングルトンは結構、難しい話で >>630 氏の手法はシングルスレッドでは
上手く働きますが、マルチスレッドでどうかという話を効いた覚えがあります。
http://www.fides.dti.ne.jp/~oka-t/cpplab-singleton-1.html
スレッドを考え始めると途端に複雑になるし、そもそも排他制御もしないと
まともに使えないだろうと、、あまり考えたくない部分ではありますが。

僕としては、生成だけではなく解放タイミングの制御方法も明確ではないので
static やシングルトンは、あまり好きではないですね…。
663名前は開発中のものです。:2008/03/12(水) 15:41:42 ID:5RY0OFRn
>>662
まあ630以外でSingletonを実装したとしても、またSingletonじゃなくてもマルチスレッドで同一オブジェクトを参照すると、
色々考えないといけないことが出てくるので面倒だね。

今まで幾つかSingletonを使ったり見てきたりしたけど、適切だと思う場合は少ないな。
楽だからって理由がほとんど。自分は使わないようにしようと思ってる。

660を補足すると、BlackOut()内のhBlendGraphは、thisという自分自身の持つメンバ変数であり、veなどの特定のインスタンスの
メンバ変数ではない。だからインスタンスがstaticか、とか一個しかない、とかは関係ない。
別にインスタンス一個もなくてもコンパイルできるでしょ。
これで分かるかな?
664662:2008/03/12(水) 16:44:05 ID:GnKR/8yc
>>663
どうもです。通常はシングルスレッドで組んでいるでしょうし
手早く済ませる手段として十分ありではないかと思います。
スレッドのことは、マルチスレッドで組む時に十分考えると
いいことですよね。

興味深い流れだったので思わず口を挟んでしまいました。^^;
すみません。通りすがりの者でした。
665名前は開発中のものです。:2008/03/12(水) 18:02:31 ID:5RY0OFRn
なんか自分中心のスレみたいになってきてしまってちょっと気が引けるが。。。

>>664
Singletonを使わないようにしているというのは、マルチスレッドだけが理由だけじゃないよ。
どちらかというと、Singletonはグローバル変数に近いというのが問題と思ってるから。

どこかで読んだ本で、「Singletonにするということは、インスタンスに対するアクセス範囲を考える義務を
プログラマが放棄したといえる」という趣旨のことが書いてあって、そのとおりだと思った。

まあ他人に使っちゃダメという気はぜんぜんないけど。データや状態を保持しないクラスの場合は問題は起きにくいと思うし。

あと、シングルスレッドで済めばいいけど、そこそこの規模になるとマルチスレッドを避けられないことが多い。
このDQでも、時間がかかる処理があれば、部分的であれマルチスレッドが必要になると思うよ。

666:2008/03/12(水) 23:42:49 ID:YbQGwFh7
とりあえず自分が間違っていたことを謝罪します。すみませんでした。
>>629-630で、問題はなかったのです。
なかったのになぜかコンパイルが通らなかったのです。
どこか他の箇所に問題があったのだと思います。
なのに何か勘違いしてました。
昼ごろトイレで携帯でここ見ながら冷静に脳内コンパイルしたらどこが悪いかわからなかった。
…なんで問題があると思ったんだろう?

とりあえず三つの案をまとめてみた
tp://sakuratan.ddo.jp/uploader/source/date73735.lzh

で、>>628さんの案でいかせてもらおうと思いました。

僕の案だとif文を使う分若干負荷がかかるし、
フルstaticだとinit()関数を呼び出すのがきれいじゃないような気がするからです。

でも、マルチスレッドだと問題が生じる可能性がある、というのは勉強になりました。
今回のDQもどきではマルチスレッド化するならファイル読み込みを裏でやるくらいだと思いますが、
次回考えてるMOではどうしてもマルチスレッドは必要になると思うので。

もしマルチスレッドで使うならフルstatic案で、メイン関数でinit()関数を呼び出す方法が安全。
…でいいんですかね?

667名前は開発中のものです。:2008/03/13(木) 01:18:07 ID:dKf8037F
628案がいいよね、というか、それ以外選択肢ないよね。
6681:2008/03/14(金) 02:22:18 ID:nm4je3x/
ここ数日忙しくて、手をつけられませんでした。
もうちょっと忙しい日が続きそうです。
大規模なりファクタリングを考えてますが、時間が取れない時になるとめちゃくちゃになりそうだからやめておこうかな。
ちなみにリファクタリングのテーマはMVCモデリングです。
いままで全部ごっちゃにしていて、メインループが何箇所かに分かれている形になっています。
そのループの先々でFlipScreenをしていたりしています。
最低でもFlipScreenは三箇所以内に納める、というのを目指してやっていきたいと思います。
ちなみに三箇所というのは
オープニング画面
フィールド時
戦闘時
です。

ちなみに、今のままいくと、NPCを歩かせたりする時に壁にぶつかります。というかぶつかってます。

ちゃんとした時間を取れるまではエディター部分を造ってみたいと思います。

いまできてるのはこんな感じ。
tp://sakuratan.ddo.jp/uploader/source/date73970.lzh

エディターはWinAPIで作ろうと思ってます。

サイズが64*64で固定とか <- わりとなんとかなりそう
、読み書きできるファイル名が固定とか <- OS側で標準装備してるアレを使いたい。
っていうのはひとまずおいておいて

エクセルとかのように、メインウインドがあって、たとえば三つのファイルを開くとします。
そうすると三つのサブウインドウができ、それぞれにキャプションバーがあり、最小化などをサポートしてます。
この辺をエディターで実装したいのですが、どこかにいいサンプルがあったら教えていただけませんか?
669名前は開発中のものです。:2008/03/14(金) 09:38:57 ID:KQLj6NoK
>>668
今時C++でゲーム用ツール作るのは正直馬鹿げてるように思うが…
MDIで調べたら出てくるんじゃないか?


過去資産の無い人が本格的なマルチウィンドウのアプリ作るのはかなりリスクが高い
670:2008/03/14(金) 17:08:05 ID:jA7ObYp+
MDIで調べたら「猫でもわかる〜」で該当のページを見つけました。ありがとです。
過去の資産がないので、これから作って行こうとか思ってます。
でもこの辺のってvistaになると使えなくなっちゃうんですかね?
671名前は開発中のものです。:2008/03/14(金) 17:11:34 ID:/l3l2Hmf
ツールならC#とかQt使うほうが楽だと思うよ
Qt なら C++ でいけるし。
672名前は開発中のものです。:2008/03/14(金) 17:55:11 ID:gWW3WsZU
API直書きでMDIは荊杉だろw

EEだとATLやMFCないし。
スレ的にはC++/CLIか。
673名前は開発中のものです。:2008/03/14(金) 18:00:14 ID:uWexiA8m
C++/CLIは化け物w
.NETならC#覚えた方が早い
674名前は開発中のものです。:2008/03/15(土) 00:08:38 ID:B2Fh06BF
>>673
同意

C++/CLIはC++アプリからドトネトへのスタブ作るための言語程度に考えておくべき(むしろよほどの理由が無ければ使うべきでない)
メインに使うとカオスなことになる。
675名前は開発中のものです。:2008/03/15(土) 07:07:37 ID:XyBKRgw3
っ /clr:pure
6761:2008/03/15(土) 07:35:23 ID:kfxJ0YQU
C++/CLIとか managed C++ とか MFC とかいろいろ新語が出てきて収拾つかなくなってる1です。

マップエディタやキャラクタエディタを作るにあたって
今までに作ったFieldMapクラスとか Characterクラスとかを流用しようと考えてました。
そうすると C# と C++/CLI を使った方向でやるべきですか?
それともあの程度のクラスなら流用などを考えずにやったほうが良いですか?

677名前は開発中のものです。:2008/03/15(土) 08:33:15 ID:Tt8o4zXb
はかせタンの気持ちが揺らいでますな
678名前は開発中のものです。:2008/03/15(土) 09:59:24 ID:cUAdrkpt
>>>629-630で、問題はなかったのです。
>なかったのになぜかコンパイルが通らなかったのです。
ごめん。細かい部分で間違ってたかも。(スペルミスはあるけど、そのせいじゃないよね?)

>>もしマルチスレッドで使うならフルstatic案で、メイン関数でinit()関数を呼び出す方法が安全。
>>…でいいんですかね?
staticメンバ変数に同時アクセスすることになるから安全とはいえないかな。やっぱり排他処理が安全かな。

>今までに作ったFieldMapクラスとか Characterクラスとかを流用しようと考えてました。
>そうすると C# と C++/CLI を使った方向でやるべきですか?
>それともあの程度のクラスなら流用などを考えずにやったほうが良いですか?
フリーソフトで使えそうなのないの?下手すると今までより大変な作業になるような気が。ちなみにエディタではどこまでやりたいの?ただ画像作るだけじゃないんだよね?
679名前は開発中のものです。:2008/03/15(土) 11:49:06 ID:jofMxJus
マップエディタならここのを使った方がいいぜー
http://www.hyperdevice.net/

DQ3レベルなら、イベントを手作業でやってもなんとかなる気がするし。
680名前は開発中のものです。:2008/03/15(土) 13:05:17 ID:B2Fh06BF
>>675
ネイティブとの混在だけが問題じゃないんだけど、本当に触ったことある?
681名前は開発中のものです。:2008/03/15(土) 14:30:38 ID:bTNjkoWT
>>679
エディタは優れていると思うのだが、出力形式がcsvと独自バイナリなのが微妙・・・

ttp://www.vector.co.jp/soft/dl/winnt/game/se442396.html
俺はこっちをお勧めする。
しょうもないバグ(負数チェック忘れで、マイナス座標編集で落ちる)があるが、
XMLなので使うテクスチャ名やレイヤサイズ、チップサイズ等を格納できる。

俺はこれで吐かせてからバイナリにして使ってる。
682名前は開発中のものです。:2008/03/15(土) 18:11:34 ID:uFlsWkiu
>>681
プラグイン対応してるから、自分の好きな形式で保存できたはずだけど。
683名前は開発中のものです。:2008/03/15(土) 19:00:19 ID:fKb93Sld
>>682
別に無理に進める気はないが、
普通はあのサンプルを見てプラグイン作る気なんかおきない

XML解析するほうが絶対に楽とだけ言っておく
684名前は開発中のものです。:2008/03/15(土) 19:47:41 ID:B2Fh06BF
抽象化ゼロ、ネイティブとなると互換性のことが心配だなw
685名前は開発中のものです。:2008/03/16(日) 00:17:28 ID:hR3dUdLZ
マップエディタって結局自前の方が早いと思うのだが
686名前は開発中のものです。:2008/03/16(日) 00:21:17 ID:YYl25oBQ
要求仕様が確定する前にこういうこと言うやつって
RPG作ったことないと思うんだけど
687名前は開発中のものです。:2008/03/16(日) 01:27:03 ID:FviUyMQ5
勉強がてら作ってみんのもいいんじゃね
自分なりにカスタマイズできるし、ふぁふぁふぁ
688名前は開発中のものです。:2008/03/16(日) 02:02:51 ID:hR3dUdLZ
>RPG作ったことないと

ばれたか
でも1もまだ完成させてないんだ。同類だよ
689名前は開発中のものです。:2008/03/16(日) 02:46:15 ID:paBA3rB/
>>1とか別にどうでもいいだろ
スレの意義保つだけの飾りだ
690名前は開発中のものです。:2008/03/16(日) 09:15:56 ID:P7T70740
ベギラマもえ!
691:2008/03/17(月) 07:22:54 ID:FniSO1dY
エディタはRPGツクールみたいにマップエディットからイベントの設置まで全部、ですかね。
恐ろしく大変そうだなぁ…。
今考えたら、あえてマルチウィンドウにする必要もないのかな?

ただ部分的にマルチウィンドウにしたほうが楽な気はする。
ウィンドウ間の連動、と言うよりは他のウィンドウを見ながら作業ができる、みたいな。
692名前は開発中のものです。:2008/03/17(月) 09:51:05 ID:C8pzDGvV
正直ツクールのイベントエディタの出来はよくない
条件分岐の見通しが悪すぎる
その点ではカドワスのイベントエディタはよくできてる


まぁ俺ならスクリプトエンジン書いて終わりにするが…
693:2008/03/17(月) 14:09:13 ID:cE5AlQNt
カドワス?
調べてみたらカードワースの事っぽい。(違ったらごめんなさい
名前だけは聞いたことがあります。

ツクールを例に出したのはそれしか知らないからですし。それもSFC時代のやつしか知らないです。
カードワースか〜。ちょっとやってみようかな。
694名前は開発中のものです。:2008/03/17(月) 15:22:44 ID:63yXmlhQ
1はあんまり周りに左右されずに作った方がいいよ。
カドワスのエディタはそこそこ良かったけれど、あれで巨大なアプリを作ろうとは思わない。
自分ならECMAScriptかPythonで書くことにするなー。

結局、マップとイベントを結びつけるのさえできれば、あとはテキストが楽っしょ。
695名前は開発中のものです。:2008/03/17(月) 16:38:48 ID:v7cy4Qil
WOLF RPGエディターのイベントエディタはどうよ?
http://www.silversecond.com/WolfRPGEditor/
696名前は開発中のものです。:2008/03/17(月) 17:52:33 ID:GTjqo1TD
無意味でしょ
そんなの使うんだったら初めから全部それで作ればいい
それに付いてるシナリオプレイヤーと同じものをわざわざ作るの?
697名前は開発中のものです。:2008/03/17(月) 18:15:52 ID:fwvcW2xY
boost.spiritでインタプリタ自作コース希望
698名前は開発中のものです。:2008/03/17(月) 20:43:31 ID:63yXmlhQ
はじめてきいたよWOLF。なんかダメポ感が漂うなあ。
699:2008/03/17(月) 22:07:24 ID:FniSO1dY
WOLF見てきました。
まだ使ってませんが、HP見た限りでは目指してるのはこんな感じかもしれません。

現状のDQIでは
マップもイベントもtxt形式で保存してあります。
イベントはMapObjectMap.txtというファイルに入っていて、
一枚のマップのイベントが全部詰まってます。
イベントの位置や、グラフィック情報などが一マップ分全部入っているのでかなり分かりづらいんですよね。
あと条件分岐とかも見づらいと思います。
せめてTabでインデントできるようにすれば、2,3くらいのネストなら耐えられるかもしれません。

他のRPGエディタに触れて、こうしたほうが良いとか、参考にするのも大事だと思いますが、
とりあえず自力で作りたい、というのは変わりません。
完成したらWOLFみたいに公開したいとか思ってます。
誰かが使ってくれたとかあったらやっぱり嬉しいんだろうなー。なんてね。

まずはMDIを作るためのライブラリを作ってみようかしら?
WinAPIをオブジェクト指向で使えるようにまとめてみよう、みたいな。

そのまえにシステム部をちゃんと作れって感じですね。すみませんでした Orz
700名前は開発中のものです。:2008/03/17(月) 23:39:44 ID:uc9emuNW
>>1的には全部ソースに書くべきだよね。
701名前は開発中のものです。:2008/03/18(火) 00:16:52 ID:we9VjMxY
エディタについては考えないほうがいいよ‥‥。
ほかのプロジェクトも、エディタ作ろうとして終わってるのが多いしさ。
それ以外を煮詰めてからでも遅くないと思う。
702:2008/03/18(火) 00:34:55 ID:tLvykoAj
>>700
すみません、意味がいまいち分かりません。
ヘッダファイルにデータを書き込む、とかそういうことでしょうか?

>>701
エディタってそんなに敷居が高いんですか… Orz
一回つくっちゃえば他のものにも流用できそうだなぁ、とか考えてました。

たしかに仕様の煮詰め方がまだ甘いですよね。
703名前は開発中のものです。:2008/03/18(火) 02:13:06 ID:we9VjMxY
700はハードコーディングを求めているんでは。
それでもいいとオモウヨー
704名前は開発中のものです。:2008/03/18(火) 09:05:31 ID:imxPWJvy
今どきハードコーディングは無いわ
何のメリットも無いのに。
705名前は開発中のものです。:2008/03/18(火) 09:08:23 ID:udRHBHjL
いまどき1のスキルでゲーム作るのもないと思うが、
ツール作りで余計なパワー使うよりなら、ひどいゲームでも完成させるほうがマシだとおもう。
706695:2008/03/18(火) 13:04:11 ID:eXu4sfw7
>>696
ごめん、エディタの例を提示しただけで、
これで作ったのを動かすなんて考えてもいなかった
俺の書き方が悪かった
707名前は開発中のものです。:2008/03/18(火) 17:47:53 ID:fHRiDwUz
それをいうなら
今どきDQ3は無いわw
708名前は開発中のものです。:2008/03/18(火) 18:12:52 ID:IDqS1m2K
>>707
"ゲーム内容"は今は関係無いだろ。
流れ読めないの?
709名前は開発中のものです。:2008/03/19(水) 00:28:42 ID:8bBzkMpH
むー雲行きが怪しくなってきたね・・・
助言するのはいいけど、皆さんもちっと落ち着いたらどうっすか
>>1が混乱するかもしれないから
710名前は開発中のものです。:2008/03/19(水) 01:14:54 ID:jQIJ8hP1
混乱してるくらいが1っぽい
711名前は開発中のものです。:2008/03/19(水) 12:11:15 ID:PXO8nJOb
2chで作ってるんだから、こんなもんっしょー。
712名前は開発中のものです。:2008/03/19(水) 18:30:41 ID:10uW2HTi
繰り返すがVisual C++で開けないのだが
713名前は開発中のものです。:2008/03/19(水) 18:39:24 ID:Fef8Tt3V
2005とか2003とかVC6で開こうとしてるんじゃないだろうな?
VC2008express英語版なら開けるぞ
714名前は開発中のものです。:2008/03/19(水) 19:04:19 ID:10uW2HTi
開けるのですが・・・
ビルドエラー多発ってことです;
715名前は開発中のものです。:2008/03/19(水) 19:09:33 ID:jQIJ8hP1
うごくけど
716名前は開発中のものです。:2008/03/19(水) 22:49:29 ID:R53zknEi
ビルドエラーに関してはこのスレで散々出てるから探してみー
717:2008/03/20(木) 10:37:57 ID:JEXP2UTm
1は イオナズ…
しまった じゅもんを どわすれしている!

混乱中の1です。

エディタは無謀すぎる、の声が多いのでリファクタリングをぼちぼちはじめてる次第です。
ソースを読み返して、改善項目を挙げていって、
とりあえずぼうけんのしょ選択するところまで直すことを目標にします。
対象になるのはCommand.cpp CommandOpening.cppです。
…Commands.cppもかな?

ビルドエラーに関してですが、どんなエラーかを上げないと対処しようがないです。
僕で分かることなら答えますがなにぶん初心者なので。 Orz
718名前は開発中のものです。:2008/03/20(木) 11:10:04 ID:0oFFocan
ソースについて、つっこんでいいなら、
次にうpされたときにかくよー。
719名前は開発中のものです。:2008/03/20(木) 18:52:31 ID:s06tjzSq
1以下のカスが粋がっているスレはここですね
720名前は開発中のものです。:2008/03/21(金) 12:48:58 ID:CeS4EBvN
>>670
遅レスすまんが、
VistaでもWin32APIは動作するぞ。
だからこの経験は無駄にはならない。
俺がVista使ってるから間違いない。
ただ、Microsoftが最近.Netアプリを宣伝しているのは確か。
(だからVisual C++ 2008のインテリセンスはまだしょぼいのかもしれない)
C++/CLIやC#をやるのは悪くはないが、
せっかくここまで来たのだからC++でやり遂げたほうが力がつくと思う。
俺は.Netは重いから好きじゃないな。
721名前は開発中のものです。:2008/03/21(金) 16:32:28 ID:KdAXHskp
ATLがEEには入ってたらベストなんだがなー
722名前は開発中のものです。:2008/03/21(金) 16:34:49 ID:VJcncGIK
>>720
.NETが重いのは起動時だけでしょ
複雑な処理になればなるほど軽いように思うが・・

723名前は開発中のものです。:2008/03/21(金) 16:45:15 ID:VJcncGIK
ちなみに.NETは今でもパソコン向け2大OSのWindowsとLinuxのGUIで使え、
結構スキルとして幅もある。

Win32APIはどうなるんだろ。Vistaではまだ大丈夫だが
Vistaで大分過去のデータを削ったから、この方針でいくとなると
次のバージョンではどうなるかな・・・
.NETだともうほとんどAPIは使わないからな・・・
今重かったとしても後々を考えると・・・あ、別に止めませんよ^^;
724名前は開発中のものです。:2008/03/21(金) 16:50:16 ID:VJcncGIK
ソースのうpをお待ちしておりますm(_ _ )m
私は.NETしかしないけど、頑張ってね〜
725名前は開発中のものです。:2008/03/21(金) 19:44:22 ID:HtvAYGuV
起動時に重いってのはそうとうなペナルティだと思うけどね。
起動するのが面倒ってのは、ゲームやる気がそがれるし。
726名前は開発中のものです。:2008/03/21(金) 19:46:35 ID:+eVwtV9C
ロード時間に比べたらJITコンパイルなんか一瞬
727名前は開発中のものです。:2008/03/22(土) 00:38:31 ID:Vi3jYo1m
.NETの内部でAPIは使われていないのですか?
728名前は開発中のものです。:2008/03/22(土) 10:27:17 ID:pw13zKJ/
それをいうならJavaだって何だって一緒だろ
WPFなんかはDirect3Dで全部自前で描画してるよ
729名前は開発中のものです。:2008/03/22(土) 21:25:27 ID:JwNiN2jV
ネイティブコードが動かなくなったら既存の多くのソフトが動かなくなるんだから
いくらMSでもそんなアフォなことしないと思うよ
730名前は開発中のものです。:2008/03/22(土) 21:56:22 ID:TCAQZ409
>>729
そうですかぁ・・
でも、.NETの4割弱の処理はWDMドライバを直接バインドしていますが・・
旧DLL依存の処理をメジャーなハードに限ってサポートして、
汎用のWin32APIはエントリごと削除・・とか
まぁ分かりませんが
731名前は開発中のものです。:2008/03/22(土) 22:00:48 ID:ClqOup2B
ここって何のスレだったっけ?
まーいいんだけどさ。
732名前は開発中のものです。:2008/03/22(土) 22:10:20 ID:mH0qBa6J
.NETのスレだろ
733名前は開発中のものです。:2008/03/23(日) 16:06:19 ID:mbuFy+X7
1はこないな
まぁこの流れでは書き込みづらいか
734名前は開発中のものです。:2008/03/23(日) 23:29:24 ID:0Xpai305
ゲーム作るにはGCがうざい
735名前は開発中のものです。:2008/03/24(月) 01:11:50 ID:gvHecZUo
.NETのGCがうざいくらいのPCなら、
ネイティブで作っても色々問題が出る
7361:2008/03/25(火) 00:13:44 ID:d/l8/X39
いまいち体調がすぐれません、1です。

とりあえず、ぼうけんのしょ選択の画面だけControlとDrawを分離してみました。
ここはこうすべき、とか助言があったらおねがいします。
CommandOpening.cppのDraw()とcontrol()らへんでしょうか。

とりあえずブレークポイントになっているClearDrawScreenまでが今回いじったところです。

ごめん、なんかものすごく頭痛くなってきたから寝るぽ Orz

tp://sakuratan.ddo.jp/uploader/source/date75410.lzh
737名前は開発中のものです。:2008/03/25(火) 01:25:28 ID:MXDSjbqf
ドラクエ風オンラインを作りたい。
738名前は開発中のものです。:2008/03/25(火) 02:16:24 ID:0moXVCDf
>>736
お疲れ様です。
739名前は開発中のものです。:2008/03/25(火) 18:48:07 ID:rn3HuzuP
ゲーム作りは長丁場だからな。具合悪い時はゆっくりしっかり休んだ方がいいよ。お大事に。
740名前は開発中のものです。:2008/03/25(火) 20:10:43 ID:eTbgK7ic
>>736
お大事に
741名前は開発中のものです。:2008/03/25(火) 21:03:27 ID:5tSXFDb5
バージョンだけど、このペースで上げると3桁になりかねないから、最上位桁はあまりあげないほうがいいよ。
通常は開発中は0にして完成時に1にする。それ以降は大きく変わる都度上げると思う。
742名前は開発中のものです。:2008/03/25(火) 21:18:53 ID:wK46SZCn
あっそ
743名前は開発中のものです。:2008/03/25(火) 21:54:34 ID:q/mEJ5Ip
正 なるほど
愚 あっそ
744名前は開発中のものです。:2008/03/26(水) 01:18:53 ID:sdjpaEOL
1以下のカス乙
745名前は開発中のものです。:2008/03/26(水) 08:50:17 ID:u6Y2rZcM
天皇 あっそぅ
746名前は開発中のものです。:2008/03/26(水) 10:52:29 ID:Rq8x/nQl
いいじゃん3桁メジャーバージョンナンバー
VersionControlSystemのリビジョンナンバーみたいなもんだと思えば
747名前は開発中のものです。:2008/03/26(水) 11:26:46 ID:G9STw5Lx
3桁まってるぜ。
なおすのが簡単そうなとこだけ報告。
・パーティアタックで人がしんだときにも「やっつけた」になる
・スライムAは 52のダメージを「うけた」→「あたえた」だとおもう
・ベホマを敵に使っても、点滅してダメージぽい(原作はどうだっけ)
・死んでいてもレベルアップしちゃう。
748:2008/03/27(木) 21:22:58 ID:G2bfhNCv
せっかくバグレポートもらったのにごめんなさい。
今週は一年で一番忙しいのでなかなか作業ができないでいます。
来週から少しずつ暇になってくるはずなので、それまで暖かい目で見守ってください。
749名前は開発中のものです。:2008/03/27(木) 23:05:17 ID:qUMyRRdt
マップスクロールがかくかくしてね
1チップ移動して次の1チップ移動始まるとき一瞬止まる感じがする俺だけかな
750名前は開発中のものです。:2008/03/28(金) 05:22:03 ID:He3mBasw
DXライブラリなんだからティアリングは許してやり
751名前は開発中のものです。:2008/03/29(土) 00:33:04 ID:sFO0h1By
ゆるさねえ
752名前は開発中のものです。:2008/03/29(土) 08:27:31 ID:jf/sHOqZ
そこをなんとか
753名前は開発中のものです。:2008/03/29(土) 10:02:12 ID:0c8vvFTD
液晶ディスプレイでもティアリングって起こるの?
754名前は開発中のものです。:2008/03/29(土) 11:41:28 ID:8amvAVh+
俺LCD使ってるけどDirectXでVSYNC同期をとらずに描画したら
ティアリング(ちらつき)おきてるよ
同期とるように設定するとおきなくなる
普通のゲームでは操作に気を取られるのかあまり気にならないけど
ムービー流したりするとかなり目につくことあるね
755名前は開発中のものです。:2008/03/29(土) 15:55:20 ID:6TzdtqhV
戦闘に入るとき

○○○Aのむれがあらわれた

ってでるけど、 A いらなくね?
756名前は開発中のものです。:2008/03/30(日) 08:27:08 ID:G5htl8bw
DXライブラリでもVSYNC待ちできるからティアリング無くすことは可能
757名前は開発中のものです。:2008/03/30(日) 09:39:55 ID:jmEGsf14
Windowモードで?
サポートされてないはずだが…
758名前は開発中のものです。:2008/03/30(日) 09:42:46 ID:IYzvYNfh
フルスクリーンモードにしてWaitTimerを使わずにWaitVSYNCで待てばいいんだっけ
759名前は開発中のものです。:2008/03/30(日) 19:10:35 ID:qPL7U36j
そもそもそれ関数じゃだめなのか?
760名前は開発中のものです。:2008/03/30(日) 22:36:27 ID:G5htl8bw
WindowモードでもVSYNC待ちはできるけどフリップはできないから…
バックバッファからフロントバッファへのイメージ転送が間に合わないとティアリングが発生する
761名前は開発中のものです。:2008/03/31(月) 00:13:01 ID:SAeJDNuc
DXライブラリは糞でFA?
762名前は開発中のものです。:2008/03/31(月) 00:42:26 ID:5/kcqqdW
Vista買え
763名前は開発中のものです。:2008/03/31(月) 00:50:46 ID:2OdtDSBt
http://www.nicovideo.jp/watch/sm2201772
ダイの大冒険
ドラクエ3 サントラ
764名前は開発中のものです。:2008/03/31(月) 01:41:23 ID:ibJyBCz7
>761
なんで?
まあ3Dできないから糞というのなら同感だが…
因みに760で言ってる制限は別にDXライブラリだからというわけではないぞ
765名前は開発中のものです。:2008/04/01(火) 00:48:48 ID:mfwNWqKR
マップスクロールって結構むずいな
ディスプレイによってリフレッシュレートが違うとかフレームスキップとか、めんどい。
766名前は開発中のものです。:2008/04/01(火) 07:09:14 ID:Q9ncM2Ox
>>765
いや、スクロールにリフレッシュレートは関係ないだろw
一度バックバッファに描くんだから。
767名前は開発中のものです。:2008/04/01(火) 18:52:51 ID:uP3qRyUu
ゲーム全体のスピードがリフレッシュレートに依存している?
768名前は開発中のものです。:2008/04/01(火) 21:14:06 ID:MlAT2BTP
>>767
誰に言ってるんだ?
769名前は開発中のものです。:2008/04/02(水) 00:34:43 ID:ZHzbgFtM
プログラム的に60分の1秒毎にフリップさせてても
表示のタイミングはリフレッシュレートできまるんじゃないの
例えば16ピクセルを16/60秒でスクロールさせたいとする。
1/60秒毎にバックバッファをフロントバッファにフリップさせる。
ディスプレイのリフレッシュレートが60の場合1/60秒毎に画面表示が更新され、
1ピクセルずつスクロールしていく。
ディスプレイのリフレッシュレートが50の場合1/50秒毎に画面表示が更新され、
16/60秒で16ピクセル移動させようとすると、フレームスキップの結果
1ピクセル移動するときと2ピクセル移動するときが出てくるので画面表示がカクカクする。
つーかFPSの設定とかどうなってんの。ぱっとソース見て見当たらないんだけど。
もしかして実行環境によって動作速度が変わるプログラムなのかな。
770:2008/04/02(水) 11:32:13 ID:icfWdBaa
みなさま久しぶりです。
段々落ち着いてきましたが、どうやら今週いっぱいはまだ忙しそうです。

マップのスクロールは確かvsyncだかの関数を使っていたと思います。
一回描写が終わるまでプログラムを待機させる関数の筈なので
リフレッシュレートが高いほど高速で移動する筈です。
RPGの特性上、あまり気にしなくてもいいかもとか思ってたんですが、
やっぱりリフレッシュレートに依存してゲームのスピードが変わるのはまずいですよね。

ちょっと考えてみます。
771名前は開発中のものです。:2008/04/02(水) 14:39:02 ID:FLqMU4Qp
がんばれい〜
772名前は開発中のものです。:2008/04/02(水) 16:10:00 ID:3aNwpVIW
初期のドラクエ程度ならタイマーやWM_PAINTでも十分でふぁ
773名前は開発中のものです。:2008/04/02(水) 16:30:21 ID:/ysQLNfc
でも、色数やアニメーションパターンが少ないから
ちらつきが余計目立つのはあるよな。

オプションでリフレッシュレート依存にするか、
タイマーにするかを選択できるようにするのが無難か。
フルスクリーン専用にするのが一番楽だけど。

てか、この問題って誰もが通る道だw
774名前は開発中のものです。:2008/04/02(水) 19:25:30 ID:ZHzbgFtM
フルスクリーン専用だと何で楽ですか
775名前は開発中のものです。:2008/04/02(水) 21:49:42 ID:sTFd26ZY
普通タイマーなんか使わねぇし、リフレッシュレート依存にもしないだろ…

フルスクリーン専用はデメリットのほうが遥かにに大きい。
デバッガの利用に制限を設けることになる。
776名前は開発中のものです。:2008/04/02(水) 22:49:42 ID:vOGkGlGc
>>775
じゃあどうやってゲームのスピードを一定に保つの?
777名前は開発中のものです。:2008/04/02(水) 23:00:36 ID:gv5wPfz/
俺はまず、メッセージがあるときはメッセージ処理して、それ以外はとりあえずゲーム処理のほうに回させる。
そんで自前で時間測っといて既定の時間より早く来た場合はリターンて感じだよ
778名前は開発中のものです。:2008/04/03(木) 11:30:50 ID:IvPVRnw6
ちょ
779名前は開発中のものです。:2008/04/03(木) 13:32:37 ID:3qnHDRDt
あえてチラつきを抑制しないでレトロ感を演出するとかしないとか
780名前は開発中のものです。:2008/04/03(木) 21:50:54 ID:lRvENcun
ファミコンはテレビだからリフレッシュレート一定でwindows向けゲームよりそういう部分に関しては楽ただしアセンブラ
GBAはC言語で開発できるが画面解像度がファミコンと違う困った
781名前は開発中のものです。:2008/04/03(木) 22:12:40 ID:6VmzbDE/
一番楽なのは、携帯(MIDP2.0)だけどなw
782名前は開発中のものです。:2008/04/03(木) 22:27:49 ID:0WE0DNgq
XNA@箱とか
7831:2008/04/03(木) 23:32:42 ID:jLeoN1c3
とりあえず>>747>>755 を修正しました。

tp://sakuratan.ddo.jp/uploader/source/date76901.lzh

ティアリングとかフレームスキップとかの問題ですが
リフレッシュレートが統一されていない限りフレームスキップは仕方が無いのかもしれないとか思いました。
回避する方法はちゃんと用意されてるのかも知れませんが。
とりあえず60Hzを想定して作っていこうかと思います
ただしそれ以外のレートでもティアリングはおこるけどゲーム進行のスピードは変わらないように作りたいと思います。

ちなみに、みなさんのリフレッシュレートはいくつですか?
784名前は開発中のものです。:2008/04/04(金) 00:21:09 ID:jScH7d4P
>>774
解像度、リフレッシュレートを固定できて、
さらにフリップでちらつきは完全に無くせる。

>>775
フルスクリーン専用はむしろ製作者側にメリットがあると思う。
デバッグ用のウィンドウモードを作っておけばいいだけだし。
プレイヤー側からは、勝手にフルスクリーンにされてウザイっていうのがあるだろうがw
785名前は開発中のものです。:2008/04/04(金) 11:56:52 ID:Lo4Duy5S
>解像度、リフレッシュレートを固定できて
え、あー…
馬鹿ですか
786名前は開発中のものです。:2008/04/04(金) 17:36:03 ID:dUrCV8U+
1280*960@32-120Hz
787名前は開発中のものです。:2008/04/04(金) 18:52:40 ID://HCO2hz
フルスクリーンだと解像度は指定できるけど、
リフレッシュレートはそれぞれの環境に依存してると思う。
プログラム側でリフレッシュレートを変更するのも不可能ではないけど、
作法としてあまり推奨はされてないみたいだし。

これはSTGやアクションを作るときのやり方になるけど、自分の場合は
コンフィグでウェイトをvsyncで取るかタイマーで取るか選べるようにして
リフレッシュレートが60hzならvsync選択でティアリングなし、
それ以外の場合はタイマーで我慢して貰う、というやり方をしてました。
788名前は開発中のものです。:2008/04/04(金) 18:57:51 ID:rRY9qtvx
>>783
俺はアクションだけど50ヘルツで作ってるよ。テリアリング上等!視力低下上等!だよ♪
789名前は開発中のものです。:2008/04/04(金) 20:49:00 ID:dUrCV8U+
関東の電気は糞
790名前は開発中のものです。:2008/04/04(金) 22:43:54 ID:ngSh6GZX
俺のノートPCは50固定だな
791名前は開発中のものです。:2008/04/05(土) 01:50:46 ID:xsNgK89F
うちのデスクトップは59か60を選べるな。60にしてある。
あと、ワイドなんで、フルスクリーンだとアスペクト比がおかしくなってウザイ。
792名前は開発中のものです。:2008/04/05(土) 01:58:37 ID:xsNgK89F
微妙に報告。
・戦闘で死んでいるキャラの操作ができる(動かないけど)。
・スライム君たちが、かたわれしか攻撃しないので、かたわれが死んだら何もしなくなる。
・ホイミを死んでいるかたわれにかけても、「しかし死んでいる」とかがでない(仕様通りかもしれない)。
・死んでいるキャラが、フィールド上では死んでいない(棺桶用意するの面倒やねー)。
793名前は開発中のものです。:2008/04/05(土) 07:25:07 ID:dhcGdK0W
自分の使っているやり方。

フィールド待機時(キャラが足踏みする)は描画は1秒間に4回のみ。
3つの視界サイズのメモリBMPに、
マップと足踏みの違うキャラを表示させておき、
それらを0, 1, 2, 1と1/4秒毎にWinタイマーで表示させる。

表示するチップセットは各ステージ(○○の町など)
で使う分をステージ初めにLoadImageでロード、
そのステージが終わるまでHBITMAPはDeleteしないで、
表示する時は、ロードされているHBITMAPをBitbltでコピーする。
(毎回のLoadImageは重くなる)
794名前は開発中のものです。:2008/04/06(日) 07:13:36 ID:6CvCSi7n
↑うまん、誤爆だった・・
内容は180度は違っていないのでよけいにややこしかった。
795名前は開発中のものです。:2008/04/06(日) 14:57:02 ID:7hSmasOs
>787
>作法としてあまり推奨はされてないみたいだし。
推奨されてないの?
確かにWin32APIの解像度、リフレッシュレート変更機能を使う方法は非推奨というのはみたことあるけど
(デスクトップ画面に戻った時にゲーム中の設定のままになる可能性があるから)
DirectXの解像度、リフレッシュレート変更機能について非推奨という記述は見たことがないんだが・・・・

因みに95カーネル系OSではDirectXのリフレッシュレート変更機能は機能しないけど
2000以降のNTカーネル系OSでは機能するから
95系カーネルでもリフレッシュレートを変更したいソフトがWin32APIを使って変更してたソフトが
「あまり良い方法じゃない」と言われてたのは見たことがある
796名前は開発中のものです。:2008/04/06(日) 16:09:43 ID:0jIMLCEg
85Hz以下は目にくる
797名前は開発中のものです。:2008/04/07(月) 03:31:46 ID:V2Suu5FZ
798名前は開発中のものです。:2008/04/07(月) 11:46:23 ID:91S+flSj
>>795
デバイスがサポートしていない事のほうが多々あるわけで
リフレッシュレートの気にならない見せ方を重視したほうがよろし

↓お茶噴いた
ttp://www.vector.co.jp/soft/win95/game/se160875.html
>■ゲームスピードについて(重要)
>画面のフレームレートは、リフレッシュレートに影響されますので、フルスクリーンでプレイする場合は、解像度:640×480のリフレッシュレートを60Hzに設定すると、ゲームに最適な速度になります。
>(やり方は、画面のプロパティで、画面の領域を、640×480に変更し、詳細のアダプタで、リフレッシュレートを60Hzに変更してください。その後、画面の領域を元に戻しておきましょう。)
>なるべくこの設定でプレイしましょう。
799名前は開発中のものです。:2008/04/07(月) 12:23:32 ID:Q0+s7XLA
>>798
デバイスがサポートされている場合はいいんだよね?
だったら切り替えできるようにしておけば何ら問題はないわけだ。
自分がプレイヤーとして見ても、その方が嬉しいんだが。

ところで、その例は論外だと思う。
まあ、ただのネタとして出したのかもしれないけど。
800名前は開発中のものです。:2008/04/07(月) 12:39:35 ID:VgKmZ/3D
>>799
環境依存のコードを入れたくない場合やメンテの手間等を総合的に評価すると推奨はできないなという話だろう

> まあ、ただのネタとして出したのかもしれないけど。
ネタじゃないと微塵でも考えられるのがすごい
801名前は開発中のものです。:2008/04/07(月) 19:28:04 ID:xRDNoxL9
>>797
エイちゃんとARIAいいねww
802名前は開発中のものです。:2008/04/07(月) 20:00:36 ID:Yqs5rlhg
>800
ダウンロードしてみた?
ネタにしては気合入りすぎてる気がするんだけど・・・
曲はちゃんとしたMIDI機器で聞くとそれなりに良い。
803名前は開発中のものです。:2008/04/07(月) 20:55:56 ID:w1+BmLz2
800と802が若干噛み合ってないな
804名前は開発中のものです。:2008/04/07(月) 21:34:59 ID:o5vIjWgB
>>802
いやいや
作品自体がネタという訳ではなくw
805名前は開発中のものです。:2008/04/07(月) 22:31:15 ID:Yqs5rlhg
>>804
勘違い申し訳ない、785の言葉足らずと787の非推奨発言に反応して暴走した

>>783
60Hz、やっぱりTVターゲットにしてるゲーム業界の標準だし・・・
(携帯ゲーム機もそれに習って60Hzだし)
ただ有名なフリーソフトの洞窟物語はVSYNC待ち無しの50Hz
なんでそうしたのかPixel氏ご本人に聞いたところVSYNCが綺麗に取れない環境がどうしてもあって、その対応策として
「逆にどんな環境でもティアリングが発生するような仕様にしてプレーヤーに慣れさせる方向に持っていくことにした」的なご返答を頂いた
なんでVSYNC無しの60Hzではなく50Hzなのかについては
「60HzVSYNC待ち無しだと毎回同じ様な高さにティアリングが発生して気になる、でも50Hzだとティアリングの位置も毎フレーム変わってあんまり気にならない」とのこと
806名前は開発中のものです。:2008/04/07(月) 22:37:53 ID:Yqs5rlhg
補足
・毎回同じ高さにティアリングが発生するのはVSYNCが60HzでVSYNC待ちをしなかった場合
・50Hzの理由としてこれ以外に「60Hzだとキーボードでプレイするには動きが速すぎた」というのがあったかもしれない
なにぶんお聞きしたのが数年前なので間違ってるかも、特に後者についての「パラメータ調整で速度は変更できるだろう」という突っ込みは無しで
807名前は開発中のものです。:2008/04/07(月) 23:37:39 ID:jWrDXnrl
作者としてはVSYNC待ちでリフレッシュレート60Hzを想定しています、
と断りを入れたうえで、リフレッシュレートがうまく変わらない環境or変えたくない人のために
オプションでタイマーも選べるようにしておく、あたりが無難なところでしょうか?
リフレッシュレート変更も設定項目として入れるかどうかは作者次第。
808名前は開発中のものです。:2008/04/07(月) 23:50:17 ID:/vZj0Lvx
山を描くために葉だけを見る、そんなスレはここですか?
809名前は開発中のものです。:2008/04/08(火) 00:17:21 ID:mMsb1yHl
それも散々いろんな人が見てきた葉っぱをな。
810名前は開発中のものです。:2008/04/08(火) 00:26:26 ID:QeCWOWiG
VSYNCと動作速度とティアリングの話が持ち上がったからちょっと寄り道してるだけですよ?
なんだかんだで確実に進んでます
811名前は開発中のものです。:2008/04/08(火) 06:59:14 ID:o0XdnuIu
遭難する時って、「前」に進んでいると思ってもとんでもない方向に迷い込んでいたりするんだよね・・・。
812名前は開発中のものです。:2008/04/08(火) 08:41:33 ID:5cGUzr7L
更新処理と表示は非同期が主流
813名前は開発中のものです。:2008/04/08(火) 11:22:45 ID:D77oObig
2Dで主流かどうかはともかく、妥当かもね
8141:2008/04/09(水) 01:43:24 ID:mQLX2XWn
>>792 修正版です
tp://sakuratan.ddo.jp/uploader/source/date77631.lzh

とりあえずFCDQ3では死んでいる仲間にホイミを使うと
戦闘時は「ホイミをとなえた!」だけで終わり
移動時は「しかしなにもおこらなかった!」といわれる仕様です。
でも、そういえば移動時にホイミを使ったときのメッセージを直してなかったのに気がつきました。(ぁ
他にも Lv:しに にするべきとか いろいろ直すところはあるんですが、とりあえずうp。
FlipScreenの一箇所化のためにコメントアウトしてるソースでかなり散らかってます。ごめんなさい。

リフレッシュレートに関して、いろいろありがとうございます。
特に50Hz用に作ってわざとランダムにフレームスキップを起こす、とかは興味深かったです。

個人的にフルスクリーンは好きじゃないんですが
DirectXはフルスクリーンで使うべきとかどっかで見たような気がします。
今回のドラクエはウィンドウモードでやるつもりですが
ゲーム作るならフルスクリーンのほうがいいのかなぁ?

815名前は開発中のものです。:2008/04/14(月) 00:00:55 ID:YO91oNda
切り替えられるようにしたらどうかな。
816名前は開発中のものです。:2008/04/14(月) 00:17:58 ID:j7xbhEgC
ここて1専用?
817名前は開発中のものです。:2008/04/14(月) 16:24:46 ID:q/WaNzFV
どうぞご自由に
818名前は開発中のものです。:2008/04/14(月) 16:47:43 ID:TO0aQykk
自由に貼ればいいよ
無視するだけだからね。
819名前は開発中のものです。:2008/04/14(月) 18:28:34 ID:TKIa58Zt
個人的には>>1が来てる間は
>>1専用のが分りやすいなぁ
話題が分散するだろうし
820:2008/04/14(月) 21:35:51 ID:iWKUUWl9
僕としては他にもやってる人がいると対抗意識とかで燃えるので上げて貰えると嬉しいです。
今現在の作業が難航しているのでなかなかソースあげられなくてすみません。
更に規制入りました orz
821名前は開発中のものです。:2008/04/14(月) 22:34:58 ID:McYGpCtB
C++じゃないとだめなの
822名前は開発中のものです。:2008/04/14(月) 22:41:38 ID:PotJeDOD
別にプログラミング環境は、何でも良いんでない?
JavaでもBASICでもRPGでも。
823名前は開発中のものです。:2008/04/15(火) 00:32:29 ID:dJrDRyP2
まじすか
824名前は開発中のものです。:2008/04/15(火) 00:46:38 ID:nXKEgxyo
アップした者勝ちか
825名前は開発中のものです。:2008/04/15(火) 00:59:45 ID:KQqWxjaS
RPGでゲーム作れるの?
826名前は開発中のものです。:2008/04/15(火) 18:31:10 ID:stjrlSie
RPGなんて言語あるんだな・・・
827名前は開発中のものです。:2008/04/15(火) 21:57:43 ID:Sn7D9zFc
スレタイだけには従った方がw
>>1の勉強的にも
828名前は開発中のものです。:2008/04/16(水) 16:08:59 ID:ec084lYU
java ok?
829名前は開発中のものです。:2008/04/18(金) 15:17:05 ID:kfFivpRf
okok
830名前は開発中のものです。:2008/04/18(金) 18:02:42 ID:dL4P4+YL
スレの住み分けとか考えると、C++以外はこっちの方がよくないかい?
まぁ、流れ的には、ここでやった方が、いいのかもしれないけど。

ドラゴンクエストクローンを作ろう
http://pc11.2ch.net/test/read.cgi/gamedev/1046454251/
831名前は開発中のものです。:2008/04/18(金) 19:07:18 ID:kMB4TaLW
自治うぜえな
832名前は開発中のものです。:2008/04/18(金) 20:34:21 ID:fAM6AEf7
そんなこと言ってたらC++だって
VCやBCCみたいな宗派とか
ライブラリが無数にあるぞ。
833名前は開発中のものです。:2008/04/19(土) 00:37:13 ID:liB737yT
まあ、次スレでC++つけなきゃいいだけか
834名前は開発中のものです。:2008/04/19(土) 19:47:05 ID:rDKs0OU5
そう言えばファミコンの解像度って4:3じゃなくない?
835名前は開発中のものです。:2008/04/19(土) 22:17:01 ID:vb1+VzZO
たしか256*240(224)くらいだったはず。
836名前は開発中のものです。:2008/04/19(土) 22:54:24 ID:d7ns0HIM
テレビに映す前にハードで横を引き伸ばしてた様な希ガス
837名前は開発中のものです。:2008/04/20(日) 03:34:27 ID:cDp8kH2M
>>830
なんでドラクエ縛りなんだよ
838名前は開発中のものです。:2008/04/20(日) 06:17:00 ID:bz3vTO0M
じゃあ次スレタイトルは「RPGを作る」だねw
839:2008/04/20(日) 10:03:41 ID:+3DaT4Zq
なんか変な流れになっちゃってますね。
多分僕がなかなかソース上げられないからですね。みんなごめんなさい。 Orz
ScreenFlip();を一箇所にしよう、って事で四苦八苦してますが、結構壁が高いです。

次のスレタイは別にこのままでいいとか思ってますが、ダメですか?
わがままですが、自分のスレがある、というのでモチベーション維持してきたところがあるので
共用スレにして、100人の中の一人になったら多分ダメになると思う。

あくまで1のスレだ、と言う前提で「俺もこんなの作ってみたー」といってうpしてくれるのは
なんか嬉しいので歓迎しますがその作品が軌道にのってきたら別スレ立てて、
お互いにスレ見合いながら競争意識もってやれたらな、とか思ってます。

と、言うわけでうpしてくれるのはjavaでも何でもおkですが、スレタイはそのままで行きたいです。

それにしてももう次スレか…
1スレで完成させるつもりだったのに… Orz
840名前は開発中のものです。:2008/04/20(日) 10:06:25 ID:O0uxoZ+a
やっぱり>>1以外の人は別スレ立てたほうが良いと思うよ。
ここまでスレが盛り上がったのは>>1の功績なんだし、他の人が加わるとややこしい事になりかねない。
姉妹スレとして、例えば「javaでFFっぽいRPGをつくる」とかにしたらどうだろう。
841名前は開発中のものです。:2008/04/20(日) 10:11:47 ID:o90XncpK
>>839じゃあ次スレで完成させるんだ!!

俺も今ゲーム作ってるけどマジすすまねぇ・・・
842名前は開発中のものです。:2008/04/20(日) 10:59:10 ID:K1fI+EDm
>>837
C++でもないドラクエでもない、でもこのスレで出したいってのか?
賑わってるスレによってきてコメントねだる構って君ですか?
寂しい乞食だな。
843名前は開発中のものです。:2008/04/20(日) 11:00:15 ID:VXM8VlaH
>>839
それでいいんじゃない?
>>830で、共用でもいいと取れたからこういう流れになっただけだから
844名前は開発中のものです。:2008/04/20(日) 11:03:33 ID:QqmfLAz5
ミス
2つめは>>820
845名前は開発中のものです。:2008/04/20(日) 11:11:03 ID:cDp8kH2M
>>842
自治厨うざすぎ

>>1のモチベーションUPになる他者のup法としては、
継続的,連続的なupをせず、>>1空気状態にしなければ何も問題にならないと思われるが?
 
俺は住人じゃなくて>>1に見てもらいたいな
846名前は開発中のものです。:2008/04/20(日) 13:56:57 ID:YkrvaP70
>>845
>俺は住人じゃなくて>>1に見てもらいたいな
スレタイ読めてる?
うざいのは君では?
847名前は開発中のものです。:2008/04/20(日) 17:11:32 ID:52CBKnOS
別に大丈夫だろ。うpしたとしても1が見るとは思えんw
空気になって結局すぐやめるから好きにやらせとけ
848447(438):2008/04/20(日) 17:12:32 ID:uS8kkKZs
自治厨沸きすぎww
>>1の意向無視してるのお前らじゃん
849名前は開発中のものです。:2008/04/20(日) 17:14:51 ID:tRRY7cv6
>>846顔が赤いお( ^ω^)どうしたのかおww?
850名前は開発中のものです。:2008/04/20(日) 18:09:15 ID:yCsTqTd3
おまえら落ち着けw
851名前は開発中のものです。:2008/04/20(日) 18:30:41 ID:lRNIG5/H
大抵自治厨がわくと荒れる。
ほっとけば自然な流れで進行していくのに。
正義面しておせっかいやくからこういうことになる。
自治は荒らしの一種です。
852名前は開発中のものです。:2008/04/20(日) 18:41:55 ID:tAGErLRt
結論

>>818
853名前は開発中のものです。:2008/04/20(日) 18:44:26 ID:ngUzn0rQ
各種統一スレッド

単発質問、単発依頼、思いつき企画、メンバー募集、成果・作業報告等は各種統一スレへ
板案内・初心者質問、 〜作ってください(依頼・企画)、 〜作ろうぜ(メンバー募集)、
〜作ってます(共同製作・プロジェクト)、 〜作ってます(自主製作・作業報告)、 〜作りました(評価希望)
854846:2008/04/20(日) 22:38:29 ID:YkrvaP70
ちょっと反省した
855名前は開発中のものです。:2008/04/21(月) 00:02:23 ID:Rwokvt3K
盛り上がると必ず自治が沸くな
856名前は開発中のものです。:2008/04/21(月) 00:17:50 ID:csQBkj+d
いいスレには自治厨と便乗厨が憑くもんだ
857名前は開発中のものです。:2008/04/21(月) 00:36:15 ID:9u3pWyQ1
その便乗厨ってのはいつ沸いたんだよ
見えない敵と戦って何が楽しいのやら
858名前は開発中のものです。:2008/04/21(月) 01:05:45 ID:jgJnHj6j
859名前は開発中のものです。:2008/04/21(月) 02:43:26 ID:csQBkj+d
戦ってるのはお前だろw誰と戦ってるんだよw
860名前は開発中のものです。:2008/04/21(月) 06:00:10 ID:NF2gkPRe
世界制服を目論む影の委員会と
861名前は開発中のものです。:2008/04/21(月) 09:57:10 ID:XnARMmNt
ということにしたいのですね:)
862名前は開発中のものです。:2008/04/21(月) 17:40:51 ID:BqqZA/4B
>>853
それは運営コストの都合
863:2008/04/21(月) 23:43:38 ID:i7JCjSVr
【じゅもん】のコマンドでScreenFlip()を使わなくしたのでとりあえずうpします。

今のところゲームの進行速度が処理系依存になってます。
Flipを一つにする前の方が処理が軽かった気がしますが、それは仕方が無いと思うことにします。

あんまりひどかったらコマンド開く時にマップをSSで取り込んで表示とかにして負担を減らすとか考えてみようと思います。
僕のPcだとだいたいいい感じの速度ですが、無駄な処理が多すぎで問題なのかもしれません。

tp://sakuratan.ddo.jp/uploader/source/date79224.lzh

まず関数ポインタを使って分岐を減らしてみようと思います。

あとgetMapObj()をfor文でX、Y二回囲ってやってるのもなんとかならないものでしょうか?
こういう場合の常套手段とか、俺はこうやってるぜ、的なものを教えてくださる方がいたら嬉しいです。
864名前は開発中のものです。:2008/04/22(火) 20:06:14 ID:z54J02Xc
処理系依存ってそういうことじゃないよね
865名前は開発中のものです。:2008/04/23(水) 08:21:46 ID:4A0EvJdh
D3D使う以上そもそも窓と箱でしか動かないから気にすんな
866:2008/04/23(水) 09:39:06 ID:0QvkWPlZ
あ、すみません、処理系依存じゃなくて処理能力依存?
今のところスペックでゲーム速度が変わってしまうはずなんですが、そういうのってなんて言うんですか?
867名前は開発中のものです。:2008/04/23(水) 10:33:39 ID:swO5vEUQ
DXライブラリは初期化に時間がかかるのがなんか嫌だ
ほかの良いライブラリ無い?
868みつけてきたよ:2008/04/23(水) 11:30:02 ID:swO5vEUQ
BREW C++
http://www.s-cradle.com/developer/sophiaframework/reversefaq/

DXライブラリ3Dとは 〜作者が明かす開発の様子
http://fatalita.sakura.ne.jp/3DLib/

Dark GDK - Home
http://gdk.thegamecreators.com/
http://myhome.cururu.jp/kacom/blog/list/ct4

Simple DirectMedia Layer: Table Of Contents
http://yun.cup.com/wingccsdl.html
http://www.libsdl.org/intro.jp/toc.html

DirectX9.0c用ライブラリ Luna
http://luna.sumomo.ne.jp/

Selene/ Lue
http://selene-lue.halfmoon.jp/

SimpleXとUDXのホームページ
http://www.geocities.jp/yuetake/
869名前は開発中のものです。:2008/04/23(水) 13:10:06 ID:5p/xLUnT
つGLUT
870名前は開発中のものです。:2008/04/23(水) 13:36:44 ID:GxtbO+3R
>>866
処理系が何かまず理解しようぜ
>>868
釣りにしか見えんがあえて突っ込む
プレイする人全てにBREW SDKインスコさせるんか?
実機で動かせないのにBREWでやるメリットは?
標準ライブラリ禁止の環境を選ぶメリットは?
なぜクァルコムでなくソフィアクレイドル?
871名前は開発中のものです。:2008/04/23(水) 14:51:23 ID:43r2j5ue
適当に見つけてきただけでないかい?
872名前は開発中のものです。:2008/04/23(水) 17:35:16 ID:swO5vEUQ
アドバイスを元に厳選した結果、この3つなりました GLUTはゲーム向きじゃないみたいで入れなかった

Dark GDKはマイクロソフト純正でDirectX9cをフルサポート。
マイクロソフトVS2008/VC++のオプションとして無料配布。 

SDLはマルチプラットフォームで日本語サイトも多いみたい。

SimpleXとUDXは日本人製。

Dark GDK - Home
http://gdk.thegamecreators.com/
http://myhome.cururu.jp/kacom/blog/list/ct4

Simple DirectMedia Layer: Table Of Contents
http://yun.cup.com/wingccsdl.html
http://www.libsdl.org/intro.jp/toc.html

SimpleXとUDXのホームページ
http://www.geocities.jp/yuetake/
873名前は開発中のものです。:2008/04/23(水) 17:38:50 ID:swO5vEUQ
Dark GDKは、Micorosoftが紹介しているだけかもしれない
詳細不明
http://www.microsoft.com/express/samples/GameCreators/
874名前は開発中のものです。:2008/04/23(水) 18:09:24 ID:TTpE0aSM
>>873
その通り紹介しているだけだ
純正じゃない
875名前は開発中のものです。:2008/04/23(水) 18:29:30 ID:swO5vEUQ
Dark GDK って本体が220MあってVC2008専用っぽいですね。やってみようしたけど導入がめんどいな。
876名前は開発中のものです。:2008/04/23(水) 20:13:08 ID:swO5vEUQ
ここのプログラマは質良かったが途中で計画倒れになった 動かせる実行プログラム置いてある

FrontPage - SaGe4開発公式Wiki
http://f44.aaa.livedoor.jp/~sagadev/saga4wiki/pukiwiki.php
877名前は開発中のものです。:2008/04/23(水) 21:56:19 ID:YX93E4iV
>>873
有償サードパーティ製品の商用不可版だよそれ
878名前は開発中のものです。:2008/04/23(水) 22:51:05 ID:7u/w19vf
bbd)494d@fuetoeeyw@f
879名前は開発中のものです。:2008/04/23(水) 23:24:57 ID:CuNq78kL
もうSDLでいいじゃん
簡単だし
880名前は開発中のものです。:2008/04/24(木) 00:06:04 ID:Zc+98OBr
>>879
C++で使うと悪い癖が付くから俺的には非推奨だな…
881876:2008/04/24(木) 01:24:31 ID:qFWKTgUR
本家は消えたよ 
こっちは動くの置いてある 
ソースコードもついてるけどグラフィックどうやってるのかわかる人いますか?
http://www.geocities.jp/saga4project/
882876:2008/04/24(木) 01:33:33 ID:qFWKTgUR
BitBltっていうwinAPIがあるんですね しらんかったよ
ほかに必要なものはなく動かせるのがいいですね
883名前は開発中のものです。:2008/04/24(木) 02:27:44 ID:xwy2OfN/
BitBltは旧GDIのメインコード
今はDrawImageだっけ?
884名前は開発中のものです。:2008/04/24(木) 02:29:08 ID:xwy2OfN/
ちなみにBitBlt=Bit Block Transfarの略だ
885名前は開発中のものです。:2008/04/24(木) 03:00:50 ID:qFWKTgUR
ビットキャラ動かすだけなら、Windowsの標準だけで出来るって、初心者はなかなか知らないね
SaGa4のソースと画像を変更すれば簡単にできそう
886名前は開発中のものです。:2008/04/24(木) 05:45:32 ID:YOUwEz7i
直接メモリ内容をWindowへ描画できる、SetDIBitsToDeviceの方が使い勝手がいいよ。
887名前は開発中のものです。:2008/04/24(木) 09:22:38 ID:x+WW2ER3
描画が遅くてマップスクロールや半透明処理に難ありだけどな。
888名前は開発中のものです。:2008/04/24(木) 11:31:38 ID:iYC7zBhe
>>884
Transf'e'r
889名前は開発中のものです。:2008/04/24(木) 17:00:04 ID:3KtvzujD
(`e´)
890名前は開発中のものです。:2008/04/24(木) 20:33:05 ID:6S7HGBZe
>>887
いや、そうでもない。
というか、むしろDirectGraphicsよりもDIBSectionの方が使いやすいし、安定する。

半透明処理って、今は携帯(iアプリ)でもソフトでできちゃうんだよね・・・。
冗談で20*20のキャラクタのRGBベース半透明処理をint配列上でやったら、50個(20*20*50=20000ピクセル)でも問題なかったw
891名前は開発中のものです。:2008/04/24(木) 20:35:25 ID:DPr7DyyX
俺もDIBSectionでやってたなぁ。直接いじりやすいし
892名前は開発中のものです。:2008/04/24(木) 20:43:51 ID:xwy2OfN/
ケータイのCPUやメモリバンドは結構高性能ですよ
パソコンとの比較で圧倒的に劣るのは
容量関係でしょうねぇ
893名前は開発中のものです。:2008/04/24(木) 21:15:28 ID:x+WW2ER3
早いといってもハードウェア資源を活用できるDirectXやOpenGLの方が描画が早いわけだから要するに俺様の勝ちw
894名前は開発中のものです。:2008/04/25(金) 00:13:04 ID:zJzd1rCb
何も考えず毎フレーム描画しまくった方が簡単だし
895名前は開発中のものです。:2008/04/25(金) 07:00:49 ID:CbC63WhO
>>880
詳しく
896名前は開発中のものです。:2008/04/25(金) 09:55:28 ID:S01dxMay
>>895
設計、命名規約全てが古い思想のまま時間が止まっている。
おかげで可搬性(勿論Cに対する親和性も)は高いが、C++の勉強にはならず、知らず知らずのうちにベターCが癖になってしまう。

だからIrrlichtやOgreのような、C++にターゲットを絞ったライブラリがオススメ

あくまでもC++の勉強と言う意味の話な
自分でラッパークラス作る人には関係ない。
あとライブラリならsourceforgeやGPWikiで探したほうが早そう
897名前は開発中のものです。:2008/04/25(金) 10:49:15 ID:5EPDv8+U
言わんとしてる事は分からなくもないが
ここで3Dメインのライブラリ奨められともな
898名前は開発中のものです。:2008/04/25(金) 11:09:29 ID:S01dxMay
>>897
今なら2Dも板ポリで描画するのが普通だと思うのだが、このスレ的には違うらしいな

>C++にターゲットを絞ったライブラリがオススメ
ここが主題なので気にしないでくれると助かる
899名前は開発中のものです。:2008/04/25(金) 11:28:24 ID:zJzd1rCb
Irrlichtみたいな3D向けのライブラリで2Dやろうとするとかなり面倒だよ
結局自分でその上にさらに2Dライブラリを書く破目になる
900名前は開発中のものです。:2008/04/25(金) 11:31:25 ID:DkNdWCpn
>>899
日本語理解できる・・・?
901名前は開発中のものです。:2008/04/25(金) 11:55:03 ID:zJzd1rCb
言いたいことはわかるけど2D限定なら何選んだとしても
DrawTexture(image, pos)みたいな機能しかどうせ使わないでしょ
902名前は開発中のものです。:2008/04/25(金) 12:04:24 ID:DkNdWCpn
>>901
日本語でおk
>>899と繋げるとなお意味不明になる
903名前は開発中のものです。:2008/04/25(金) 12:31:02 ID:GrqzlfQ5
いじめてやるなよ、彼は22なんだ。
904名前は開発中のものです。:2008/04/25(金) 12:39:41 ID:CbC63WhO
>>896
そういう意味ね
C++でプラットフォームSDKを直に使うようなもんか
905名前は開発中のものです。:2008/04/25(金) 13:17:25 ID:S01dxMay
>>901
俺へのレス?違ったらごめんなさい。
機能が不足しているからSDLでは駄目と書いたつもりはないよ(実際書いてないし)
>言いたいことはわかるけど
何が伝わったのやら不安です
906名前は開発中のものです。:2008/04/25(金) 13:52:26 ID:zJzd1rCb
3Dだとシーンノードとか色々エンジンに枠を決められる形になるかもしれないけど,
2D限定ならC向けだろうがC++向けだろうがそんなに変わらないんじゃないのかと言いたかっただけ
C++の勉強が目的なのに頂点触るような低レベルな処理を自分で書くことになるなら本末転倒だから
自分なら2Dの機能が充実してて余計な手間が少ない方を選ぶかな
言葉足らずですまん
907名前は開発中のものです。:2008/04/25(金) 14:19:34 ID:S01dxMay
>>906
やっぱり伝わってない
>低レベルな処理を自分で書くことに
なんで例に出したエンジン限定で考える?

クラスライブラリを使うだけでも大きな違いになる
C++のライブラリは皆3Dしか考えてないとでも言うのだろうか
908名前は開発中のものです。:2008/04/25(金) 14:40:51 ID:lEKC9FQk
>>906>>898の2行目だけでなく>>896もしっかり読め
909名前は開発中のものです。:2008/04/25(金) 23:08:19 ID:y04GeOWH
自分でラッパークラスつくるのも勉強になるぞ
910名前は開発中のものです。:2008/04/25(金) 23:26:15 ID:Juw+qoZr
ラッパークラス作るくらいならDQ1じゃなく
人のラッパーでFF7作ってくれ
911名前は開発中のものです。:2008/04/26(土) 02:03:09 ID:KYMBYF8v
DIBSectionはCreateDIBSectionで作成されるHBITMAP.
だから、DCも作れてBitBltが使える。 SetDIBitsToDeviceはいらないよ。
912名前は開発中のものです。:2008/04/26(土) 02:29:04 ID:oRlt/XjJ
>>909
オブジェクト指向身についてからじゃないとゴミを量産することになるかとww
913名前は開発中のものです。:2008/04/26(土) 09:18:44 ID:/H3NhDgZ
>912
誰もが通る道
914名前は開発中のものです。:2008/04/26(土) 10:04:23 ID:kYLpue6d
>>898
板ポリの方が速度的にも有利っぽいね。
そういや、seleneは板ポリで楽に2D描画できたような。

2DなのにユーザーにDirectX9入れさせるのが心苦しくて、
結局SDL使ってるけどw
915名前は開発中のものです。:2008/04/26(土) 10:19:58 ID:HD/ItWBW
>>914
directx9なら普通入れてるだろ・・・
916名前は開発中のものです。:2008/04/26(土) 10:29:40 ID:Ty9eGfu0
DXライブラリも板ポリだよ
SDLは回転できないのがなあ
917名前は開発中のものです。:2008/04/26(土) 10:35:14 ID:S1C7Q8xe
どうせならDQ8をドット絵で作り直そうぜ
918名前は開発中のものです。:2008/04/26(土) 20:34:50 ID:/H3NhDgZ
SDL+OpenGL最強
919名前は開発中のものです。:2008/04/26(土) 20:44:15 ID:oUGgudS+
OpenGL(プ
920名前は開発中のものです。:2008/04/26(土) 21:38:33 ID:sRUsMPI7
GLUT最強
921名前は開発中のものです。:2008/04/26(土) 22:49:28 ID:EWnb+tnm
もうそろそろスレたって半年になるのかぁ
922名前は開発中のものです。:2008/04/27(日) 14:21:38 ID:BqPYtsIq
不毛なゲーム機論争のようになってるところをみると
そろそろ飽きて来たようだな
923名前は開発中のものです。:2008/04/27(日) 14:53:03 ID:Juz4fgvh
住人がな
924名前は開発中のものです。:2008/04/27(日) 15:55:39 ID:d8dn9eud
いやいや、色々勉強になってるよ
平行線でもなんでも色々なやり方が聞けるのはいい
925名前は開発中のものです。:2008/04/28(月) 01:42:33 ID:XuEZuVtq
わたしゃ自前のゲームは仕様書を書き始めてから
2ヶ月半で作り終えたよ

まぁC++なんてレガシー言語を使えって言われれば、
それ以上かかるかもしれんが
何せ出来上がったもの次第の世界だからねぇ
926名前は開発中のものです。:2008/04/28(月) 03:29:04 ID:4e2Q4ZFn
ゲームプログラムで常に一昔前の言語が使われてきた理由は一重に「処理速度」だから
高性能なCPUが出回る昨今では確かにDQ1くらいの低負荷ゲームを敢えてC++で組む必要はないのかもしれない
まあ今後も低・中負荷なゲームを作り続けるつもりだったらの話だけど
927名前は開発中のものです。:2008/04/28(月) 03:53:11 ID:++Yg+mW/
「常に」とか「一昔前」とか
何を言ってるん
928名前は開発中のものです。:2008/04/28(月) 05:39:49 ID:PyUwQy1r
今おすすめの言語は?
綾織?
929名前は開発中のものです。:2008/04/28(月) 07:20:56 ID:4e2Q4ZFn
>>927
Cが盛んに使われてる頃にアセンブラをずっと使ってて
C++やJAVAに移った頃にC言語をやっと使い始めた
C++が古くなった頃にやっとC++(オブジェクト指向)化
そういう意味なんだけど「常に」とか「一昔前」がそんなに気になった?

>>928
ゲーム業界目指すんなら未だにC++じゃないかな
次の世代ではメモリオーバーランやオーバーフローが発生し難い言語に移りそうだけど
930名前は開発中のものです。:2008/04/28(月) 07:40:22 ID:Teb0uPLP
>>928
携帯の勢いが強いから、Javaかな
931名前は開発中のものです。:2008/04/28(月) 08:24:39 ID:PyUwQy1r
>>930
なるほど・・・
PC限定では何でしょう?
932名前は開発中のものです。:2008/04/28(月) 09:04:30 ID:XuEZuVtq
PC限定ならC#かVBじゃないですか
C++は性能は高いけど何せ煩雑
933名前は開発中のものです。:2008/04/28(月) 09:13:34 ID:6/mav3Ok
>>930
ちょっと紛らわしいレスだと思う
携帯JavaとJavaは区別して考えたほうがいい
容量制限のおかげでまともにオブジェクト指向を駆使できない環境だから
重箱の隅つついてすまん

>>931
どれくらいプログラム書ける人なのか示してくれないと…
934名前は開発中のものです。:2008/04/28(月) 09:27:50 ID:1byUW4+2
携帯はC言語だろ
935名前は開発中のものです。:2008/04/28(月) 09:47:38 ID:+ItDL5tD
このスレも終焉を迎えているようだな
この板の流れはいつもこうだ
936名前は開発中のものです。:2008/04/28(月) 10:23:22 ID:Teb0uPLP
>>933
おいおい。
いつの時代の話だw

今の携帯は、jarも100KBが最低線、MBアプリが標準の一角に入り込もうとしている状況だよ。
携帯/PC両用のJavaライブラリ(DoJa/MIDP2.0/Java2SE対象)だって、十分現実的(実際、やってみたことがある)。
937名前は開発中のものです。:2008/04/28(月) 11:38:16 ID:6/mav3Ok
>>936
どんなしょぼいアプリなの?
仕事でやってたら普通にキツキツ
938名前は開発中のものです。:2008/04/28(月) 11:58:42 ID:whTKnOvF
>>936
似非オブジェクト指向乙
939名前は開発中のものです。:2008/04/28(月) 17:21:33 ID:hbTwTj/G
どんだけプログラムができる連中なのかは知らないが
スレ違いの話題で馬鹿みたいに盛り上がってるのを見ると
人間的には・・・だな
傍から見ててみっともない
940名前は開発中のものです。:2008/04/28(月) 17:30:17 ID:whTKnOvF
>>939
まぁもちつけ。
スレの頭から読み直せ
941名前は開発中のものです。:2008/04/28(月) 17:56:39 ID:9cIDDrog
1ってもう一週間くらい来てないのか?俺もゲーム作るの遅いけど頑張ろうぜ!!
942名前は開発中のものです。:2008/04/28(月) 18:26:31 ID:YSHpPx0n
はなす >>1
へんじがない。ただのしかばねのようだ。
943名前は開発中のものです。:2008/04/28(月) 18:31:33 ID:4prTFfqn
選ぶのはC++でいいんじゃない?
どのみち色んな言語渡り歩くんだろうし。

スレ違いとも言われないしなw
944:2008/04/29(火) 03:38:37 ID:+dE29e3P
なかなか修正が終わりません。
作業時間が減ったのも要因ですが、やっぱり力不足と作った関数の流れを忘れていて作業効率が落ちている感じです。

フィールドのFlipScreenを一つにまとめる、ということで修正してますが
メッセージコマンドの扱いで悩んでます。
扱いというか、文字の表示の仕方、っていうんですかね?

それとクラス構造で迷ってます。
シーンはオープニングと移動と戦闘の三つ。
FieldクラスとBattleFieldクラスの親クラスとして抽象的なクラスを作り、それを継承したOpeningFieldクラスを追加。
それぞれに対応したAgregateCommandクラスを持ち、
キー入力を受け付けるcontrol()関数と、描写を行うdraw()関数を実装する。

なんかよく分からない文章になってます。通訳が必要かもしれません。Orz

今までの今までの成果物上げておきます。
あと極端な脱線はスルーしますが、今まで位の脱線は好きです。
書き込みが無いのは分からない単語を少しずつ調べて飲み込もうとしてるからです。

へたれな1ですが、まだまだ続けます。よろしくです。
tp://sakuratan.ddo.jp/uploader/source/date80026.lzh
945931:2008/04/29(火) 04:44:17 ID:Xk4jJJyO
>>932
thx

>>933
これから趣味でやるなら何がいいかなと思っただけなので
946名前は開発中のものです。:2008/04/29(火) 08:51:47 ID:/lmprzCX
タスクシステムやっとけ
947名前は開発中のものです。:2008/04/29(火) 16:01:07 ID:jsqLnRsc
>>945
全くの初心者ならHSPでも便利と感じてしまうし、
初心者でないならかえって不便に感じるし…
どの程度できるのか知りたいっていうのはそういう意味

旬は動的言語と.NETだけれども、初心者&ユーザー視点では抵抗あるだろうね
948名前は開発中のものです。:2008/04/30(水) 00:35:27 ID:YVwxJ37t
>>944
なんか、ファイルが開けないと出て
遊べないんだよね
俺の環境のせい?
ファイルパスのマルチバイト文字とか
そこら辺が問題の予感
949名前は開発中のものです。:2008/04/30(水) 02:14:25 ID:dm94fi1G
>>948
Cの直下に置いてみた?
950名前は開発中のものです。:2008/04/30(水) 20:01:46 ID:m5kTmUDX
オブジェクト指向がよく分からん
1のコードをVBに移植しようと思うんだが
クラスに入力情報を受ける関数をぽんと作ればいいのかな
951名前は開発中のものです。:2008/04/30(水) 20:03:11 ID:m5kTmUDX
>>947
それはいえてる
俺たちおっさんは.NETすげーだけど
初心者は案外そうは思わないようだ
952名前は開発中のものです。:2008/04/30(水) 22:26:32 ID:m5kTmUDX
まず冒険の書とか選ぶ部分は
バイトリード+コモンコントロール・・・を使うのがセオリーだって
僕なんかは思うんだが

↑のソースではループしながら入力を検知するみたいで
なんか・・よく分からん
結局元のコードは無視して冒険の書は1から作り直した。
まぁVBだから早い。1日で出来た

他にもある
戦闘シーンが出てきて全体攻撃などでAI振り分け処理があるんだが
そのもともとのデータをポインタ参照で取得しているが
VBにはポインタがなくてよー分からんw

だれかフォローおね
953名前は開発中のものです。:2008/04/30(水) 22:52:28 ID:m5kTmUDX
まだまだある
キャラクターの基底クラス?とかあるけど、変数データが山のように
だらだらと・・・パラメータをまとめるヘッダファイルとかもあるが
VBだったらこれは多重継承に書き換えてOKだよね?

別に非難している訳じゃない
Field.cppとかよく出来てる
ここら辺は参考になった・・・けど、手元で別に開発している
ゲームプログラムとそっくりだ
結局マップチップの処理は愚直に場合分けする
しかないという結論になるのかな

954名前は開発中のものです。:2008/04/30(水) 23:07:17 ID:tyYl+BZ6
>>949
ソース見てたら、ただ単に未実装なだけの気もしてきた
すまん
955名前は開発中のものです。:2008/04/30(水) 23:21:14 ID:V/TwBdKB
>>950-953
久々に触って熱くなってるのか知らんが少し落ち着いてくれ
いじるのも設計見直すのも勝手だが、連4レスとかがっつきすぎだろう
ポインタと同等な機能の実装はググったら参照渡しとか出てくるよ
956:2008/05/01(木) 23:14:17 ID:7qrsvu5o
>>950
僕ごときのソースを改変しようとか言われてちょっと嬉しかったりします。

冒険の書選択画面もフィールド移動も戦闘も、なるべく同じように扱おう、という考えでこんな感じになってます。
ちなみにバイトリードって何ですか?コモンコントロールはぐぐったらなんとなくは理解できました。

キャラクタの基底クラスの変数郡は… 
今のところ力、素早さ… 等のパラメータはMetaStatusクラスとしてまとめて持たせてますが、
どうやってまとめたらすっきりしますか?アドバイスいただけたら嬉しいです。

そういえばそろそろ次スレ立てた方がいいのかしら?
957名前は開発中のものです。:2008/05/02(金) 00:05:36 ID:0Fx+UNNq
>>956
VBですとクラスの多重継承の間にモジュール構造体をそのまま
取り込んだりも出来るんで、クラス数を抑えながら非常に複雑な
プログラミングが出来るんです

すいませんがC++は詳しくは知りません
多分お作りの内容で最善に近いまとめかたではないでしょうか
958名前は開発中のものです。:2008/05/02(金) 00:07:22 ID:0Fx+UNNq
要するに移植するにあたってのこっちの都合ってことです;
せっかく手間をかけて作業するんだから↑のようなVBの
メリットを生かして、ついでに元のコード量を大幅に
削減したいなということです

それだけです。すいません
959名前は開発中のものです。:2008/05/02(金) 02:40:01 ID:+Vg7G+ZR
>>957
は?VBで多重継承なんかできないでしょ?
960名前は開発中のものです。:2008/05/02(金) 04:53:59 ID:W+spjiUa
FCのドラクエなんてアセンブラでしょ。 多重継承は使ってませんよ。
961名前は開発中のものです。:2008/05/02(金) 08:31:40 ID:+Vg7G+ZR
>>960
とりあえず黙っててくれないか
962名前は開発中のものです。:2008/05/05(月) 18:21:24 ID:mspxDfm7
見事にスレを止めた>>961
963名前は開発中のものです。:2008/05/05(月) 21:03:29 ID:bM7ttr2Y
960gj
俺たちは1の動きを待ってるぜ。
964名前は開発中のものです。:2008/05/05(月) 23:34:41 ID:dnPAwGNu
FCのドラクエといえば会話中、ウインドウ表示中は一切他のオブジェクトが動いてないから
C言語+DXライブラリでいうところの for(i=0;i<60;i++)ScreenFlip();
みたいな処理がいたるところにあるんだろうな・・・
色んな処理を各関数内で完結できそうで楽そう
965名前は開発中のものです。:2008/05/06(火) 01:30:32 ID:EviW9RDm
モンスターの行動が【たたかう】以外もできるようになりました。
スライムべスがこうげきとメラを3:1の割合で使ってきます。

tp://sakuratan.ddo.jp/uploader/source/date80861.lzh

Flipの一元化ですが、挫折しそうです。 Orz
メッセージの表示で挫折。
イベント実行中で挫折、です。
よく考えたら、これってマルチスレッド処理にした方が楽なんじゃないか、というか
マルチスレッドっぽいものを自力で実装をするのに他ならないんじゃないか、という事に気がつきました。

いままでちまちまやってきたことが無駄になりそうですが
これはそのままにしておこうと思いました。
必要が出てきたら直します。

p.s.
またもやアク禁です。
次スレ立てられないけど、過疎スレだしなんとかなりますよね、きっと。
966名前は開発中のものです。:2008/05/06(火) 02:39:06 ID:WOM/spyE
はじめてきたが、お前はだれだ?
967名前は開発中のものです。:2008/05/06(火) 02:43:10 ID:8rS0+5WG
次スレは有志が立ててくれるさ

ところで、描画は一つのクラスに纏めた方がいいかもね
Flip云々より、複数のクラスに描画処理があるのが問題だと思う
実際流れが把握できてないみたいだしw
968名前は開発中のものです。:2008/05/06(火) 02:43:43 ID:8rS0+5WG
はかせ名前名前ー!
969名前は開発中のものです。:2008/05/06(火) 02:53:26 ID:KlSvD65Q
思うままにマルチスレッド使おうぜ
970名前は開発中のものです。:2008/05/06(火) 03:16:57 ID:KUBYYhJx
>>963
何がgjなのかわからん

>>960って、詭弁の定義にモロあてはまってるから
そもそも何を言いたいのか俺にはわからねえ…
971名前は開発中のものです。:2008/05/06(火) 08:02:43 ID:5MeL008e
>>967

最適の手法なんてものは時と共に変化するよ
972名前は開発中のものです。:2008/05/06(火) 09:22:43 ID:Mjb5jGkE
俺なんかはウィンドウズプログラミング始めるときに描画処理とゲーム処理で完全に分けるスタイルに変更したから
エミュレータとかにあるようなターボモードとかスローモーションとかも実装できたよ。
おかげでめんどいとこは飛ばせるぜ
973名前は開発中のものです。:2008/05/06(火) 10:24:27 ID:GzFpALvZ
描画処理はコールバックに、
ゲーム処理はメッセージループに書くとか?
974名前は開発中のものです。:2008/05/06(火) 10:32:39 ID:7NG3eqmK
ドット絵に足踏みさせないの?w
975名前は開発中のものです。:2008/05/06(火) 12:29:43 ID:o5unedUS
>>971
それはそうかもしれないが、
この場合は纏めるとこから始めた方がいいと思うんだよね
基礎勉強の意味でも
976名前は開発中のものです。:2008/05/06(火) 16:19:38 ID:KUBYYhJx
>>967
描画を1つのクラスまとめるってどういうこと?
ゲーム内オブジェクトをPaintクラスが全て追跡して描画とか?
そんな極悪な設計は考えられん…
977名前は開発中のものです。:2008/05/06(火) 16:58:35 ID:GABAW0Yk
>>976
確かに一つのクラスてのは言い過ぎだったかも
でも、描画を分離することに意味はあるはず
978名前は開発中のものです。:2008/05/06(火) 19:41:47 ID:IfzoUQfN
ゲームプログラミングにおいては>>972のやり方が普通だね
描画と状態の更新は分ける、コレ基本
で、全てのゲームオブジェクトに更新メソッドと描画メソッドを追加する
そしてメインとなるクラスから
メインループ {
更新();
if (フレームスキップするか?) {
描画();
ScreenFlip();
}
}
とするだけ、あとは各メソッドが芋づる式に呼ばれる。
979名前は開発中のものです。:2008/05/06(火) 20:38:09 ID:i9CaJWKJ
愛はいつだっていもづる式さ
980名前は開発中のものです。:2008/05/10(土) 15:08:28 ID:sh7lMsdw
恋はいつでもオブジェクト指向〜♪
981名前は開発中のものです。:2008/05/10(土) 16:15:25 ID:DKWlwNux
別スレッドにするって意味だと思ってた。
>>978さんのやり方だと処理落ちしそうなときに描画をスキップするだけ。
前回描画から17msより多く経過してたら描画スキップ。
982名前は開発中のものです。:2008/05/10(土) 17:10:17 ID:Fd+wQ6fZ
てかDXライブラリなのか。
普通に書く場合はメッセージループで一定時間経過したらゲーム処理+描画呼び出し
コールバックでWM_PAINTが来たら現在の状態を表示だな。ライブラリはどうなのか知らんが、
こうしないとウィンドウの一部に無効領域(だっけ?)ができた時にそこが真っ黒になっちゃうからな

メインクラスの描画関数が呼ばれたら、そこから更にキャラの描画関数を呼び出すって感じで
芋づるすれば、各クラス内で完結した形になる。
983名前は開発中のものです。
>>979
テラナツカシス