[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/28 14:30 / Filesize : 293 KB / Number-of Response : 980
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:名前は開発中のものです。 [2007/11/02(金) 01:53:08 ID:M/fkomaJ]
C++の勉強をかねてFCのドラクエっぽい感じのRPGを作りたいんです。

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

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


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

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






3 名前:名前は開発中のものです。 mailto:sage [2007/11/02(金) 02:58:35 ID:SG+xTINV]
しらべればいいやん
ねらーなら

4 名前:名前は開発中のものです。 mailto:sage [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へのポインタでないといけない

あとは突っ込み待ち

5 名前:1/2 mailto:sage [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;
}


6 名前:2/2 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/11/02(金) 11:13:49 ID:hOYjzdZZ]
ナイス器用貧乏

8 名前: mailto:sage [2007/11/02(金) 13:12:52 ID:o1sf08np]
>>4 さん >>5 さん ありがとです

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

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

sakuratan.ddo.jp/uploader/source/date56840.zip


9 名前:名前は開発中のものです。 mailto:sage [2007/11/02(金) 15:10:27 ID:3v9/ukJI]
intのままビットマップフォントで描画したほうが軽いでしょ

10 名前:名前は開発中のものです。 mailto:sage [2007/11/02(金) 17:25:18 ID:IOxKv0gf]
俺もそう思う

11 名前: mailto:sage [2007/11/02(金) 21:17:49 ID:M/fkomaJ]
>>5

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

>>9,10
フォント自体をいじって半角数字のところに全角の数字を入れちゃうってことですか?
もうちっとkwsk




12 名前:名前は開発中のものです。 mailto:sage [2007/11/02(金) 22:49:55 ID:aw8yHlLW]
よく分からんがitoaかsprintfで半角文字列にして
ループでその文字コード舐めるだけでいいんじゃないの

13 名前:9 mailto:sage [2007/11/03(土) 00:24:39 ID:Iws3HFCw]
>>11
マップ描画の時、チップ番号に対応するスプライトを描画するよね。
それと同じ仕組み。

14 名前: mailto:sage [2007/11/03(土) 10:20:51 ID:gstDZlgr]
文字描写用にDrawString()っていう関数があるけど
それを使わないでBMPとかを書くDrawGraph()を使うってことか…
ドラクエフォントを使うなら濁点の関係で文字描写の関数自体を
作らなくちゃいけないかもしれない、ってうすうす思ってたんだ… Orz

15 名前: mailto:sage [2007/11/03(土) 21:05:48 ID:gstDZlgr]
いまさらこんなことを言うと殴られるかもしれないけど、
フォントの問題は難しそうなので、先にマップを作ってみようと思います。
C++に慣れる意味もこめてわかりそうな所から攻めてみます。

16 名前:名前は開発中のものです。 mailto:sage [2007/11/03(土) 22:12:55 ID:9QsIYSTC]
背景は、マップチップを敷き詰めていくのは非効率的なので、
でっかい画像を用意したほうがいいですよ。
丸々1マップ分でなくても、使い回しが利くブロックに分けるのも手。

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


23 名前: mailto:sage [2007/11/04(日) 07:15:08 ID:7NRLPi1I]
アク禁にくらった…


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

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



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

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

sakuratan.ddo.jp/uploader/source/date57068.lzh

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

背景に全て画像を使うんだったら、
死人出た時用の画像を別途用意しないと無理じゃね?
それが嫌だったら、ファミコンと同じようにやるしか無いよなぁ

25 名前:名前は開発中のものです。 mailto:sage [2007/11/05(月) 00:38:00 ID:2iUdY2Qo]
8ビットDIBでパレットアニメーションっていうのはどうかな?

26 名前: mailto:sage [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 名前: mailto:sage [2007/11/05(月) 12:48:39 ID:BE3u4m/u]
あ、違った

パレットアニメを使うなら8個もハンドル用意しなくていいのか。
…勉強してきます

28 名前: mailto:sage [2007/11/05(月) 22:33:46 ID:BE3u4m/u]
パレットアニメーションについてはなんとなーく わかったようなわからないよ
うな…
あとは実践しながら覚えろ、って感じですが、
ぐぐって出てくるのがC#ばっかり… Orz

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

素直にBMP複数用意したほうがいいのかな…

29 名前: mailto:sage [2007/11/09(金) 16:17:06 ID:YJbVYn7p]
わからないところを後回しにしつつ、なんとなくやってます

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

だれかボスケテ
sakuratan.ddo.jp/uploader/uploader/source/date57945.lhz

30 名前: mailto:sage [2007/11/09(金) 17:40:48 ID:YJbVYn7p]
わからないところを後回しにしつつ、なんとなくやってます

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

だれかボスケテ
sakuratan.ddo.jp/uploader/uploader/source/date57945.lhz

31 名前:名前は開発中のものです。 mailto:sage [2007/11/09(金) 22:22:32 ID:SDOrYmNB]
>>30
ダウンロードできん
どっちみち俺わからんけどがんばれ



32 名前:1 [2007/11/09(金) 22:46:17 ID:71zhIprC]
すんまそん、URLまちがえてました

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

33 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/11/11(日) 00:14:09 ID:I2Ef3r5N]
なんでこんなに無駄にexeデカいんだろ

35 名前:名前は開発中のものです。 mailto:sage [2007/11/11(日) 04:22:42 ID:az0lrOpc]
デバッグモードっつーのと、DxLib.lib がデカいからじゃね?

36 名前: mailto:sage [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

37 名前:33 mailto:sage [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);
}

38 名前:1 mailto:sage [2007/11/11(日) 15:47:06 ID:Bi03rvGZ]
>>33

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

Char c

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

まじサンクスです。



39 名前:1 mailto:sage [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 名前: mailto:sage [2007/11/13(火) 16:38:02 ID:CeANgSHM]
>>43
あ!そういうことか!

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

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

あれ?どれくらい食うんだろ?

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

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

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];
}


47 名前:1 続き [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;
}

48 名前:1 続き [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/11/15(木) 09:30:13 ID:/bSoxToM]
ヒント
new,std::string

51 名前:名前は開発中のものです。 mailto:sage [2007/11/15(木) 10:15:05 ID:Dxr/BWiM]
ポインタじゃないものにpointerなんて名前つけるのは微妙
それはインデックスだ



52 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/11/17(土) 03:29:57 ID:NtE6efWM]
>>55
どうやら問題はデータが一番最後かどうかではなくデータそのものに依存するらしいところまでは分かった。
例えば「ようやく はなしが できるようになった。」の部分を""で囲ったり、
「ようやく はなしができるようになった。」とするとエラーは出なくなる。
逆にエラーが出るオブジェクトの順番を変えてやってもやっぱり同じ部分でエラーが起こる。

てかVC++だとエラーでまくりでビルドできない。
少しくらいなら直してもいいんだが最初見えてるの直すと30くらい来るから無理w
俺の為に直せとは言わないけどint型の関数なのに値を返さないとか
初歩的ミスも結構あるからそういうのは直しといた方がいいと思う。
というかBCCだとあれでもコンパイル通るんだな。

57 名前:名前は開発中のものです。 mailto:sage [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

61 名前:1 [2007/11/17(土) 10:35:08 ID:DAW7rWYI]
あ、またURL載せ忘れた Orz
だめだ、落ち着け僕。

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



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

以上、同じようなことやってて途中で放置プレイしている人間のチラ裏

63 名前:名前は開発中のものです。 mailto:sage [2007/11/17(土) 16:57:44 ID:rLUooNoc]
>>61
取り合えず そこのあぷろだにログをあげてみた
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 名前:名前は開発中のものです。 mailto:sage [2007/11/20(火) 05:28:57 ID:17MvCz5h]
処理系依存なんじゃないの? 

66 名前:名前は開発中のものです。 mailto:sage [2007/11/20(火) 11:42:07 ID:w3lrBuf0]
ドラクエ作るんなら
最初にツクール作った方がいいよ

意味わかる?

つまりマップエディタとかキャラエディタとか
管理や汎用がラク

67 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/11/21(水) 20:53:38 ID:+bb6+Uy/]
>>71
>対象(敵一匹、敵グループ、敵全体、味方一人、味方全員、自分)
これだとパルプンテみたいに効果によって対象が変わる呪文が実装できない。
パルプンテ作る気ないならいいけど。

73 名前:名前は開発中のものです。 mailto:sage [2007/11/21(水) 23:25:21 ID:QAMIESYX]
モンスターデータなどは
パラメータ等を格納したマスターデータと
今戦闘しているモンスターのみが必要なサブデータは分けて考えた方がいい。
クラスとインスタンスの関係のような感じ。

74 名前:名前は開発中のものです。 [2007/11/22(木) 00:00:20 ID:YnWGqx+/]
いちお、うちは、ドラクエオンラインを目指してるのだw
ドラクエの上位版な。力ある奴こい

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

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

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

よろすくw


75 名前:名前は開発中のものです。 [2007/11/22(木) 00:17:26 ID:Gx1wHKMf]
物理エンジン「フェニックス」日本名『 鳳 凰 』を
開発できる者いたら来るのだ。
www112.sakura.ne.jp/~kaientai-project/creategame.htm

76 名前: [2007/11/22(木) 13:36:00 ID:1nrzvj+v]
>>72
なるほど…
パルプンテか…
あとラナルータとかアバカムとかトヘロスとかあるな…
対象に「空間」を加えてみよう。
パルプンテの実装はかなりめんどくさそうだ…

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

あと、セーブデータの使用も考えないとだ(汗


77 名前:名前は開発中のものです。 mailto:sage [2007/11/23(金) 07:48:06 ID:aIwuXGYs]
>グラフィック(4方向*2パターン)

横向きのグラフィックは反転すれば2種類で済むじゃん
と思ったんだが、
ドラクエ3って、右向きと左向きでグラフィック違うんだな
初めて知ったわ

78 名前:名前は開発中のものです。 mailto:sage [2007/11/23(金) 07:49:13 ID:aIwuXGYs]
>グラフィック(4方向*2パターン)

横向きのグラフィックは反転すれば2種類で済むじゃん と思いきや
ドラクエ3って、右向きと左向きでグラフィック違うんだな
初めて知ったわ

79 名前:名前は開発中のものです。 mailto:sage [2007/11/23(金) 07:50:08 ID:aIwuXGYs]
ゴメン、2回書いてしまった

80 名前: [2007/11/23(金) 21:19:47 ID:EqvVctbz]
>>77
そうなんすよ。
モンスターの中にはグラを反転させてるのもいるみたいですね。


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

…両方やった方がいいのかな?

81 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 15:23:38 ID:86yI1zZh]
>>1に触発されて、俺もRPGの土台作ってるわ
こりゃぁたしかにC++の勉強になるわな

98 名前:1 [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) ;

メインループのなかにいれてみたら?

100 名前:97 mailto:sage [2007/12/03(月) 19:02:30 ID:b9C0qSJp]
>>98
>>1のと比べたら、見せられるほど効率的なプログラムじゃないよ・・・

101 名前: [2007/12/03(月) 21:11:55 ID:TADfcfNf]
>>97
ぜんぜん効率よくないっすよ…
デバッグも力技だし。
メモリとかめちゃくちゃ無駄遣いしてるし
すでにスパゲッティ化してて自分でも訳分らなくなったりしてるし Orz



102 名前:97 mailto:sage [2007/12/03(月) 22:05:34 ID:b9C0qSJp]
メインとかまだぐちゃぐちゃだし、容量も大きいぜ・・・
ハズイのでそのうち消すわ

ttp://sakurachan.dip.jp/up/src/up8417.lzh

103 名前:名前は開発中のものです。 mailto:sage [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]
ayusya.hp.infoseek.co.jp/ProgramCString3.html
便利だよ

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]
fatalita.sakura.ne.jp/SoftReview/img/DQTEST.gif
こんなん作ってたんですけど、ソースとかアップしてもいいですか?
全然開発進んでないんで多分見ても面白くなさそうですけど

111 名前:名前は開発中のものです。 mailto:sage [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 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/12/11(火) 22:50:31 ID:FZGhBsSs]
>>119

return c + '0';

でよくね?ちなみにマルチバイトだと…

124 名前:名前は開発中のものです。 mailto:sage [2007/12/11(火) 22:54:54 ID:FZGhBsSs]
おっとこの場合数値から全角文字か

125 名前:名前は開発中のものです。 [2007/12/12(水) 07:39:59 ID:J/TJHZ+a]
全角文字を' 'で囲むな

126 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 08:37:22 ID:7RFZk29b]
ドラクエフォントを入れなくても動くように、
ドラクエフォントを画像データにしたほうが良いのでは?
字数知れているし。

127 名前:名前は開発中のものです。 [2007/12/12(水) 13:27:41 ID:DWQ3Q4UI]
>>126
サイズetcの変更はどうする


128 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 15:32:17 ID:DfKtb5wZ]
>>125
C#ならOK

129 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 16:09:05 ID:9ySxVkow]
サイズ変更なら、StretchBiltなりDrawExtendGraphなりでできるだろ。

130 名前:名前は多分開発中のものです。 [2007/12/12(水) 16:17:11 ID:m1CVZqe+]
>>128
残念ながらココはC++のスレ。


ストレッチは1ブロックあたりがでかく汚くなる。

131 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 20:51:46 ID:DYTuCNrB]
ドット絵ベースなゲームに、TTフォントを使うこと自体間違っている。



132 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 22:58:46 ID:VmmQnXXX]
WCHARでいいんじゃね

133 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 22:59:54 ID:M90VuyCU]
いっそC++/CLIで

134 名前:名前は開発中のものです。 mailto:sage [2007/12/13(木) 00:45:36 ID:6EdETOic]
>>132
むしろwcharでないとvistaで問題出るんじゃないかね
使ってるライブラリがwchar対応してるか知らないから黙っていたが…

135 名前:名前は開発中のものです。 mailto:sage [2007/12/13(木) 00:52:37 ID:8oxft27H]
0〜9が並んでる保障ってあるの?

136 名前:名前は開発中のものです。 mailto:sage [2007/12/13(木) 01:39:26 ID:oHtWeYhI]
>>135
ttp://ja.wikipedia.org/wiki/ASCII

137 名前:1 [2007/12/13(木) 07:33:43 ID:xfGpgGHW]
そのうち画像を表示に切り替えるかも知れないと思いDrawStringDQを使ってました。
実はWCharって言うのがよくわからないんですよね…
使わなくても問題ないなら全角はChar二つ分でやりたいと思います。
あ、でも練習のためにも使っていたほうがいいのか。
勉強してこよう。。。。

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

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

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

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



138 名前:名前は開発中のものです。 mailto:sage [2007/12/13(木) 09:30:11 ID:nRgEBkW0]
マルチバイトのほうが面倒だと思うんだが
最近のwindowsだと標準じゃないし。

139 名前:名前は開発中のものです。 mailto:sage [2007/12/13(木) 13:35:23 ID:6EdETOic]
TCHARで切り替えられる作り方をするのが普通

140 名前:名前は開発中のものです。 mailto:sage [2007/12/13(木) 16:40:58 ID:wG78UTwH]
そうだな
俺もTCHARをお勧めする
Borlandにもちゃんとtchar.hあるじゃないか

141 名前:名前は開発中のものです。 mailto:sage [2007/12/13(木) 16:49:11 ID:wG78UTwH]
といっても全角使うのは明らかなんだからWCHARでいいか
とにかくchar2個とかはやめといた方がいい
時代の流れなんだから勉強しておいて損はない



142 名前:名前は開発中のものです。 [2007/12/13(木) 17:30:26 ID:c4nhYvvc]
従来の方法を学ぶのも大事。
とりあえず今回はchar[2]でいこか

143 名前:名前は開発中のものです。 mailto:sage [2007/12/13(木) 19:17:40 ID:BdT1avie]
マルチバイトが従来の方法(笑)

144 名前:名前は開発中のものです。 [2007/12/13(木) 19:50:19 ID:AkmNVLfQ]
>>142
>>1乙。それぐらい面倒くさがらずにやれよwwww
てめぇみたいなクズの公開オナニー見てもらえてるだけありがたいと思え。
わかったら黙って言うこと聞いて動けボケが

145 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/12/13(木) 23:33:02 ID:PIfEmrrG]
まーstringが使えるならそれで良いかもね。

148 名前:名前は開発中のものです。 mailto:sage [2007/12/14(金) 00:58:40 ID:zCqlLrTu]
必要経験値って公式で出ないのかな

149 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/12/14(金) 09:18:05 ID:zCqlLrTu]
テキトーに増加率決めて毎回かけてやれば勝手にインフレするんじゃないかな



152 名前:名前は開発中のものです。 mailto:sage [2007/12/14(金) 11:14:06 ID:RH7bHxg6]
lv = 1 + floor(sqrt(sqrt(exp * 2)));

とか


153 名前:名前は開発中のものです。 mailto:sage [2007/12/14(金) 11:38:29 ID:OjqwAalp]
string使うにしてもwstringがあるよ

154 名前:名前は開発中のものです。 mailto:sage [2007/12/14(金) 13:43:31 ID:nzb/etqw]
ひらがなしか使わないなら
ka = か
とかしてワイド文字使わなくてもいいんじゃないの。2バイトで同じだし

155 名前:名前は開発中のものです。 mailto:sage [2007/12/14(金) 14:09:47 ID:kCvfmPHq]
初心者自慢大会開催ですか?

156 名前:名前は開発中のものです。 mailto:sage [2007/12/14(金) 23:11:45 ID:PVHuBi0D]
ところで>>1の素材って使ってもいいの?

157 名前:名前は開発中のものです。 mailto:sage [2007/12/15(土) 06:07:38 ID:bFTHAKDO]
おまえら>>1を妬み過ぎw

158 名前:1 [2007/12/16(日) 00:08:59 ID:ErKldHRa]
wstringなんてものまであるんですか…。
Cってcharとの戦いなんだなぁ…。
あとカタカナは使います。
メラゾーマ が めらぞーま になってしまう。
経験値のアレはまだ直してないんですが
レベルアップした時にステータスが伸びるようになりました。
それを確認するための画面もつくりました。
つよさ>つよさをみる>
で確認できます。

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

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

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

159 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 01:42:40 ID:3vNRwpYs]
俺も造ってみようと思ったけどVCしか持ってないんだよね

160 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 10:55:45 ID:XAAKi2bo]
オレはvcで作ってる


161 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 10:57:24 ID:XAAKi2bo]
まちがた。c#



162 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 15:20:09 ID:PiXzjAgu]
ソース見たがベタ書きし杉だろ

165 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 15:35:46 ID:EnxQUxiD]
C++でFCのドラクエっぽいRPGを作るための上手な書き方について考察するスレになりましたよみなさんだいじょうぶですか?

166 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 16:03:55 ID:DoKPbT8s]
某ランド使いのコードが汚いのは定説

167 名前:1 [2007/12/16(日) 16:09:32 ID:ErKldHRa]
>>165
おk
>>164 >>166
ソース書いてるときに理性が飛ぶ瞬間があって、冷静になって見直すと手がつけられない状態だったりします。
関数の行数が多すぎとか、引数が長すぎて見づらいとか。
エディターの所為にして逃げてもよい?(責任転嫁
>>163
もしかして、海で敵と戦うときにそのメッセージがでませんか?
海のモンスターは未設定だったので、グラフィックもモンスターのパラメータも用意してないので、エラーになります。
エラーならエラーで、ちゃんとError関数を使うべきでした。 Orz
海でしびれくらげが出るようにしました。(色が変なのは勘弁してください。

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

168 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 20:25:32 ID:Ty2sbBpB]
>>167
今後のためにも一度キレイにしたほうがいいよ、
キミのスキルが上がってドンドン規模が大きくなった時に、
過去に作った基底クラスの改修のリスクが大きくなる。

169 名前:名前は開発中のものです。 mailto:sage [2007/12/17(月) 00:17:39 ID:5U7KFETp]
>>1の才能に嫉妬

170 名前:名前は開発中のものです。 mailto:sage [2007/12/18(火) 14:29:15 ID:k2BEnLXI]
>>169
>>1自演乙

この程度カスでも作れるからw
初心者が一生懸命やってると思って暖かく見守ってやってんだから調子に乗るなよ

171 名前:名前は開発中のものです。 mailto:sage [2007/12/18(火) 16:12:05 ID:u7lRE18e]
>170
zipでくれ



172 名前:名前は開発中のものです。 mailto:sage [2007/12/18(火) 18:36:06 ID:2np8Lr6Q]
>>170
こっちにもいんのかよw
単に作ってる奴叩きたいだけか?

173 名前:名前は開発中のものです。 [2007/12/19(水) 13:33:05 ID:bDHcUzyc]
ドラクエフォントを手に入れたが、どうやって使えばいいのかわかりません

174 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 14:20:48 ID:Pj6CyBbs]
いちはとうぼうした

175 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 14:55:35 ID:F/n53iWq]
>>1の技量であのコードをリファクタリングするんだもの
そりゃ時間かかるさ

176 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 15:48:07 ID:wxkJalN4]
いちはメモリリークをたおした!
けいけんち4ポイントかくとく!
3ゴールドをてにいれた!


177 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 16:05:30 ID:qljgkazn]
ソースを公開するからチンカスが住み着く
もうソースは出さん方がいいんじゃね

178 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 16:37:07 ID:Rgtwr7BZ]
sambaやapacheのソース見て綺麗だと思う奴はいないが
世界中で役に立っている。それでいいじゃないか。

179 名前:名前は開発中のものです。 [2007/12/19(水) 16:46:25 ID:K1qNY7pS]
>>177
禿同だな

貶される程のコードならオープンにしても役にたつとは思えないしな
現にオープンソースにして>>1に何のメリットがあった?
基地外に煽られてるだけだろww

180 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 17:27:15 ID:WU61vHzY]
日本語でおk

181 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 17:49:51 ID:UFtlHy+Q]
別にソースを出さないといけないってワケでもないだろうし、
1に得るものがなければ、ソース無しで構わないでしょ。
見やすいコードを書かせようと必死になってる奴が
いるみたいだけど、ハッキリ言って流用されて乙なだけですよw



182 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 17:55:16 ID:G/oyIi8C]
>>181そんなヤツいないだろwww
流用って、普通にフリーでオープンソースなRPGなんていくらでもあるし
そういうのは、多くの人の手がはいってるから結構なにげに凄い処理とかをさらっと描いてたりする。
>>1のがんばりは認めるけど、やっぱりまだまだ駆け出しだしねぇ・・・


正直、わざわざ>>1のソースをどうにかして使おう!!とか思ってるヤツは、(居ると仮定すればだが)
どう頑張っても、そいつは流用できるLvに達してないと思うが。

183 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 18:00:41 ID:WU61vHzY]
1より下の奴が参考になるならそれはそれでやらしとけばおk
上の奴はスルーしとくか自分がソースだせばおk

どっちにしろ>>1の人気に嫉妬

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

あとは>>181ね。

185 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 18:29:45 ID:EcJVxUlm]
2chなんて口だけのチンカスの集まりだからな

186 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 18:31:39 ID:gSqu12Dg]
ossan.fam.cx/up/gazo/src/1198056595625.gif

ドラクエ5,6のフォントは、これだな。

187 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 21:08:33 ID:dUxlLljR]
ここって1以外が作品出してもいいの?

188 名前:名前は開発中のものです。 [2007/12/19(水) 21:16:55 ID:cCY2VP4H]
パソを買おうとおもう高校生なんですが、最近のRPGツクールでどれくらいきれいな画面つくれるのか教えてください

189 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 21:19:24 ID:EcJVxUlm]
お。早くも>1のパクリ作品がうpされるのかな ワクワク

190 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 21:54:24 ID:Mguefe/2]
パクられると騒ぐ奴はC++でプログラム組んだこと無い奴だな。
三日前の自分は他人って言葉も知らないんだろう。

そもそも素人の設計じゃいくら可読性をあげても他人が再利用なんて非現実的。
>>1がうらやましいなら勉強しろ。

191 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 22:08:25 ID:qtVSPlwl]
いきなり素人が素人煽りだしたけどなんで?



192 名前:名前は開発中のものです。 [2007/12/19(水) 22:12:00 ID:Mr+WVqhZ]
>>191
>>185


193 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 22:21:05 ID:k6t6Eu11]
おまいらスレタイと>>1をちゃんと読んだのか?

194 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 23:37:31 ID:mTRZ4/8Q]
知恵を貸してください、ってんだからソース出しとくのはいいんじゃね?
それで叩かれるのがイヤだって言われると困るけど、
叩くな言ってるのは他人なんだろ?
本人はけっこう素直に聞く耳持ってがんばってるようじゃないか。
ここは温かい目で、叩いてやれよ。

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


ところで。ウィンドウの×押しで正常終了できないプログラムって嫌いなんだが。。。

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

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

あと、ここでソース公開したいっていう人はぜひ公開してください。
あんまり人のソースを読んだことがないので、人のソースを読む練習にもなるし。
でも、当然流用されることを前提の上でお願いします。

196 名前:名前は開発中のものです。 mailto:sage [2007/12/20(木) 00:17:31 ID:55uWllby]
別に汚くなんかないよ

197 名前:名前は開発中のものです。 mailto:sage [2007/12/20(木) 00:40:35 ID:c2k1kUtz]
他のスレでも制作者叩いてる奴だから気にするな

198 名前:名前は開発中のものです。 [2007/12/20(木) 14:49:58 ID:E0vkwHlc]
とにかく、1頑張れ。叩かれてもいいじゃないかぁ

199 名前:名前は開発中のものです。 mailto:sage [2007/12/20(木) 15:00:36 ID:BoVdQ1SP]
よくわからないけど>>1はホモに好かれるタイプ
現におれが>>1のこと好きだもん

200 名前:名前は開発中のものです。 mailto:sage [2007/12/20(木) 21:08:01 ID:hPf6ENX3]
なんというウホスレ

201 名前:名前は開発中のものです。 mailto:sage [2007/12/20(木) 22:38:17 ID:tLt8cR7R]
1は女性かもしれないぞ!



202 名前:名前は開発中のものです。 [2007/12/21(金) 08:09:06 ID:JJIaTGjL]
>>201you′re the dreamer

203 名前:名前は開発中のものです。 mailto:sage [2007/12/21(金) 11:59:28 ID:CIW9ZWZn]
>>1
前途多難かもしれませんが頑張ってください。
自分は挫折した。
夢の続きをあなたが担ってください。
応援してます。

204 名前:名前は開発中のものです。 mailto:sage [2007/12/21(金) 15:15:47 ID:qNfTgitS]
>>1
俺も能無しのうんこだから挫折した。
改造してパクるくらいしかできそうにないから早く完成させてくれ。
利用するだけ利用させてもらいます。

205 名前:名前は開発中のものです。 mailto:sage [2007/12/21(金) 22:40:13 ID:+ezETTlV]
パクってでも完成させられるなら、それはそれでいい腕だと思うがな。
少なくとも同じようなものを作れるだけの力量がないと、他人のソース読むなんて無理。

ドラクエとは関係ないが、俺もやろうとしたことあるからよくわかる。

206 名前:名前は開発中のものです。 mailto:sage [2007/12/21(金) 22:45:03 ID:sZQMdwXf]
自分で作れないうちは切り貼りでもなんか失敗するもんだしね

207 名前:名前は開発中のものです。 mailto:sage [2007/12/21(金) 23:20:35 ID:pcz7fB4f]
どれだけ無知なんだよw

208 名前:名前は開発中のものです。 mailto:sage [2007/12/21(金) 23:35:41 ID:nR6ECJXi]
ソース丸々コピればいいんじゃないの?

209 名前:名前は開発中のものです。 mailto:sage [2007/12/22(土) 01:36:50 ID:NqisS1wp]
無知じゃない奴ならいくらでもパクれるだろうが、
そんな奴はパクっても、自分が楽をするくらいの意味しかないだろ。

>>208
ソース丸々コピーしても、
その後どこを動かせばどうなるのかがきちんと分かってないと、
結局自分のしたいようにはできないんだよな。

210 名前:名前は開発中のものです。 mailto:sage [2007/12/22(土) 01:55:30 ID:wzivk57h]
俺はパクるからどうでもいいよ

211 名前:1 [2007/12/22(土) 16:57:59 ID:GupsOJNk]
プログラムって再利用の積み重ねで成り立っているものだと思ってました。
どこまでが再利用でどこまでがぱくりかの線引きは人それぞれなんでしょうが。
自分で書いたものを他人が、「俺が書いたんだぜー」見たいにいわれるとさすがにそれは違うだろ、と思いますが
でも、ソースを公開している以上、利用者の良識にまかせるしかないですよね。

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

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

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

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



212 名前:名前は開発中のものです。 mailto:sage [2007/12/22(土) 18:06:58 ID:RJx1d8cq]
色々弄ったらVC2005でもコンパイルできた

213 名前:名前は開発中のものです。 mailto:sage [2007/12/22(土) 22:13:12 ID:76aqh1yL]
DirectXつかわないのでもOK?

214 名前:名前は開発中のものです。 [2007/12/22(土) 23:42:56 ID:dee/YD/W]
この掲示板における悪辣ないわゆる「叩き」による
ゲーム開発の業務妨害行為(刑233/234)に対する
情報提供をお待ちしております
有料で販売していたソフトを公開中止に追い込まれました
現在も無料ですが広告収入を得ており業務は継続し
民事上の損害額は発生していると考えています
よろしくお願いします
darkhouse.milan.jp/
hogehogent@hotmail.co.jp


215 名前: mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/12/23(日) 12:43:02 ID:91qXaWQF]
>>217
入れ替える他適当にプロジェクトの設定を変えないと駄目だったけど、
それはVC固有の問題なので置いておくとして

class foo {
void func() {}
};

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

主にget***()のような函数でこういうのが問題になってたかな
get***のような函数では恐らくメンバの値を変更しないのでconstつけた方がいいかも



222 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/12/23(日) 16:23:12 ID:puPpIEyb]
そもそもDXライブラリはcygwinでの利用を想定していない

225 名前:名前は開発中のものです。 mailto:sage [2007/12/23(日) 19:29:09 ID:1h86Cx8E]
>>224
というわけで、VC6でビルドしてみた。
VCでビルドするにはいくつか注意が必要。
まず、forループのintの再定義でエラーが出るので、
プロジェクトのプリプロセッサの定義に
for="if (false) ; else for"
を入れる。これでエラーが出なくなる。

226 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/12/23(日) 19:30:19 ID:1h86Cx8E]
さらに続き
さらに、このプログラムでは、読み込むセーブデータの形式が
デバッグモードの場合csvで、そうじゃない場合savとなっているが、
VCではデバッグ用の定義がDEBUGではなく、_DEBUGなせいで
セーブデータが読み込めない。
OpeningCommands::openSaveData
OpeningCommands::getFileAmount
の中の、
#ifdef DEBUG

#ifdef _DEBUG
にする。

とりあえずこれで動いた。

228 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/12/23(日) 21:04:00 ID:jakAnU/i]
なんだかんだ言いつつパクり候補だらけで吹いたw


231 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 02:26:02 ID:sxR7bqmX]
古代イスラエルのペテン乞食の誕生日を祝う義理なんかないね。



232 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 04:20:15 ID:Qqp4Qc85]
いつもzipでupしてて大変そうな>>1
openSVNでググってみ

upの手間解消以外にもいいことあるから

233 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 12:25:44 ID:W6Vnta1P]
sourceforge以外にもこんなのがあったのか
しかもtracつきとは…
至れり尽くせりですな

234 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 13:28:12 ID:tyHiXGGL]
>>232
なにこのオレオレ証明書
怖くてアクセスできません

235 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 13:52:28 ID:Qqp4Qc85]
>>234
>>1のアーカイブ内に盗聴されてマズイものなんか明らかに含まれてないわけで。

そもそもソースが公開されてるわけだし。
何を怖がるの?

236 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 13:59:49 ID:QMo/K7QW]
2ch的には、zipでくれ
でOK

237 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 14:02:37 ID:tyHiXGGL]
>>235
>>1がオレオレ証明書の危険性とリスクを正しく理解して使うかどうか分からないので、
あえて警鐘を鳴らしてみただけ。

238 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 14:11:31 ID:Qqp4Qc85]
>危険性とリスク
背伸びしてることはよくわかった

239 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 14:25:18 ID:tyHiXGGL]
>>238
善意でいい場所教えてたところに水をさして悪かったね。

240 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 14:34:02 ID:mDb7ohkP]
オープンソースコミュニティから認証されていれば
俺俺証明書といえどもそこらの企業が発行するよりよほど信用に値する。

241 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 14:56:27 ID:VZkDqfyR]
ID:Qqp4Qc85
これがゆとりか・・・あはっ



242 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 15:41:17 ID:GMWXNbta]
オペラだと証明書の警告出るからビビる事がある

243 名前:名前は開発中のものです。 [2007/12/24(月) 15:42:27 ID:kLIOmkDP]
cygwinってitoaは駄目なのか…。へー。

17時間かけて書いたソースを一瞬で17時間前の状態に戻してしまい、即svnを導入した俺が来ましたよ。

244 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 15:45:19 ID:GMWXNbta]
TortoiseSVNが素晴らしすぎです

245 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 16:15:18 ID:jsxGAw5D]
VSSでいいや

246 名前:1 [2007/12/24(月) 16:35:47 ID:dQ2B5wP/]
とりあえずなんか証明書が出たのはびびりましたw
オレオレ証明書って、そういう意味か。ちょっと吹いた。

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

っていうか そもそもSVNってなんだ?ってレベルなので Orz
いろいろ勉強になるなぁ。。。
初心者ながらにスレ立ててよかったよ。
おまいら 本当にありがとう。


247 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/12/25(火) 09:04:51 ID:bD/x789M]
無能が必死になっててワラタw



252 名前:名前は開発中のものです。 [2007/12/25(火) 09:28:03 ID:3AGd3eRU]
homepage2.nifty.com/natupaji/DxLib/DxLib_VC2_24.exe
ここからVC用のを落として、 >>1のソースフォルダ中に上書き。
空のプロジェクト作って、プロジェクトフォルダに>>1の中に入ってるファイルをコピー。
最後に既存項目の追加。


でもGetColorなんちゃらが未定義だってエラーが出る。
何のこっちゃ。

253 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/12/25(火) 15:13:58 ID:/Ih03gre]
最近見たアクションゲームのコードはC++で3600行弱
それをほとんど分割せずに一つのファイルに書いてた
管理できる作者が凄いと思った


263 名前:名前は開発中のものです。 mailto:sage [2007/12/25(火) 15:14:09 ID:iHzefklh]
多様性というか宗教がね

264 名前:名前は開発中のものです。 [2007/12/25(火) 15:24:50 ID:EFT5OR5C]
今、手持ちのVB製RPGのコードを数えてみたが
システム部が530行しかないぞ?
Win標準のコントロールは多用してるが・・


265 名前:名前は開発中のものです。 mailto:sage [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さん、マジ感謝です。

267 名前:1 続き [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 名前:名前は開発中のものです。 mailto:sage [2007/12/25(火) 22:07:35 ID:YDMhjtcq]
>>262
まぁ、3600ぐらいなら稀にいるよなwww
保守なんかでぶち当たると、担当者をおもいっくそぶん殴りたくなるけど。

269 名前:名前は開発中のものです。 mailto:sage [2007/12/25(火) 23:06:27 ID:a/8xYA/E]
ワシのコードは20000行まであるぞ

移動手段は主にCTRL+F。

270 名前:名前は開発中のものです。 mailto:sage [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++)だと、こんな感じみたい。

www.sm.rim.or.jp/~shishido/rpgp.html


273 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/12/26(水) 15:46:09 ID:SCmg4E2p]
YOzFontOTWLが好き

276 名前:255 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2007/12/27(木) 19:25:50 ID:StfaQThG]
いや普通に出来たと思ったが。>>Eclipse

でもC++ならVC++かDelphiでいいんじゃね?
VC++もExpress Editionなら唯だし。

279 名前:名前は開発中のものです。 mailto:sage [2007/12/27(木) 23:34:33 ID:5OqnPp7P]
>>269
なんという俺ww

280 名前:名前は開発中のものです。 mailto:sage [2007/12/27(木) 23:50:02 ID:kJ7Tc5xf]
VCEEてどとねとしか作れなくね?

281 名前:名前は開発中のものです。 mailto:sage [2007/12/27(木) 23:55:21 ID:rPpTSPbm]
>>280
お前みたいな素人でもWin32のソフトが作れるようになったから
ダウンロードしてインスコしろ
www.microsoft.com/japan/msdn/vstudio/express/

VC2005EEでもちゃんと手順を踏めば作れたが
VC2008EEは勝手にインスコしてくれる
ミクロソフト様に感謝汁




282 名前:名前は開発中のものです。 mailto:sage [2007/12/28(金) 17:46:11 ID:bBukVEqP]
linuxでも動くようにSDLかirrichtでおk

283 名前:名前は開発中のものです。 mailto:sage [2007/12/28(金) 21:00:05 ID:vFKC9i1/]
>>282
釣りか?
突っ込み所満載なんだが

284 名前:名前は開発中のものです。 mailto:sage [2007/12/29(土) 00:13:30 ID:E8hFcf4X]
DXライブラリの画像置き換えとかどうすればいいんでしょうか。

285 名前:名前は開発中のものです。 [2007/12/29(土) 21:57:12 ID:Wv0RLQJj]
ほす

286 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 00:19:42 ID:BeUezp3c]
【目指せ】2ch_city【世界一】

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

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

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

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

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

2chの力で世界1位を目指そう(`・ω・´)

287 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 00:49:10 ID:+C5YkyEz]
>>286
うぜえな
このコピペあっちこっちで見るし
よっぽど暇なんだな


288 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 00:55:37 ID:xBMBsl4k]
つか、xipとか名乗るのが来ている時点で、
このスレにもこんなのが出入りしているんだなぁと幻滅。

289 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 10:19:34 ID:D5MQ9R0C]
非2ch民乙

290 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 13:36:17 ID:FTDXJbxl]
運営が推せと言ってるわけでもないし
そもそも2ちゃん関係の街がいくつもあるだろ

291 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 13:47:05 ID:bQOjHSJq]
2ch発にこだわるバカだろ



292 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 20:57:55 ID:vox8eoxh]
【目指せ】2ch_city【世界一】

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

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

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

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

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

2chの力で世界1位を目指そう(`・ω・´)


293 名前:1 [2007/12/31(月) 23:48:38 ID:FFzcA1fJ]
年末の行事に追われてなかなか作業が難航してますが、挫折したわけではないので見捨てないでください。

それでは おまいら よいお年を。

294 名前:名前は開発中のものです。 mailto:sage [2008/01/01(火) 00:16:46 ID:6htQfom6]
>>1 は にげだした

295 名前:名前は開発中のものです。 [2008/01/01(火) 12:44:38 ID:bYZxBYfp]
ドラクエの逃げる効果音は秀逸

296 名前:名前は開発中のものです。 mailto:sage [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


298 名前:1 [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 名前:名前は開発中のものです。 mailto:sage [2008/01/04(金) 14:01:08 ID:aDuyr57S]
Sugeeeeeeeeeeeeeeeeeee

300 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2008/01/04(金) 14:59:40 ID:0MJJiUxP]
ファイル分割と前方宣言を駆使すれば
循環インクルードは回避できるYO!



302 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2008/01/04(金) 18:14:08 ID:uTfk0Xu7]
>>298
メンバは基本ポインタのみにすれば
前置宣言だけで、継承元のクラス以外のファイルはincludeする必要はない。
というか実体を持たせるとそのクラスを作成したときにメンバに実体を持っている
クラスのインスタンスも作成されて複雑になってくると問題が発生しやすいので
基本的には単にデータをまとめたようなクラス以外はポインタで持つのが基本。
ゲーム作るのと平行してC++の勉強をもっとした方がいい。

305 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2008/01/05(土) 10:54:21 ID:NGmgLj5+]
Gofはひととおりどんなパターンがあるのか目を通しておくだけで、
あとは必要に応じて辞書みたいに引くんでいいと思う。
「ここはもっと綺麗に実装できなかな?」と思ったときにちょうどいいパターンがないか探す感じで。

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

「ここはコマンド機能だからCommandパターンで作ろう!」
 ↓
「あれ…? なんでこんなに面倒な構造にしなきゃいけないんだ…?」
 ↓
「せっかくデザインパターンを適用したのにちっとも効率良くならない。やっぱデザパタなんて糞だな。」

309 名前:名前は開発中のものです。 mailto:sage [2008/01/05(土) 12:52:55 ID:6sNkPPyH]
>>308
でも、それができるのってある程度以上パターンを実際に見たり使ったりして
ある種のとっかかりがあればの話じゃないかなぁ?

なんというか、最低限の所は抑えておかないと部分的に”より綺麗な実装”とかって困難な作業じゃん。
下手したら、一から作ったほうが早かったりするし。


310 名前:名前は開発中のものです。 mailto:sage [2008/01/05(土) 18:06:17 ID:TQ5K8a3c]
深く考えるとゲームを作るというよりも、
パターンを実装するのが目的になってゲームが作れないという。

311 名前:名前は開発中のものです。 mailto:sage [2008/01/05(土) 20:47:44 ID:6fbMpELT]
>>パターンを実装するのが目的になってゲームが作れない
あるあるw



312 名前:名前は開発中のものです。 mailto:sage [2008/01/05(土) 20:50:04 ID:ycLLo6O8]
パターンとゲームエンジンは危険

313 名前:名前は開発中のものです。 mailto:sage [2008/01/05(土) 23:48:21 ID:CJpqsrn9]
デザパタとかアホが参考にするもんだろ

314 名前: [2008/01/06(日) 01:17:33 ID:8z3cTay0]
今の僕がまさにその状態かもしれません。
ま、仕様も決めずにできるところからはじめたので、
詰まるだろうな、とは思ってましたが、リファクタリングってつらいですねぇ…
SEに完璧な仕様を求めるのも不可能だし
仕様書が変更されすぎてデスマーチなPGも気持ちも理解した。

本当はPartyクラスとかItemListクラスとかはSingletonパターンを使ったほうがよかったんだろうなぁ…

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

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

あと、リファクタリングは本来楽しいもの。
つらいと感じるようならリファクタリングのやり方が間違ってる。
アジャイルとかextreme programmingとかxUnitについて調べてみ。

316 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2008/01/06(日) 16:43:22 ID:/HrmMcya]
既に立てられたスレをまとめるって具体的にどうすんのよ

320 名前:名前は開発中のものです。 [2008/01/06(日) 17:12:30 ID:SZ5sx4fN]
削除依頼出すなり
下げて落とすなり出来るだろ
何年かかるかは知らんが

それぞれのスレも
どうせ、この板の住人なんだろうから見てる奴も
かぶってるだろうしな


321 名前:名前は開発中のものです。 mailto:sage [2008/01/06(日) 17:57:28 ID:DM+h60cC]
最終書き込みから5年近く生存してたスレもあるわけでw



322 名前:名前は開発中のものです。 mailto:sage [2008/01/07(月) 01:02:22 ID:YQu/Z7rd]
削除人はあなた方の消しゴムではありません

323 名前:1 [2008/01/07(月) 02:53:31 ID:4zheO+Ql]
とりあえず 戦闘中に薬草が使えるようになりました。
攻撃のダメージ計算の結果がマイナスの時にHPが回復するという間抜けなバグを修正しました。

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

アイテムを増やしていろいろ実験してみなくちゃな。破損率とか。
次は装備を実装してみたいと思います。


324 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2008/01/08(火) 09:52:24 ID:D3pjyDXl]
テスト

327 名前:名前は開発中のものです。 mailto:sage [2008/01/08(火) 17:10:35 ID:JvrNAlpQ]
あぷろだにアクセスできないな
ddo.jp/には行けるんだけど…

328 名前:名前は開発中のものです。 mailto:sage [2008/01/08(火) 17:55:44 ID:Y5Es8nAh]
sakuratan時々アクセスできなくなる。
しばらくすると復旧するからしばし待てばよし

329 名前:名前は開発中のものです。 mailto:sage [2008/01/09(水) 03:23:20 ID:yeQM8ZEN]
濁点が<
なのがなんか泣ける
でもそんなの関係ねぇ〜

がんばれ

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

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

331 名前:名前は開発中のものです。 mailto:sage [2008/01/10(木) 22:36:10 ID:1zT0fMGD]
ここのスレを見て、
>>1の晒したEXEを実行してみた。

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

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


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







332 名前:1 [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


335 名前:1 [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

337 名前:1 [2008/01/12(土) 00:28:36 ID:WDlhVTgQ]
どうぐ->そうび から装備できるようにしました。
普通の装備コマンドはまだ未実装です。
戦闘中に攻撃用アイテムが使えるようになりました。
複数攻撃できるようになったのは、かなり興奮しました。

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

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

説明のしかたがへたくそだなぁ… Orz
tp://sakuratan.ddo.jp/uploader/source/date66269.lzh

338 名前:名前は開発中のものです。 mailto:sage [2008/01/12(土) 09:13:21 ID:nuc01uN3]
おまいが作りたい方で作れ。
やっていることはFCドラクエの移植じゃなく、スレタイのように
「ドラクエっぽいRPGを作ること」だろうから。

339 名前:名前は開発中のものです。 mailto:sage [2008/01/12(土) 09:53:41 ID:b7SQU1lN]
じゅもんに番号つけて前から順番に並べるっていうのじゃあかんの?

340 名前:名前は開発中のものです。 mailto:sage [2008/01/12(土) 19:40:34 ID:84T2Ztwg]
うpは週一くらいにしとけよ
こんな過疎板のスレで誰もいちいち落として見てねえだろ
はっきりいってろだスペースの無駄遣い

341 名前:名前は開発中のものです。 mailto:sage [2008/01/12(土) 20:09:55 ID:VCz2GVdS]
差分うpでもいい気がするけど、モチベ維持にいいだろうしペースはうp主次第でいいんじゃね?



342 名前:名前は開発中のものです。 mailto:sage [2008/01/12(土) 21:00:00 ID:PD5xMP0i]
過去40万年の気温変化
ttp://www.teamrenzan.com/archives/writer/nagai/human_innovation2.png

343 名前:名前は開発中のものです。 mailto:sage [2008/01/13(日) 21:47:31 ID:CoopjDr1]
時間かかってもちゃんとやれてるってのが偉いな
俺もこういう事やろうとはしたがすぐ飽きて挫折してばかりだ。

それはそうと、配布zipにobjファイルは別にいらんと思うんだが
exe作った後に消すか別フォルダに作るよう設定した方がいいんじゃないか。

344 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2008/01/14(月) 18:09:01 ID:PQcWfF1X]
>>345
簡単な配布用サイトを作って、このスレで逐一更新報告するのは駄目なの?
ろだの無駄遣いを気にせず、モチベーションも維持出来るぞ

347 名前:名前は開発中のものです。 mailto:sage [2008/01/14(月) 19:50:06 ID:UuCFVpAj]
>>344
それが普通だと思うよ

348 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2008/01/15(火) 00:43:26 ID:AtQAfnor]
管理きにしないでやるならどっかのブログスペース借りればいいけど
気にしないでやりたいようにやればいいと思うよ



352 名前:名前は開発中のものです。 mailto:sage [2008/01/15(火) 11:48:24 ID:tFhP1thC]
変にまとめサイトとか作ったとたん放置されるのが基本だから
現状維持OK

353 名前:名前は開発中のものです。 mailto:sage [2008/01/15(火) 19:17:28 ID:TKI/oqBM]
>>1が頑張っている様なので、
俺もソース読んでアドバイスしてみる。
長文なので、長いと思ったら適当に読み飛ばしてくれ。

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

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

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

4.
クラスのメンバ変数名が大文字だったり、小文字だったり統一されていないようだけど、
普通は定数を大文字にするよね?
混乱するので書き直したほうがいいと思う。


354 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2008/01/15(火) 19:22:55 ID:TKI/oqBM]
悪かったところばかり挙げていると、
>>1がへこんでしまうだろうから、最後に良かったところを挙げる。

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

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

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

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

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

ついでに報告しておくと、DragonQuestImitation,
俺の環境ではXボタン押して終了したのにプロセスが残っていたぞ。
多分リソースをリークしている。確認したほうがいいのでは?

356 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2008/01/16(水) 08:16:39 ID:9K3RdyGz]
ごめ、post"q"uit w

360 名前:353 mailto:sage [2008/01/16(水) 13:42:54 ID:StPDBBfO]
postquitとは多分PostQuitMessage()のことだろう。
ただ、ソースを見たところ、ウインドウプロシージャを使わずに、
DxLib_End()とかを呼び出しているようなので関係ないのかな。

ちなみに最新版でもう一度やってみたが、
戦闘中でXボタンで強制終了させるとリソースリークが起こるようだ。
移動中やタイトルでは起こらなかった。

361 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2008/01/17(木) 09:41:19 ID:/oeOIVqW]
なんだろうなあ。
DxLibでユーザが解放しなきゃならないものはほとんどなかったと思うけど。
そもそも解放するしないにかかわらず、プロセスが残るってのは変な気がする。

364 名前:名前は開発中のものです。 mailto:sage [2008/01/17(木) 09:53:05 ID:/oeOIVqW]
ソース見たが、
Field::Draw()でProcessMessage()使ってる。
しかも戻り値チェックしてない。

ProcessMessage()やScreenFlip()はあまりソース中に散在させるものではないと思うよ。
人それぞれかもしれんが。

365 名前:1 [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 名前:名前は開発中のものです。 mailto:sage [2008/01/17(木) 21:56:13 ID:6FxDnuCV]
複数ある時点でメッセージキューの仕組みが破綻すると思うのだが

367 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2008/01/17(木) 22:18:56 ID:yQ/WXoAm]
最初から人様の作ったラッパー使うのはどうかと

369 名前:名前は開発中のものです。 mailto:sage [2008/01/17(木) 23:32:10 ID:HfiR7GrD]
別にいいよ
>>1はゲーム作りじゃなくてC++の勉強してるんだろ

370 名前:1 [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 名前:名前は開発中のものです。 mailto:sage [2008/01/18(金) 00:20:44 ID:NZS+eY32]
C++の勉強なら余計に人様のラッパー使わない方がよくない・・・?
勉強とかいうつもりがなくてただゲーム作るだけなら有り物で近道した方がいいかもしれないけど。



372 名前:名前は開発中のものです。 mailto:sage [2008/01/18(金) 00:35:48 ID:Y9jpO8YC]
>>371
ポリゴンで疑似スプライトから、とか?
そのほうが順番おかしいだろ
DirectXの勉強が主体になっちまう






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<293KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef