07/11/02 01:53:08 M/fkomaJ
C++の勉強をかねてFCのドラクエっぽい感じのRPGを作りたいんです。
しょっぱなからつまずいています、知恵を貸してください。
<<使用しているもの>>
BorlandC++
DXライブラリ
ドラクエフォント
DXライブラリはここ
URLリンク(homepage2.nifty.com)
ドラクエフォントはここ
URLリンク(slime4.hp.infoseek.co.jp)
2:1
07/11/02 02:23:06 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:名前は開発中のものです。
07/11/02 02:58:35 SG+xTINV
しらべればいいやん
ねらーなら
4:名前は開発中のものです。
07/11/02 05:20:01 hOYjzdZZ
解放したメモリのポインタを返すの禁止
itoa() で文字取って
short nums[10] = {'0','1','2''3','4''5','6','7','8','9'} で桁ごとに引けばいいんでないの?
全角一文字はchar一個ではないよ
マルチバイト処理の関連
MBCSでググれば良
DxLibがどうだか見てないからわからんけど指示はあると思う
strcat の引数はどっちも[文字列へのポインタ]だからcharを直で渡しても駄目
っつーかコンパイラでエラーにならんのんかな
NTBSへのポインタでないといけない
あとは突っ込み待ち
5:1/2
07/11/02 10:31:38 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
07/11/02 10:33:31 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:名前は開発中のものです。
07/11/02 11:13:49 hOYjzdZZ
ナイス器用貧乏
8:1
07/11/02 13:12:52 o1sf08np
>>4 さん >>5 さん ありがとです
足りない頭で引数にchar型ポインタをとるタイプならなんとかなりました。
家に帰ってからじっくり見て参考にしてポインタを取らないタイプにしたいと思います。
ちょっと考えたら右詰めでそろえた方が都合が良さそうなので、必要な桁数も引数に取ることにしました。
URLリンク(sakuratan.ddo.jp)
9:名前は開発中のものです。
07/11/02 15:10:27 3v9/ukJI
intのままビットマップフォントで描画したほうが軽いでしょ
10:名前は開発中のものです。
07/11/02 17:25:18 IOxKv0gf
俺もそう思う
11:1
07/11/02 21:17:49 M/fkomaJ
>>5
携帯からじゃぜんぜんわかんねぇ… って思ってたけど
携帯のせいじゃなくて僕にソースを見る力がないだけですた Orz
Boostはぐぐったらすぐでてきました。
かなり強力なライブラリっぽいのでがんがって勉強します。 ・ω・ゞ
>>9,10
フォント自体をいじって半角数字のところに全角の数字を入れちゃうってことですか?
もうちっとkwsk
12:名前は開発中のものです。
07/11/02 22:49:55 aw8yHlLW
よく分からんがitoaかsprintfで半角文字列にして
ループでその文字コード舐めるだけでいいんじゃないの
13:9
07/11/03 00:24:39 Iws3HFCw
>>11
マップ描画の時、チップ番号に対応するスプライトを描画するよね。
それと同じ仕組み。
14:1
07/11/03 10:20:51 gstDZlgr
文字描写用にDrawString()っていう関数があるけど
それを使わないでBMPとかを書くDrawGraph()を使うってことか…
ドラクエフォントを使うなら濁点の関係で文字描写の関数自体を
作らなくちゃいけないかもしれない、ってうすうす思ってたんだ… Orz
15:1
07/11/03 21:05:48 gstDZlgr
いまさらこんなことを言うと殴られるかもしれないけど、
フォントの問題は難しそうなので、先にマップを作ってみようと思います。
C++に慣れる意味もこめてわかりそうな所から攻めてみます。
16:名前は開発中のものです。
07/11/03 22:12:55 9QsIYSTC
背景は、マップチップを敷き詰めていくのは非効率的なので、
でっかい画像を用意したほうがいいですよ。
丸々1マップ分でなくても、使い回しが利くブロックに分けるのも手。
17:名前は開発中のものです。
07/11/03 22:42:21 F4e+Wx4a
でっかい画像だとマップの微修正が面倒じゃね?
18:名前は開発中のものです。
07/11/03 23:32:39 ODdojPA9
でかい画像でマップって
海の判定とかもんのすごく面倒そうな感じがするんだけど。
19:名前は開発中のものです。
07/11/03 23:50:23 CPReYdrd
仮想マップ使え
20:名前は開発中のものです。
07/11/04 00:41:13 3TCgUkt8
文字も画像も同じだろ
ファミコンのドラクエはどっちもキャラクタで描画してんだから
21:名前は開発中のものです。
07/11/04 01:12:01 sGjq5X72
>>16-18
え、まじっすか?(汗
一マスの画像データを取り込む感じでやっちゃいました Orz
最終的に一マスごとのデータをクラスにして、通行可否とかももてるようにしるつもりでした…
>>19
仮想マップって何でしょうか?
>>20
文字も画像であつかおうとすると、仲間が死んだり、夜になったときに文字の色をかえるのがややこしそう…
でも、ファミコン版だと死人が出たときに海岸線が朱に染まるよなぁ…
そういうのも再現するとしたら、どうやってやるんだろ?
とりあえず、すこしだけ動くようになりました。
マップの範囲がかなり狭くて、あんまり動くと不正終了します。
終わるときはウインドウズのXボタンで。
さしあたりの問題は移動が早すぎるのと、どのクラスにどこまでまかせるのか。
あと移動の判定もしなくちゃな…
URLリンク(sakuratan.ddo.jp)
22:名前は開発中のものです。
07/11/04 03:42:22 6tIS1w9d
>>16
>>21
沢山レイヤーを重ねるわけじゃなさそう(ファミコン風らしいし)だし、
問題になるほどの頂点転送なんか発生しないでしょ。
自由なマップデザインの妨げにもなるし、かえって冗長なメモリ食うほうがこの場合問題になるから
このままでいいんじゃないか?
むしろクリッピングするほうが効果がありそうだ。
23:1
07/11/04 07:15:08 7NRLPi1I
アク禁にくらった…
>>22
クリッピング?
また新しい単語が…
少し大きめにマップを書いて、枠からはみ出た部分はカットされるとか、そういう感じですか?
とりあえず移動して体の向きが変わるようにしました。
あとエンターで座標表示
ESCで終了するようにしました
URLリンク(sakuratan.ddo.jp)
24:名前は開発中のものです。
07/11/04 13:29:23 XVaCq5Z+
>>21
>でも、ファミコン版だと死人が出たときに海岸線が朱に染まるよなぁ…
>そういうのも再現するとしたら、どうやってやるんだろ?
背景に全て画像を使うんだったら、
死人出た時用の画像を別途用意しないと無理じゃね?
それが嫌だったら、ファミコンと同じようにやるしか無いよなぁ
25:名前は開発中のものです。
07/11/05 00:38:00 2iUdY2Qo
8ビットDIBでパレットアニメーションっていうのはどうかな?
26:1
07/11/05 12:25:34 BE3u4m/u
マップ一つでもこうやって考えると結構難しいんだなぁ…
マップの仕様をつめないとダメそうですね
一つのマップのデータを一つのファイルにまとめると考えて、必要なデータは
class Cell{
int hGraph[8]//とりあえず時間帯で8パターンのグラを用意
int passable;//0 通行不可 //1 通行可
//2 船なら通行可
}
class Field{
int xSize , ySize;
Cell mapData[xSize][ySize]; //←newで動的にメモリ確保
}
こんな感じでしょうか?
27:1
07/11/05 12:48:39 BE3u4m/u
あ、違った
パレットアニメを使うなら8個もハンドル用意しなくていいのか。
…勉強してきます
28:1
07/11/05 22:33:46 BE3u4m/u
パレットアニメーションについてはなんとなーく わかったようなわからないよ
うな…
あとは実践しながら覚えろ、って感じですが、
ぐぐって出てくるのがC#ばっかり… Orz
おまけにPentiumII とかいう単語が出てくる始末。。。。
素直にBMP複数用意したほうがいいのかな…
29:1
07/11/09 16:17:06 YJbVYn7p
わからないところを後回しにしつつ、なんとなくやってます
なぜかマップの座標のxが48から57の間だけ表示されません
原因不明です orz
だれかボスケテ
URLリンク(sakuratan.ddo.jp)
30:1
07/11/09 17:40:48 YJbVYn7p
わからないところを後回しにしつつ、なんとなくやってます
なぜかマップの座標のxが48から57の間だけ表示されません
原因不明です orz
だれかボスケテ
URLリンク(sakuratan.ddo.jp)
31:名前は開発中のものです。
07/11/09 22:22:32 SDOrYmNB
>>30
ダウンロードできん
どっちみち俺わからんけどがんばれ
32:1
07/11/09 22:46:17 71zhIprC
すんまそん、URLまちがえてました
URLリンク(sakuratan.ddo.jp)
33:名前は開発中のものです。
07/11/10 10:33:44 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:名前は開発中のものです。
07/11/11 00:14:09 I2Ef3r5N
なんでこんなに無駄にexeデカいんだろ
35:名前は開発中のものです。
07/11/11 04:22:42 az0lrOpc
デバッグモードっつーのと、DxLib.lib がデカいからじゃね?
36:1
07/11/11 12:36:57 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
07/11/11 14:36:39 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
07/11/11 15:47:06 Bi03rvGZ
>>33
なんか解決したっぽいです
Char c
の宣言をfor文の中じゃなくて
先頭に持っていったら無事表示されるようになりますた。
まじサンクスです。
39:1
07/11/13 00:54:58 DHq4bef+
とりあえず中途半端だったアリアハン大陸を完成させてみました。
城もマップ上に配置させてみたけど、まだ中に入れません。
FieldクラスにChar *の配列でマップの名前のリストを持たせて
マップ切り替えごとにFieldMapクラスを取り替えていく感じでやってみようと思います。
マップ作ってる時に エディタが切にほしいと思いました。
そのうちマップのデータをフォルダじゃなくて一つのファイルにまとめたいけど
そのためには仕様をまとめないとだめですよね。 Orz
URLリンク(sakuratan.ddo.jp)
40:名前は開発中のものです。
07/11/13 01:54:20 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:名前は開発中のものです。
07/11/13 03:11:41 qyitJc6C
今北
海岸線が朱に染まる件って解決したのん?
白く表示される部分を透明色でチップを作っておいて、
マップの背景に白バックを用意しとけばいいんじゃない?
で、メニューも透明色で描いてやったらメニュー部分も一気に
赤表示や緑表示にできていいかなーと思うんだけど
もちろんこの場合メニューと重なる部分のマップチップは描かない感じで
う~んわかりにくいかな
42:名前は開発中のものです。
07/11/13 03:45:11 DHq4bef+
>>41
実は未解決です。
文字の型を抜いておいて、背景色がすける感じ、ですよね
なんとなく分かったような…
でも、それだとコマンドとかある程度固定のものはいいけど普通の会話を処理するとき困りません?
てか それ以前に海岸線実装してないぽ… Orz
やることいっぱいで嬉しいような本気の悲鳴。
43:名前は開発中のものです。
07/11/13 05:40:16 qyitJc6C
>>42
ん?どうして?
任意の文字列出すときも
message_window->DrawString("おお、ふるきいいつたえのゆうしゃにひかりあれっ!");
みたいな感じで描けばいいだけのような・・
もちろん普通の文字描画じゃなくグラフィックを並べて描く
(スレの最初で話題になってた方法と同じ)やり方でね
海岸線とかはもっと後でもいいと思う
44:1
07/11/13 16:38:02 CeANgSHM
>>43
あ!そういうことか!
どっちみち文字描写に関しては最終的に自分でやらなきゃダメだって思ってたので
一文字ずつグラ作ってやれば解決しそう! ありがとです。
あとは時間経過のグラ変化に着いてはパレットアニメーションが有力ですが、なんか難しそう…
かといって全パターンbmpで作るとメモリ食っちゃうしな…
あれ?どれくらい食うんだろ?
45:1
07/11/15 02:27:58 wJi13tnN
とりあえずやりかけてた所をつくりました。
なんちゃってスクリプトみたいなものを作ってみたら、本当にツクールみたいな感じだなって思いました。
今の方式だと命令文が各オブジェクトにつき一つしか入れられないから、そこは直さないとな。
あとイベントフラグとかどうやって実装しよう…
文字のアレも早く実装しないとな…
でも画像データ作るの結構時間かかりそうだ。
URLリンク(sakuratan.ddo.jp)
46:1
07/11/15 02:31:28 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 続き
07/11/15 02:32:56 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 続き
07/11/15 02:33:28 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:名前は開発中のものです。
07/11/15 04:35:50 aSBFCf/S
>>46-48
・getStringとgetLineでローカル変数へのポインタを返している
・ポインタ(int String::pointer)を初期化する方法がない(0に戻せない)<いらないのかな
・「pointer > strlen(str)」の部分でintとunsigned intの比較をしている
・定数直打ちは止めといたほうが・・(1024=>STR_MAX 0x0a=>STR_LFなど)
50:名前は開発中のものです。
07/11/15 09:30:13 /bSoxToM
ヒント
new,std::string
51:名前は開発中のものです。
07/11/15 10:15:05 Dxr/BWiM
ポインタじゃないものにpointerなんて名前つけるのは微妙
それはインデックスだ
52:名前は開発中のものです。
07/11/16 06:33:32 OV+uJg1d
>>50
だな
53:1
07/11/16 21:46:02 UXZ5zvB8
>>49 >>51
ご指摘ありがとうございます!
早速修正をしますた!
ローカル変数のポインタは危険ですのぉ… うっかりしてますた。
>>50 >>52
ぇ…?
,-、 ,,,,_ ,.-、
./:::::\ /,'3 `っ .../::::::ヽ
/::::::::::::;ゝ--`‐‐‐'´- 、._/::::::::::::::|
/,.-‐''"´ \:::::::::::|
/ ヽ、::::|
/ ヽ|
l l
. | ● |
l , , , ● l
` 、 (__人__丿 、、、 /
`ー 、__ /
/`'''ー‐‐─‐‐‐┬'''""´
/ ,,,, ,,, .... . |
,//ミ⑬ミ ミ⑬ミ | |
(_/ "" "" ヽ、_)
. 、ゞ'"'ッ,、... ゞ'"'ッ,、 .. ゞ'"'ッ,、 .. ∩
....... ミ ,'3 彡ミ ,'3 彡ミ ,'3 彡 ..ノ |
..... ...... シ,, ,;; ヾ` シ,, ,;; ヾ` シ,, ,;; ヾ二 ノ
................... `ー‐' ...... `ー‐'
54:1
07/11/16 21:49:14 UXZ5zvB8
便利なstringを知り、手当たり次第に修正しようとしたらめちゃくちゃになってしまった。。。
バックアップを使ってやり直しです Orz
いやー string便利だー
便利すぎて泣けてくる。
今までの苦労はポインタの勉強をした、と思うことにしよう。
55:1
07/11/16 22:59:12 UXZ5zvB8
コンパイラに怒られながらというかなり非効率なやり方ながら半分くらいstringになったかな?
はなす を実装しました。
MapObjectMap.txtで設定したオブジェクトのうち一番最後のものだけ、EOFがEOFノ とかEOF4 とか出てきます。
char型配列の呪いみたいな臭いがして、穴が開くほどコードをみたんですが、お手上げです。
誰かボスケテ Orz
URLリンク(sakuratan.ddo.jp)
56:名前は開発中のものです。
07/11/17 03:29:57 NtE6efWM
>>55
どうやら問題はデータが一番最後かどうかではなくデータそのものに依存するらしいところまでは分かった。
例えば「ようやく はなしが できるようになった。」の部分を""で囲ったり、
「ようやく はなしができるようになった。」とするとエラーは出なくなる。
逆にエラーが出るオブジェクトの順番を変えてやってもやっぱり同じ部分でエラーが起こる。
てかVC++だとエラーでまくりでビルドできない。
少しくらいなら直してもいいんだが最初見えてるの直すと30くらい来るから無理w
俺の為に直せとは言わないけどint型の関数なのに値を返さないとか
初歩的ミスも結構あるからそういうのは直しといた方がいいと思う。
というかBCCだとあれでもコンパイル通るんだな。
57:名前は開発中のものです。
07/11/17 04:27:22 3LkIon8X
今の技量で続けたら挫折しそうな予感…
上手くデバッガを使えるか知らないけど、実行時の原因不明なバグ調べてて嫌にならないか?
58:名前は開発中のものです。
07/11/17 10:22:23 DAW7rWYI
>>56
BCCだと通ってしまうんです。
BCCが初めてのCコンパイラで、それ以外使ったことがないのです。
returnをつけてみました。
>>57
原因不明なバグに挫けそうです Orz
技術不足も知識不足もそのとおりなのです。
なにせstringすら知らなかったど素人ですし。
そしてその素人はデバッガの存在をしらなかったのです。
さっそく使ってみようとググってDLしようとしたらサーバが落ちてるっぽい Orz
59:1
07/11/17 10:25:11 DAW7rWYI
URL書く前に間違えて送信ボタンおしちゃいました Orz
URLリンク(sakuratan.ddo.jp)
60:1
07/11/17 10:33:35 DAW7rWYI
DXライブラリが BCC用と VC用とがあったのを思い出しました。
VC用のDXライブラリにつけかえました。
よろしくお願いします m(__ __)m
61:1
07/11/17 10:35:08 DAW7rWYI
あ、またURL載せ忘れた Orz
だめだ、落ち着け僕。
URLリンク(sakuratan.ddo.jp)
62:名前は開発中のものです。
07/11/17 10:57:40 d7I0LgHR
ある程度ゲーム作りに慣れてればドラクエはそれほど難しくないと思う
しかしウィンドウ、キャラクタ、戦闘、イベントなどなどやらなければ
いけない事が膨大で、そのへんのゲームより作業量が非常に多くなるという罠
以上、同じようなことやってて途中で放置プレイしている人間のチラ裏
63:名前は開発中のものです。
07/11/17 16:57:44 rLUooNoc
>>61
取り合えず そこのあぷろだにログをあげてみた
URLリンク(sakuratan.ddo.jp)
BCCだとコンパイル通るんだな、意外だ
64:1
07/11/18 12:14:03 Y/pTO1mo
>>62
モンスターのデータをつくったりとか、イベントの会話データとか、ゲームを作るのは結構時間がかかると思います。
でもシステム自体を作るのは簡単… なのかな?
僕には難しくつまずいているわけですが。
とりあえず、これを完成する頃には初心者じゃないと言えるくらいにはなるのかな、と思ってみたり。
>>63
BCCだと問題なく通っちゃうんですよねぇ…
enumにint型をそのままいれられたりとか。
関数の戻り値の型が入ってないのは純然たる入れ忘れです。
よくコンパイル通ったな…
URLリンク(sakuratan.ddo.jp)
65:名前は開発中のものです。
07/11/20 05:28:57 17MvCz5h
処理系依存なんじゃないの?
66:名前は開発中のものです。
07/11/20 11:42:07 w3lrBuf0
ドラクエ作るんなら
最初にツクール作った方がいいよ
意味わかる?
つまりマップエディタとかキャラエディタとか
管理や汎用がラク
67:名前は開発中のものです。
07/11/20 11:56:19 OVlMufIS
>C++の勉強をかねて
68:1
07/11/20 19:46:36 xyOjqPZC
またもや アク禁です (;・д・)
>>66
最初からツクールを作るつもりだったんですが、
なにせ仕様がかたまってなくて…(汗
マップやキャラはこれ以上増やさずにシステム部を固めて
ある程度仕様がみえてきてからツクールを作ろうと思ってます。
何枚ものbmpファイルと設定用のtxtファイルを一つのファイルにまとめたり、
使い回しが楽になるような、そんな感じにしたいなぁ…。
デバッガが落とせなくてBolandにメール送ってしまった。
早くデバッガ使ってみたいなぁ…
濁点と半濁点の文字を力技で表示できるようにしました。
43さんのやり方にするためにはBMPを用意しなくちゃいけないので、もうちょっと時間が… Orz
会話のカーソルを上手く点滅させられなくて困っています。
BCC用
URLリンク(sakuratan.ddo.jp)
VC用
URLリンク(sakuratan.ddo.jp)
69:名前は開発中のものです。
07/11/20 19:58:55 EuIapzs3
余計かもしれないけど、ある程度仕様を固めてから作らないと、あとでデータ構造で困る可能性があるよ。
そうじゃないとデータ構造のせいで仕様に制限が生まれてしまう。
70:1
07/11/21 19:27:04 H4c55rmu
>>69
仕様を考えてみました。
大まかに分けて5つのデータを作ります。
マップデータ
モンスターデータ
職業データ
アイテムデータ
呪文データ
それぞれのデータはお互いの中身を知っていることにして、
お互いを文字列を使って呼び出せるとします。
詳細
・マップデータ
マップサイズ
マップのタイルのデータ
グラフィック
移動判定
モンスターの出現率
タイルのデータを使った実際のマップのデータ
マップに配置するオブジェクトの元になるデータ
グラフィック
タイプ(物、生き物)
移動判定
オブジェクトの中身のデータ
モンスターの配置データ
出現するモンスターのパターン =>モンスターデータを参照する
パターンをセットしたデータ
71:1
07/11/21 19:27:57 H4c55rmu
・モンスターデータ
モンスターのグラフィック
強さ(Lv,HP,Mp,攻撃力、守備力、すばやさ、経験値)
攻撃方法 =>呪文データも参照する
耐性
落とすアイテム => アイテムデータを参照する
・職業のデータ
グラフィック(4方向*2パターン)
成長データ
取得呪文リスト =>呪文リストを参照する
・アイテムリスト
アイテム名
タイプ(武器、兜、鎧、盾、装飾品、消耗品、貴重品)
使用可能な職業 =>職業リストを参照する
効果
・呪文リスト
呪文名
消費MP
対象(敵一匹、敵グループ、敵全体、味方一人、味方全員、自分)
タイミング(移動中、戦闘中、両方)
効果
つっこみお願いします。
72:名前は開発中のものです。
07/11/21 20:53:38 +bb6+Uy/
>>71
>対象(敵一匹、敵グループ、敵全体、味方一人、味方全員、自分)
これだとパルプンテみたいに効果によって対象が変わる呪文が実装できない。
パルプンテ作る気ないならいいけど。
73:名前は開発中のものです。
07/11/21 23:25:21 QAMIESYX
モンスターデータなどは
パラメータ等を格納したマスターデータと
今戦闘しているモンスターのみが必要なサブデータは分けて考えた方がいい。
クラスとインスタンスの関係のような感じ。
74:名前は開発中のものです。
07/11/22 00:00:20 YnWGqx+/
いちお、うちは、ドラクエオンラインを目指してるのだw
ドラクエの上位版な。力ある奴こい
CreateGameー陸海空オンラインー
URLリンク(www112.sakura.ne.jp)
うちは、背景がぐいぐい動くゲームを想定しておりまする。
イメージ3D
URLリンク(www112.sakura.ne.jp)
URLリンク(www112.sakura.ne.jp)
よろすくw
75:名前は開発中のものです。
07/11/22 00:17:26 Gx1wHKMf
物理エンジン「フェニックス」日本名『 鳳 凰 』を
開発できる者いたら来るのだ。
URLリンク(www112.sakura.ne.jp)
76:1
07/11/22 13:36:00 1nrzvj+v
>>72
なるほど…
パルプンテか…
あとラナルータとかアバカムとかトヘロスとかあるな…
対象に「空間」を加えてみよう。
パルプンテの実装はかなりめんどくさそうだ…
>>73
ですね~
とりあえずマスターデータに必要なものをあげていきたいと思います。
あと、セーブデータの使用も考えないとだ(汗
77:名前は開発中のものです。
07/11/23 07:48:06 aIwuXGYs
>グラフィック(4方向*2パターン)
横向きのグラフィックは反転すれば2種類で済むじゃん
と思ったんだが、
ドラクエ3って、右向きと左向きでグラフィック違うんだな
初めて知ったわ
78:名前は開発中のものです。
07/11/23 07:49:13 aIwuXGYs
>グラフィック(4方向*2パターン)
横向きのグラフィックは反転すれば2種類で済むじゃん と思いきや
ドラクエ3って、右向きと左向きでグラフィック違うんだな
初めて知ったわ
79:名前は開発中のものです。
07/11/23 07:50:08 aIwuXGYs
ゴメン、2回書いてしまった
80:1
07/11/23 21:19:47 EqvVctbz
>>77
そうなんすよ。
モンスターの中にはグラを反転させてるのもいるみたいですね。
性別のデータはどこに入れるべき? キャラクタの中にするか、職業に そうりょ・おんな みたいな感じにするか、
…両方やった方がいいのかな?
81:名前は開発中のものです。
07/11/23 22:07:20 bo2lQ7Oe
>>1って何を見てC++の基礎的な部分を学んだの?
82:1
07/11/24 00:52:56 MS8gIJ0s
>>81
URLリンク(wisdom.sakura.ne.jp)
↑ここ
あとは気になる単語をひとつづつググっていって… っていう感じですかね。
まだまだ分からないことだらけです。 Orz
83:1
07/11/24 01:22:41 MS8gIJ0s
仕様がにつまらないまま、とりあえず四人PTが動くような感じにしました。
wを押すと移動モードが変わります。
URLリンク(sakuratan.ddo.jp)
壁に当たった状態で向きをかえ、そのまま動くと二人目以降が変な動きをし
横方向に一周すると二人目以降が一瞬消え、
縦方向に一周すると、なぜか背景がずれる。
問題は山済みだぁ…
84:名前は開発中のものです。
07/11/24 06:15:15 LF10ZKGk
>>83
>>壁に当たった状態で向きをかえ、そのまま動くと二人目以降が変な動きをし
移動できなかった時の処理を修正すれば解決するから、何とかしれ
あと、int型の関数なのに 値を返さないヤツは
VC++だとエラー吐きまくりだから、何とかした方がいいかもね
85:1
07/11/24 13:06:36 tttKXuAd
>>84
壁に当たって移動できないときの向きを保存しておくしかなさそうですねぇ…
VC++もインストールした方がよさそうかしら?
ってかBCCってあんまり使われてない!?
86:名前は開発中のものです。
07/11/24 16:17:37 28bRJwv0
>>85
VSEEが登場してから確かにBorlandを進める入門書も激減したね。
どっちでもいいと思うけど、VSEEにはヘルプが充実してるから無料だし
入れておいても損は無い。
学生ならAcademic 2005が4500円ほどで買えるし
87:名前は開発中のものです。
07/11/24 21:15:26 mZLg9kAb
bccでも
「関数は値を返すべき(Function should return a value)」
という警告が出るはずだが。
88:名前は開発中のものです。
07/11/25 08:54:44 dvwP3UD3
BCCから始めてVSseに移った漏れは早いうちにVC++に移ったほうがいいと思う
API使うにつれ構造体が多くなるから、あのIDEはかなり強力
89:名前は開発中のものです。
07/11/26 21:41:21 kVJVN9m4
>>86
ぢつは 学生ではないです、。Orz
>>88
VC++を落としたのですがXP SP2じゃないと使えないみたいですね。
メインで使っているPCが二台あって、うち一台はSP1のままで
勝手にSP2にできないので、このままBCCを使う方向で。
ちょっと使ってみたけど、VCEEの方が便利そう…
>>87
よくよくIDEをいじってみたら、警告を返さない設定になっていました Orz
できる限りなおしてきます。 Orz
90:1
07/11/27 00:47:00 d34z+KuU
ファイルを読み出すときに fgetcをchar型で受け取っていたのをint型に直しました。
↑かなりバグの原因になっていた気がします。
壁に当たった際の移動処理の修正をしました。
横方向に回るときに63⇔0の時に二人目以降が消えるバグを修正しました。
キーの入力の処理をちょっと修正しました。
今まで押されている状態と押されていない状態しか判別できなくて困っていましたが
ちゃんと4つの状態を取り出せるようになりました。
(押されていない、押した瞬間、押している、離した瞬間)
縦方向に方向に世界一周する時ずれるバグの原因が不明です。
デバッガの使い方が良く分かってないのが悪いよなぁ…
URLリンク(sakuratan.ddo.jp)
91:名前は開発中のものです。
07/11/27 15:53:32 XifSZqNn
関係ないけどDXライブラリで
#include <iostream>
するとエラーが出まくるんだけど何でだろう・・・
92:名前は開発中のものです。
07/11/27 16:08:10 uGSxxWdB
STLを使うときはDxLib.hを見て
「STLを使うときはここのコメントアウトをはずしてください」
ってところがあるからそのとおりにしてみる
93:名前は開発中のものです。
07/11/27 17:28:56 XifSZqNn
>>92さんありがとう。
でもなんでデフォルトをこれにしなかったんだろう・・・。
高速化のためかな
94:1
07/11/28 15:34:05 zLkvDFFj
>>91 さん
僕は警告が止まりません。
STDの意味も分らなかったり Orz
ちょっとヘッダー見てきます
>>90
でfgetcをchar型で受け取っていたのが悪いとかいってたけど
int型で受け取っても問題なかったみたいですね Orz
95:名前は開発中のものです。
07/11/28 22:13:35 u4wU15z0
がんばれ
96:1
07/11/29 07:49:09 8WyJyauK
>>95
がんばります!
ぼちぼち戦闘を作りたいと思ってます。
二回目以降の戦闘で
メッセージが二回表示されちゃうバグの原因が分りません。なんでだろ?
URLリンク(sakuratan.ddo.jp)
97:名前は開発中のものです。
07/12/02 15:23:38 86yI1zZh
>>1に触発されて、俺もRPGの土台作ってるわ
こりゃぁたしかにC++の勉強になるわな
98:1
07/12/03 08:16:10 TADfcfNf
煮詰まってぜんぜん進んでないんですが、とりあえず生存報告。
URLリンク(sakuratan.ddo.jp)
>>97
おたがいがんばりませう。
あんまり人が書いたソース見たことないので
よかったら97さんのソースもうpしてくれると嬉しいかも。
99:名前は開発中のものです。
07/12/03 08:43:22 3su1LaOd
WaitVSync(1) ;
メインループのなかにいれてみたら?
100:97
07/12/03 19:02:30 b9C0qSJp
>>98
>>1のと比べたら、見せられるほど効率的なプログラムじゃないよ・・・
101:1
07/12/03 21:11:55 TADfcfNf
>>97
ぜんぜん効率よくないっすよ…
デバッグも力技だし。
メモリとかめちゃくちゃ無駄遣いしてるし
すでにスパゲッティ化してて自分でも訳分らなくなったりしてるし Orz
102:97
07/12/03 22:05:34 b9C0qSJp
メインとかまだぐちゃぐちゃだし、容量も大きいぜ・・・
ハズイのでそのうち消すわ
URLリンク(sakurachan.dip.jp)
103:名前は開発中のものです。
07/12/03 22:07:54 tyrMCse6
参考にさせてもらいます
104:1
07/12/04 07:55:53 gS+kwsGk
>>97
わーい うpだ うpだ。
グラフィックを一枚にして分割して読み込んでるんですね。
たしかにこの方がわかりやすい!
まねしてみよっと。
105:名前は開発中のものです。
07/12/04 13:14:06 tD4LtuOS
URLリンク(ayusya.hp.infoseek.co.jp)
便利だよ
106:名前は開発中のものです。
07/12/06 20:10:16 5cqYyHrM
スレはよくみてたのになかなかソース見る機会なかったが、
試験前日だってのに今見た。
しかしまぁよく書いたな。お疲れ。そしてこれからもがんばれ。
とりあえず>>1応援ノ
107:1
07/12/07 03:38:39 TqKt9CYS
>>105
便利そうだけど、今から使うとCharとstringとStringがごちゃごちゃになって収集つかなくなるのでやめておきます。
今度、また新しく作るときに使ってみます。
>>106
汚いソース見てくれてありがとです。
試験前日は勉強以外のことがしたくなりますよね。。。
試験がんばってください。
なんか、応援されると涙でるくらい嬉しいな。
とりあえず現状こんな感じ。
URLリンク(sakuratan.ddo.jp)
戦闘に入ると、にげるを選ぶまでずっとコマンドを選び続けることになります。
攻撃とかの処理はまだ入れてません。
パーティアタックの要素もいれるつもりですが、まだ全然ですね。
BattleFieldに敵味方含めて全部のキャラクタのポインタを持たせ
すばやさ順に並び替えて
キャラクタが保持しているCommand,subCommand,Targetを元に行動させてみたいと思います。
108:名前は開発中のものです。
07/12/07 05:13:38 G3CHG+0v
煮詰まる・・・・
109:裕釐@106
07/12/07 07:07:51 9GENbEd8
>>107の最新版bだがウィンドウが表示されたと思うと消えてしまう。。。
110:名前は開発中のものです。
07/12/07 11:04:20 ZFkfzkEg
URLリンク(fatalita.sakura.ne.jp)
こんなん作ってたんですけど、ソースとかアップしてもいいですか?
全然開発進んでないんで多分見ても面白くなさそうですけど
111:名前は開発中のものです。
07/12/07 11:27:46 SfdXkRE6
どうぞ
112:名前は開発中のものです。
07/12/07 21:41:34 ZPLhqQBz
なんか餅ベーションあがってきた
俺もRPG作る!
目標年内で、初期FC程度の遊べるレベルまで
しかし、DQドット絵って、どこかで流れてるの?
みんな、自分で手打ちしてるの?
113:1
07/12/07 22:02:06 TqKt9CYS
>>108
僕も煮詰まってます。
挫折しそうな時に、このスレを見てがんばってます。
>>109
DLありがとうございます。
今Upしたやつ試してもらってもいいですか?
>>110
ぜひUpしてください。
見た目DQ1なのに、台詞が3で宝箱が4だw
敵味方全部のポインターをBattleFieldクラスに持たせるようにしようとしたけど
なかなか上手くいかずにずっと悩んでました。
デストラクタが呼び出されるタイミングについて質問があったんですが
どこだったか忘れました Orz
URLリンク(sakuratan.ddo.jp)
114:裕釐
07/12/07 22:30:50 9GENbEd8
かわりませんね。。
VC++で再コンパイルを試みているんだがコンパイルできない。。
・KeyTest.cppは何? 関数らしき宣言が見当たらないのだが。。
115:裕釐
07/12/07 23:11:43 9GENbEd8
連レスすまん。 起動できた
どうやらDQフォントに問題が。。tk別のほうのをインストールしてた
//フォント変更
if(ChangeFont("DragonQuestFCIntact") == -1){
DMsg("できればドラクエフォントをインストールしてください。");
}
これうまく作動してないかと。
何故Error関数じゃないのか気になるね
116:1
07/12/10 08:14:42 P9jsj/2m
>>114-115
KeyTest.cpp はキー入力のテストで作ったファイルで、今はもう必要なかったです。
//フォント変更
if(ChangeFont("DragonQuestFCIntact") == -1){
DMsg("できればドラクエフォントをインストールしてください。");
}
↑は確かに思うように動作してないですね… Orz
Error関数じゃないのは、 で き れ ば インストールしてください ってことで。
僕の汚いコードを見てくれるのにわざわざフォントのインストールまで強制するのはどうかと思ったので。
あんまり進んでないけど最新版
****のこうげき!
****は **のダメージをうけた!
と表示されます。
今度は実際にダメージ計算をして
HP計算をして、死亡判定、戦闘の勝利判定までやりたいと思います。
URLリンク(sakuratan.ddo.jp)
117:もつ ◆3hrQ9eL3.Q
07/12/10 21:47:12 8T67gjbd
コンソールゲームスレで途中でやめたDQ1
コンソールなんですべてキャラクタ(文字)
URLリンク(sakuratan.ddo.jp)
一応、人、会話、戦闘、復活の呪文等を実装。
魔法はつかえん。バグたくさん。
↑、↓、←、→、スペース、BS が操作キー
118:名前は開発中のものです。
07/12/11 13:12:14 i04hax3Y
ドラクエふぉんとのないパソコンで起動すると
DrawStringDQ関数呼んだときに強制終了くらうよ。
対戦中の敵のパラメータは構造体で管理するとして、
対戦全体を管理するのにもクラス作ったほうが楽な気がする。
119:名前は開発中のものです。
07/12/11 16:54:54 xDs0NYc0
>>2
int hn2fn(char c)
{
return c + ('0' - '0');
}
120:1
07/12/11 19:12:31 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:1
07/12/11 19:21:33 ANDKxxZg
現状UPです。
敵を倒すと戦闘終了するようになりましたが、
経験値やゴールドの増減はありません。
ステータス表示がパーティの人数で伸び縮みするようになりました。
モンスターの行動パターンとかどうしようか悩んでます。
今のところ攻撃一辺倒で、勇者一行の先頭キャラしか攻撃しません。
経験値とゴールドを解決したら、いちおう遊べるのかな?
URLリンク(sakuratan.ddo.jp)
122:裕釐
07/12/11 21:00:59 31kIAbMQ
BattleFieldね。おk。
敵数と敵の情報をまとめればいいかな、と℃素人は思ってしまう。。。あとで必要だと思うときに
付け足せるような形にまとめておくのがいいと思うよ。
戦闘中、複数種の敵がいる場合、たたかうを選んだときに
どれに攻撃するか選ぶよね。あの敵リスト?を更新するようにしないと。
倒してもリストからは消えないのは問題。
123:名前は開発中のものです。
07/12/11 22:50:31 FZGhBsSs
>>119
return c + '0';
でよくね?ちなみにマルチバイトだと…
124:名前は開発中のものです。
07/12/11 22:54:54 FZGhBsSs
おっとこの場合数値から全角文字か
125:名前は開発中のものです。
07/12/12 07:39:59 J/TJHZ+a
全角文字を' 'で囲むな
126:名前は開発中のものです。
07/12/12 08:37:22 7RFZk29b
ドラクエフォントを入れなくても動くように、
ドラクエフォントを画像データにしたほうが良いのでは?
字数知れているし。
127:名前は開発中のものです。
07/12/12 13:27:41 DWQ3Q4UI
>>126
サイズetcの変更はどうする
128:名前は開発中のものです。
07/12/12 15:32:17 DfKtb5wZ
>>125
C#ならOK
129:名前は開発中のものです。
07/12/12 16:09:05 9ySxVkow
サイズ変更なら、StretchBiltなりDrawExtendGraphなりでできるだろ。
130:名前は多分開発中のものです。
07/12/12 16:17:11 m1CVZqe+
>>128
残念ながらココはC++のスレ。
ストレッチは1ブロックあたりがでかく汚くなる。
131:名前は開発中のものです。
07/12/12 20:51:46 DYTuCNrB
ドット絵ベースなゲームに、TTフォントを使うこと自体間違っている。
132:名前は開発中のものです。
07/12/12 22:58:46 VmmQnXXX
WCHARでいいんじゃね
133:名前は開発中のものです。
07/12/12 22:59:54 M90VuyCU
いっそC++/CLIで
134:名前は開発中のものです。
07/12/13 00:45:36 6EdETOic
>>132
むしろwcharでないとvistaで問題出るんじゃないかね
使ってるライブラリがwchar対応してるか知らないから黙っていたが…
135:名前は開発中のものです。
07/12/13 00:52:37 8oxft27H
0~9が並んでる保障ってあるの?
136:名前は開発中のものです。
07/12/13 01:39:26 oHtWeYhI
>>135
URLリンク(ja.wikipedia.org)
137:1
07/12/13 07:33:43 xfGpgGHW
そのうち画像を表示に切り替えるかも知れないと思いDrawStringDQを使ってました。
実はWCharって言うのがよくわからないんですよね…
使わなくても問題ないなら全角はChar二つ分でやりたいと思います。
あ、でも練習のためにも使っていたほうがいいのか。
勉強してこよう。。。。
フォントの画像は8x8でつくり
自分で拡張したDrawGraphWで二倍に引き伸ばして使う予定です。
Vistaに関しては。。。。 シラネ。
敵選択で倒したグループが非表示になりました。
経験値をゴールドが取得できるようになりました。
でもレベルはあがりません。
職業関連を実装しようと思ったら、パーティのグラが消えちゃいました。
Jobクラスにグラフィックを実装しようと思ってます。
URLリンク(sakuratan.ddo.jp)
138:名前は開発中のものです。
07/12/13 09:30:11 nRgEBkW0
マルチバイトのほうが面倒だと思うんだが
最近のwindowsだと標準じゃないし。
139:名前は開発中のものです。
07/12/13 13:35:23 6EdETOic
TCHARで切り替えられる作り方をするのが普通
140:名前は開発中のものです。
07/12/13 16:40:58 wG78UTwH
そうだな
俺もTCHARをお勧めする
Borlandにもちゃんとtchar.hあるじゃないか
141:名前は開発中のものです。
07/12/13 16:49:11 wG78UTwH
といっても全角使うのは明らかなんだからWCHARでいいか
とにかくchar2個とかはやめといた方がいい
時代の流れなんだから勉強しておいて損はない
142:名前は開発中のものです。
07/12/13 17:30:26 c4nhYvvc
従来の方法を学ぶのも大事。
とりあえず今回はchar[2]でいこか
143:名前は開発中のものです。
07/12/13 19:17:40 BdT1avie
マルチバイトが従来の方法(笑)
144:名前は開発中のものです。
07/12/13 19:50:19 AkmNVLfQ
>>142
>>1乙。それぐらい面倒くさがらずにやれよwwww
てめぇみたいなクズの公開オナニー見てもらえてるだけありがたいと思え。
わかったら黙って言うこと聞いて動けボケが
145:名前は開発中のものです。
07/12/13 20:05:44 qfpSXaMi
いや初心者らしいからそれはないだろw
どう考えてもUNICODE使う方が簡単に書けるし
146:1
07/12/13 22:54:41 xfGpgGHW
tcharとwcharについて調べてみました。
Unicodeに対応することを考えるとWCharよりはtcharのほうがいいんですね。
でもUnicodeに対応させる、っていうのがどういうことなのかいまいち分かってなかったりします。
UnicodeってUTF-8とかSJISとか文字コードの一種?…じゃないですよね?
string型から直接一文字ずつ取り出せればChar型自体を使わなくて済むような気もするんですが
そんなに単純じゃないのかな?
文字の画像データ化に関しては
文字の色を変更する必要があるためだめそうです。
ビットマップフォントを作ったほうがきれいに表示されそうなんですが
それを作る方法を探してる途中です。
とりあえずLvUPするようになりました。
Lvが上がった時にExpTable.csvから必要経験値を引っ張ってくるようにしました。
でもLvがあがっても強くなりません。
URLリンク(sakuratan.ddo.jp)
147:名前は開発中のものです。
07/12/13 23:33:02 PIfEmrrG
まーstringが使えるならそれで良いかもね。
148:名前は開発中のものです。
07/12/14 00:58:40 zCqlLrTu
必要経験値って公式で出ないのかな
149:名前は開発中のものです。
07/12/14 01:01:14 6SckcvZt
>>146
×tchar
○TCHAR
×Char
○char
wchar_tをwcharと書くのは別にいいけど…
TCHARはマクロだから全て大文字、charはプリミティブだから全て小文字になってる。
意味を大きく変えるような俺表記は控えるべき。
ソースの一貫性の無さをレスに滲ませてしまうと
レビューしてくれる人が減るよ
150:名前は開発中のものです。
07/12/14 01:47:46 0FCOwon9
>>149
たしかに、マにあるまじき行為ですた。以後気をつけます。。。Orz
経験値の公式… DQ3はあるらしいけど、詳しくは知らない。他のはまったく知らない。
確かに必要経験値とか自分で決めるのかなり面倒くさいかも。
151:名前は開発中のものです。
07/12/14 09:18:05 zCqlLrTu
テキトーに増加率決めて毎回かけてやれば勝手にインフレするんじゃないかな
152:名前は開発中のものです。
07/12/14 11:14:06 RH7bHxg6
lv = 1 + floor(sqrt(sqrt(exp * 2)));
とか
153:名前は開発中のものです。
07/12/14 11:38:29 OjqwAalp
string使うにしてもwstringがあるよ
154:名前は開発中のものです。
07/12/14 13:43:31 nzb/etqw
ひらがなしか使わないなら
ka = か
とかしてワイド文字使わなくてもいいんじゃないの。2バイトで同じだし
155:名前は開発中のものです。
07/12/14 14:09:47 kCvfmPHq
初心者自慢大会開催ですか?
156:名前は開発中のものです。
07/12/14 23:11:45 PVHuBi0D
ところで>>1の素材って使ってもいいの?
157:名前は開発中のものです。
07/12/15 06:07:38 bFTHAKDO
おまえら>>1を妬み過ぎw
158:1
07/12/16 00:08:59 ErKldHRa
wstringなんてものまであるんですか…。
Cってcharとの戦いなんだなぁ…。
あとカタカナは使います。
メラゾーマ が めらぞーま になってしまう。
経験値のアレはまだ直してないんですが
レベルアップした時にステータスが伸びるようになりました。
それを確認するための画面もつくりました。
つよさ>つよさをみる>
で確認できます。
ドラクエって実装しなきゃいけないコマンドの数がかなり多い気がします。
全部実装することを考えたら気が遠くなってきました。
バトルからフィールドの開発に戻ってきたら、最初の頃のやり方と、今のやり方がかなり違うことに気がつきました。
今のほうが分りやすいソースをかける気がしますが、一貫性がないのはまずいですね。
次は道具を追加したいですね。
URLリンク(sakuratan.ddo.jp)
159:名前は開発中のものです。
07/12/16 01:42:40 3vNRwpYs
俺も造ってみようと思ったけどVCしか持ってないんだよね
160:名前は開発中のものです。
07/12/16 10:55:45 XAAKi2bo
オレはvcで作ってる
161:名前は開発中のものです。
07/12/16 10:57:24 XAAKi2bo
まちがた。c#
162:名前は開発中のものです。
07/12/16 11:23:18 en60zWi1
ファミコンレベルならハードウェア性能が今と段違いだから好きな言語でいいさね
携帯Javaでドラクエが作られる時代なんだし
163:裕釐
07/12/16 12:46:38 QZxSJZzR
モンスターと遭遇すると
Gamedata/MonsterData/.bmpのモンスターのグラフィックがよみこめてませんが?
↓
サイズの表記が間違っています
とエラーmsgがでるんだが。
Gamedata/MonsterDataには「.bmp」なんてファイルなかったんで とりあえずファイルを置いたら
サイズの(略
が永遠とでてくる。
164:名前は開発中のものです。
07/12/16 15:20:09 PiXzjAgu
ソース見たがベタ書きし杉だろ
165:名前は開発中のものです。
07/12/16 15:35:46 EnxQUxiD
C++でFCのドラクエっぽいRPGを作るための上手な書き方について考察するスレになりましたよみなさんだいじょうぶですか?
166:名前は開発中のものです。
07/12/16 16:03:55 DoKPbT8s
某ランド使いのコードが汚いのは定説
167:1
07/12/16 16:09:32 ErKldHRa
>>165
おk
>>164 >>166
ソース書いてるときに理性が飛ぶ瞬間があって、冷静になって見直すと手がつけられない状態だったりします。
関数の行数が多すぎとか、引数が長すぎて見づらいとか。
エディターの所為にして逃げてもよい?(責任転嫁
>>163
もしかして、海で敵と戦うときにそのメッセージがでませんか?
海のモンスターは未設定だったので、グラフィックもモンスターのパラメータも用意してないので、エラーになります。
エラーならエラーで、ちゃんとError関数を使うべきでした。 Orz
海でしびれくらげが出るようにしました。(色が変なのは勘弁してください。
URLリンク(sakuratan.ddo.jp)
168:名前は開発中のものです。
07/12/16 20:25:32 Ty2sbBpB
>>167
今後のためにも一度キレイにしたほうがいいよ、
キミのスキルが上がってドンドン規模が大きくなった時に、
過去に作った基底クラスの改修のリスクが大きくなる。
169:名前は開発中のものです。
07/12/17 00:17:39 5U7KFETp
>>1の才能に嫉妬
170:名前は開発中のものです。
07/12/18 14:29:15 k2BEnLXI
>>169
>>1自演乙
この程度カスでも作れるからw
初心者が一生懸命やってると思って暖かく見守ってやってんだから調子に乗るなよ
171:名前は開発中のものです。
07/12/18 16:12:05 u7lRE18e
>170
zipでくれ
172:名前は開発中のものです。
07/12/18 18:36:06 2np8Lr6Q
>>170
こっちにもいんのかよw
単に作ってる奴叩きたいだけか?
173:名前は開発中のものです。
07/12/19 13:33:05 bDHcUzyc
ドラクエフォントを手に入れたが、どうやって使えばいいのかわかりません
174:名前は開発中のものです。
07/12/19 14:20:48 Pj6CyBbs
いちはとうぼうした
175:名前は開発中のものです。
07/12/19 14:55:35 F/n53iWq
>>1の技量であのコードをリファクタリングするんだもの
そりゃ時間かかるさ
176:名前は開発中のものです。
07/12/19 15:48:07 wxkJalN4
いちはメモリリークをたおした!
けいけんち4ポイントかくとく!
3ゴールドをてにいれた!
177:名前は開発中のものです。
07/12/19 16:05:30 qljgkazn
ソースを公開するからチンカスが住み着く
もうソースは出さん方がいいんじゃね
178:名前は開発中のものです。
07/12/19 16:37:07 Rgtwr7BZ
sambaやapacheのソース見て綺麗だと思う奴はいないが
世界中で役に立っている。それでいいじゃないか。
179:名前は開発中のものです。
07/12/19 16:46:25 K1qNY7pS
>>177
禿同だな
貶される程のコードならオープンにしても役にたつとは思えないしな
現にオープンソースにして>>1に何のメリットがあった?
基地外に煽られてるだけだろww
180:名前は開発中のものです。
07/12/19 17:27:15 WU61vHzY
日本語でおk
181:名前は開発中のものです。
07/12/19 17:49:51 UFtlHy+Q
別にソースを出さないといけないってワケでもないだろうし、
1に得るものがなければ、ソース無しで構わないでしょ。
見やすいコードを書かせようと必死になってる奴が
いるみたいだけど、ハッキリ言って流用されて乙なだけですよw
182:名前は開発中のものです。
07/12/19 17:55:16 G/oyIi8C
>>181そんなヤツいないだろwww
流用って、普通にフリーでオープンソースなRPGなんていくらでもあるし
そういうのは、多くの人の手がはいってるから結構なにげに凄い処理とかをさらっと描いてたりする。
>>1のがんばりは認めるけど、やっぱりまだまだ駆け出しだしねぇ・・・
正直、わざわざ>>1のソースをどうにかして使おう!!とか思ってるヤツは、(居ると仮定すればだが)
どう頑張っても、そいつは流用できるLvに達してないと思うが。
183:名前は開発中のものです。
07/12/19 18:00:41 WU61vHzY
1より下の奴が参考になるならそれはそれでやらしとけばおk
上の奴はスルーしとくか自分がソースだせばおk
どっちにしろ>>1の人気に嫉妬
184:名前は開発中のものです。
07/12/19 18:12:21 UFtlHy+Q
>>1
これで分かっただろ?w
なんだかんだ文句を言いつつソースを出してほしくてもう必死
あとは>>181ね。
185:名前は開発中のものです。
07/12/19 18:29:45 EcJVxUlm
2chなんて口だけのチンカスの集まりだからな
186:名前は開発中のものです。
07/12/19 18:31:39 gSqu12Dg
URLリンク(ossan.fam.cx)
ドラクエ5,6のフォントは、これだな。
187:名前は開発中のものです。
07/12/19 21:08:33 dUxlLljR
ここって1以外が作品出してもいいの?
188:名前は開発中のものです。
07/12/19 21:16:55 cCY2VP4H
パソを買おうとおもう高校生なんですが、最近のRPGツクールでどれくらいきれいな画面つくれるのか教えてください
189:名前は開発中のものです。
07/12/19 21:19:24 EcJVxUlm
お。早くも>1のパクリ作品がうpされるのかな ワクワク
190:名前は開発中のものです。
07/12/19 21:54:24 Mguefe/2
パクられると騒ぐ奴はC++でプログラム組んだこと無い奴だな。
三日前の自分は他人って言葉も知らないんだろう。
そもそも素人の設計じゃいくら可読性をあげても他人が再利用なんて非現実的。
>>1がうらやましいなら勉強しろ。
191:名前は開発中のものです。
07/12/19 22:08:25 qtVSPlwl
いきなり素人が素人煽りだしたけどなんで?
192:名前は開発中のものです。
07/12/19 22:12:00 Mr+WVqhZ
>>191
>>185
193:名前は開発中のものです。
07/12/19 22:21:05 k6t6Eu11
おまいらスレタイと>>1をちゃんと読んだのか?
194:名前は開発中のものです。
07/12/19 23:37:31 mTRZ4/8Q
知恵を貸してください、ってんだからソース出しとくのはいいんじゃね?
それで叩かれるのがイヤだって言われると困るけど、
叩くな言ってるのは他人なんだろ?
本人はけっこう素直に聞く耳持ってがんばってるようじゃないか。
ここは温かい目で、叩いてやれよ。
オレはミジンコだから、>>1のソースが解読できないけどさ。
ところで。ウィンドウの×押しで正常終了できないプログラムって嫌いなんだが。。。
195:1
07/12/20 00:01:13 jkXoOCi4
ちょっとスレが伸びてると思ったら、なんだかお騒がせして申し訳ないです。
今までぐっちゃぐっちゃだったソースを、ぐちゃ、位のソースにしようと悪戦苦闘で、アップできる状態じゃないです。
これからもソースと一緒に出すつもりでいます。
叩かれるのは100も承知です。
99は「ソース汚い」だけの無意味な叩きでも
1つは「ここがこう汚いからこうすべき」というアドバイスがもらえるかも知れませんし。
それからもし再利用したいという奇特な方がいらっしゃれば、どうぞ使ってやってください。(画像データ以外の話ですが
どのみち完成したらFCドラクエもどきツクールとしてオープンソースで配布するつもりなので。(ツクールも作成予定
ま、汚いソースをがんばって読んで再利用しようとするより、一から作ったほうが早いと思いますが。
あと、ここでソース公開したいっていう人はぜひ公開してください。
あんまり人のソースを読んだことがないので、人のソースを読む練習にもなるし。
でも、当然流用されることを前提の上でお願いします。
196:名前は開発中のものです。
07/12/20 00:17:31 55uWllby
別に汚くなんかないよ
197:名前は開発中のものです。
07/12/20 00:40:35 c2k1kUtz
他のスレでも制作者叩いてる奴だから気にするな
198:名前は開発中のものです。
07/12/20 14:49:58 E0vkwHlc
とにかく、1頑張れ。叩かれてもいいじゃないかぁ
199:名前は開発中のものです。
07/12/20 15:00:36 BoVdQ1SP
よくわからないけど>>1はホモに好かれるタイプ
現におれが>>1のこと好きだもん
200:名前は開発中のものです。
07/12/20 21:08:01 hPf6ENX3
なんというウホスレ
201:名前は開発中のものです。
07/12/20 22:38:17 tLt8cR7R
1は女性かもしれないぞ!
202:名前は開発中のものです。
07/12/21 08:09:06 JJIaTGjL
>>201you′re the dreamer
203:名前は開発中のものです。
07/12/21 11:59:28 CIW9ZWZn
>>1
前途多難かもしれませんが頑張ってください。
自分は挫折した。
夢の続きをあなたが担ってください。
応援してます。
204:名前は開発中のものです。
07/12/21 15:15:47 qNfTgitS
>>1
俺も能無しのうんこだから挫折した。
改造してパクるくらいしかできそうにないから早く完成させてくれ。
利用するだけ利用させてもらいます。
205:名前は開発中のものです。
07/12/21 22:40:13 +ezETTlV
パクってでも完成させられるなら、それはそれでいい腕だと思うがな。
少なくとも同じようなものを作れるだけの力量がないと、他人のソース読むなんて無理。
ドラクエとは関係ないが、俺もやろうとしたことあるからよくわかる。
206:名前は開発中のものです。
07/12/21 22:45:03 sZQMdwXf
自分で作れないうちは切り貼りでもなんか失敗するもんだしね
207:名前は開発中のものです。
07/12/21 23:20:35 pcz7fB4f
どれだけ無知なんだよw
208:名前は開発中のものです。
07/12/21 23:35:41 nR6ECJXi
ソース丸々コピればいいんじゃないの?
209:名前は開発中のものです。
07/12/22 01:36:50 NqisS1wp
無知じゃない奴ならいくらでもパクれるだろうが、
そんな奴はパクっても、自分が楽をするくらいの意味しかないだろ。
>>208
ソース丸々コピーしても、
その後どこを動かせばどうなるのかがきちんと分かってないと、
結局自分のしたいようにはできないんだよな。
210:名前は開発中のものです。
07/12/22 01:55:30 wzivk57h
俺はパクるからどうでもいいよ
211:1
07/12/22 16:57:59 GupsOJNk
プログラムって再利用の積み重ねで成り立っているものだと思ってました。
どこまでが再利用でどこまでがぱくりかの線引きは人それぞれなんでしょうが。
自分で書いたものを他人が、「俺が書いたんだぜー」見たいにいわれるとさすがにそれは違うだろ、と思いますが
でも、ソースを公開している以上、利用者の良識にまかせるしかないですよね。
直りきってない状態ですが、とりあえずUpします。
エンカウント時に生成されていないモンスターが現れるバグがあります。
名前が初期化時の【ななし】になっていてsizeが【0】だから多分。
原因は不明です。
あと敵がいくら殴っても倒れません。
ダメージ量が想定しているより少ないです。
ダメージが思うように出ない問題解決のために、ステータス表示ウインドウを作ってみます。
URLリンク(sakuratan.ddo.jp)
212:名前は開発中のものです。
07/12/22 18:06:58 RJx1d8cq
色々弄ったらVC2005でもコンパイルできた
213:名前は開発中のものです。
07/12/22 22:13:12 76aqh1yL
DirectXつかわないのでもOK?
214:名前は開発中のものです。
07/12/22 23:42:56 dee/YD/W
この掲示板における悪辣ないわゆる「叩き」による
ゲーム開発の業務妨害行為(刑233/234)に対する
情報提供をお待ちしております
有料で販売していたソフトを公開中止に追い込まれました
現在も無料ですが広告収入を得ており業務は継続し
民事上の損害額は発生していると考えています
よろしくお願いします
URLリンク(darkhouse.milan.jp)
hogehogent@hotmail.co.jp
215:↑
07/12/22 23:50:21 jgGcqNY9
叩きたくて必死で己の低脳丸出しな書き込みに気づいてないのかなw
216:名前は開発中のものです。
07/12/22 23:59:13 dee/YD/W
>>215
それは具体的にどういうことですか?
217:1
07/12/23 03:15:11 YeyPpYCN
>>212
多分、VC用のDXライブラリに入れ替えるだけで大丈夫だと思います。
もしダメだったら、ここをこうしないとダメだよ、等のアドバイスがあるとかなり嬉しいです。
>>213
全然おkです。
>>211 のバグはなんとか直ったみたいです。
モンスターが倒れないのは、勇者一行をロードする時に攻撃力、守備力がちゃんと設定できてなかったからでした。
ななしがでるのは、モンスターのグループの数を設定し、
モンスターの総数を決定した時にサイズオーバーでグループごと切り捨てた時に起こるバグでした。
ステータスの詳細が見れるウインドウを追加しました。
モンスターがダメージを受けたときに点滅します。
モンスターを倒した時のグラが消えるタイミングを修正しました。
ダメージを受けた時のメッセージを 味方だと うけた! 敵だと あたえた!になる様になりました。
あと戦闘後のResult画面とパーティアタックを実装すれば修正作業完了です。
途方にくれていた修正作業が年内におわりそうでよかった。
URLリンク(sakuratan.ddo.jp)
218:名前は開発中のものです。
07/12/23 11:05:23 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:名前は開発中のものです。
07/12/23 11:06:03 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:1
07/12/23 12:06:32 YeyPpYCN
>>218
itoaって処理系によっては使えなかったんですか…。
てっきりANSI Cとかで定められてると思ってますた Orz
ここまでやってきて実はsprintf関数の存在を知らなかったりします。
実はずっとあればいいのに、って思っていた関数だったので感謝。
>>219
constに関しては意味を勘違いしていました。
警告はでてたけど、無視してました。
const MonsterParty * mp = *((MonsterParty **)valuable)
とかやってステートメントが長くなって括弧が多くなって読解不能になるのを回避するべく
マクロみたいに、コンパイル時に置き換えられるのかとばっかり思っていて
そうじゃなかったらしいことは うすうす気がついていたんですが、気づかない振りをしてしまいました。
ま、動くならいいか、と。
参照渡しについては要勉強ですね Orz
まだconst関係のエラーを直していない、リザルト画面追加Ver
URLリンク(sakuratan.ddo.jp)
221:名前は開発中のものです。
07/12/23 12:43:02 91qXaWQF
>>217
入れ替える他適当にプロジェクトの設定を変えないと駄目だったけど、
それはVC固有の問題なので置いておくとして
class foo {
void func() {}
};
const foo f;
f.func(); // <- error
主にget***()のような函数でこういうのが問題になってたかな
get***のような函数では恐らくメンバの値を変更しないのでconstつけた方がいいかも
222:名前は開発中のものです。
07/12/23 12:43:33 91qXaWQF
被った・・・
223:1
07/12/23 13:11:26 YeyPpYCN
const の問題を解決しました。
MetaCmdでconstメンバ変数をただの変数に変えただけ。
本来は全部手打ちする奴を手抜きするための変数だったからと思って。
でも単に値を返すためのget**()は全てconstをつけるべきですよね。
ただ、ポインタを返すget*()はconstにしちゃうとダメ。
getMember(i)->setHP(100);
みたいな使い方をして、メンバ変数を変更したいから。
メモリの効率的な使い方が分らないので、
とりあえず、と思ってなるだけクラスを作るのを避けてきたんですが、
(そのためにデコンストラクタが呼ばれた時にメッセージがでる);
そういうのもあんまりよくないんだろうなぁ…
URLリンク(sakuratan.ddo.jp)
224:名前は開発中のものです。
07/12/23 16:23:12 puPpIEyb
そもそもDXライブラリはcygwinでの利用を想定していない
225:名前は開発中のものです。
07/12/23 19:29:09 1h86Cx8E
>>224
というわけで、VC6でビルドしてみた。
VCでビルドするにはいくつか注意が必要。
まず、forループのintの再定義でエラーが出るので、
プロジェクトのプリプロセッサの定義に
for="if (false) ; else for"
を入れる。これでエラーが出なくなる。
226:名前は開発中のものです。
07/12/23 19:29:51 1h86Cx8E
続き
DxLibはサイトからVC用の2.24をダウンロードしてくる。
次に、これは俺の環境でだけかもしれんが、DxLibのバージョンのせいか
(2.24使用)ウインドウ化してからDxLibを初期化するとうまく動かない。
ので、
ChangeWindowMode(TRUE); //ウインドウモードで起動
SetGraphMode(512,480,16) ; //ファミコンの画面サイズの二倍
この二行を、
if( DxLib_Init() == -1 ){
Error("DXライブラリの初期化に失敗しました。");
return -1;
}
のあとに持ってくる。
227:名前は開発中のものです。
07/12/23 19:30:19 1h86Cx8E
さらに続き
さらに、このプログラムでは、読み込むセーブデータの形式が
デバッグモードの場合csvで、そうじゃない場合savとなっているが、
VCではデバッグ用の定義がDEBUGではなく、_DEBUGなせいで
セーブデータが読み込めない。
OpeningCommands::openSaveData
OpeningCommands::getFileAmount
の中の、
#ifdef DEBUG
を
#ifdef _DEBUG
にする。
とりあえずこれで動いた。
228:名前は開発中のものです。
07/12/23 19:34:20 1h86Cx8E
で、だ。
敵とエンカウントしたら、落ちた。
MsgCmd::Draw()の中に
msgRecord[lineIndex] += c;
とあるが、
lineIndexが初期化されていない(-52が入ってた)ので
コンストラクタでlineIndex=0とやったら落ちなくなった。
229:名前は開発中のものです。
07/12/23 19:44:05 tnd2Kzyl
VC2005で開く方法はわかります?
230:名前は開発中のものです。
07/12/23 21:04:00 jakAnU/i
なんだかんだ言いつつパクり候補だらけで吹いたw
231:名前は開発中のものです。
07/12/24 02:26:02 sxR7bqmX
古代イスラエルのペテン乞食の誕生日を祝う義理なんかないね。
232:名前は開発中のものです。
07/12/24 04:20:15 Qqp4Qc85
いつもzipでupしてて大変そうな>>1へ
openSVNでググってみ
upの手間解消以外にもいいことあるから
233:名前は開発中のものです。
07/12/24 12:25:44 W6Vnta1P
sourceforge以外にもこんなのがあったのか
しかもtracつきとは…
至れり尽くせりですな
234:名前は開発中のものです。
07/12/24 13:28:12 tyHiXGGL
>>232
なにこのオレオレ証明書
怖くてアクセスできません
235:名前は開発中のものです。
07/12/24 13:52:28 Qqp4Qc85
>>234
>>1のアーカイブ内に盗聴されてマズイものなんか明らかに含まれてないわけで。
そもそもソースが公開されてるわけだし。
何を怖がるの?
236:名前は開発中のものです。
07/12/24 13:59:49 QMo/K7QW
2ch的には、zipでくれ
でOK
237:名前は開発中のものです。
07/12/24 14:02:37 tyHiXGGL
>>235
>>1がオレオレ証明書の危険性とリスクを正しく理解して使うかどうか分からないので、
あえて警鐘を鳴らしてみただけ。
238:名前は開発中のものです。
07/12/24 14:11:31 Qqp4Qc85
>危険性とリスク
背伸びしてることはよくわかった
239:名前は開発中のものです。
07/12/24 14:25:18 tyHiXGGL
>>238
善意でいい場所教えてたところに水をさして悪かったね。
240:名前は開発中のものです。
07/12/24 14:34:02 mDb7ohkP
オープンソースコミュニティから認証されていれば
俺俺証明書といえどもそこらの企業が発行するよりよほど信用に値する。
241:名前は開発中のものです。
07/12/24 14:56:27 VZkDqfyR
ID:Qqp4Qc85
これがゆとりか・・・あはっ
242:名前は開発中のものです。
07/12/24 15:41:17 GMWXNbta
オペラだと証明書の警告出るからビビる事がある
243:名前は開発中のものです。
07/12/24 15:42:27 kLIOmkDP
cygwinってitoaは駄目なのか…。へー。
17時間かけて書いたソースを一瞬で17時間前の状態に戻してしまい、即svnを導入した俺が来ましたよ。
244:名前は開発中のものです。
07/12/24 15:45:19 GMWXNbta
TortoiseSVNが素晴らしすぎです
245:名前は開発中のものです。
07/12/24 16:15:18 jsxGAw5D
VSSでいいや
246:1
07/12/24 16:35:47 dQ2B5wP/
とりあえずなんか証明書が出たのはびびりましたw
オレオレ証明書って、そういう意味か。ちょっと吹いた。
とりあえず登録はしてみたものの、英語が得意ではないので、使い方がわかんない。
日本語で解説してくれるところも見つからないし
うpロダを使うよりもどういう風に良くなるのかさっぱりなんですが、
とりあえず使ってみよう、と思った次第です。
っていうか そもそもSVNってなんだ?ってレベルなので Orz
いろいろ勉強になるなぁ。。。
初心者ながらにスレ立ててよかったよ。
おまいら 本当にありがとう。
247:名前は開発中のものです。
07/12/24 19:18:12 eeQyTJgH
俺もあんまり詳しくないけどCVSとかSubversionとかでググって見ると良いかも
要するにソースを差分更新できるって奴じゃないかな。
で、バージョン戻したりとかブランチ切ったりする時に管理が楽になるんだと思う。
なんか勘違いしてたらごめん。
248:名前は開発中のものです。
07/12/24 22:15:23 vSGEO8zs
で、VC2005での開き方おね
249:名前は開発中のものです。
07/12/25 01:26:04 EFT5OR5C
おねがいします
250:名前は開発中のものです。
07/12/25 07:21:53 3AGd3eRU
空のプロジェクト作って、その中にインポートすればいいんじゃない?
試してないけど。
バックアップということを考えて、ローカルにsvn環境入れるのが吉。
251:名前は開発中のものです。
07/12/25 09:04:51 bD/x789M
無能が必死になっててワラタw
252:名前は開発中のものです。
07/12/25 09:28:03 3AGd3eRU
URLリンク(homepage2.nifty.com)
ここからVC用のを落として、 >>1のソースフォルダ中に上書き。
空のプロジェクト作って、プロジェクトフォルダに>>1の中に入ってるファイルをコピー。
最後に既存項目の追加。
でもGetColorなんちゃらが未定義だってエラーが出る。
何のこっちゃ。
253:名前は開発中のものです。
07/12/25 09:33:38 /Ih03gre
VCでコンパイルするには
DxLib.hの#define DX_USE_VISUALC_MEM_DEBUGのコメントを解除した上で
その周辺に書いてあるようにランタイムライブラリをスタティック(/MT,/MTd)にする
254:名前は開発中のものです。
07/12/25 09:58:55 3AGd3eRU
>>253
そうだった忘れてたorz
コンソールアプリケーションにしちゃってたwww
なんかもうね…。
255:名前は開発中のものです。
07/12/25 10:21:58 3AGd3eRU
win32で作り直してみたらビルドできた。わーい。
でもキーが反応しねぇ…。
最初の画面から先に進まねぇぞ。
256:名前は開発中のものです。
07/12/25 10:25:27 3AGd3eRU
>>225
>>226
>>227
>>228
をやってみた。
めんどくせぇwwww
257:名前は開発中のものです。
07/12/25 10:45:33 yp96yKtz
なんだこの無能集団はw
ソース晒すと乞食が集まってくるのな
258:名前は開発中のものです。
07/12/25 11:55:44 EFT5OR5C
ありがとう 開けた
しかしC++って本当にコード量多いんだな
別にVBでRPGを作って、今も拡張してるんだが
その3倍はあるわ
259:名前は開発中のものです。
07/12/25 11:57:43 EFT5OR5C
ちょ;しかもよく見ると未実装部分が多いな~~
動かんはずだわ;;
260:名前は開発中のものです。
07/12/25 12:55:54 QQlPLUh8
ATLかCLR使ったのでもOK?
261:名前は開発中のものです。
07/12/25 15:01:31 cauaNc1L
C++ってライブラリ面倒だよねぇ。
JavaでドラクエっぽいRPGつくってる俺は勝ち組w
ビットマップもサウンドもスレッドまで「標準」装備だから、楽だよ。
一度書けば、WindowsにMac、Linuxはもちろんちょっと書き変えて携帯でも動かせるしね。
262:名前は開発中のものです。
07/12/25 15:13:58 /Ih03gre
最近見たアクションゲームのコードはC++で3600行弱
それをほとんど分割せずに一つのファイルに書いてた
管理できる作者が凄いと思った
263:名前は開発中のものです。
07/12/25 15:14:09 iHzefklh
多様性というか宗教がね
264:名前は開発中のものです。
07/12/25 15:24:50 EFT5OR5C
今、手持ちのVB製RPGのコードを数えてみたが
システム部が530行しかないぞ?
Win標準のコントロールは多用してるが・・
265:名前は開発中のものです。
07/12/25 17:44:19 HsCI0IW/
そもそもC++とかwindows以外日陰言語じゃね?
266:1
07/12/25 19:00:35 y+e7ShHG
いろいろお騒がせしてすみません。
>>255
最初の画面で なにかぼたんをおしてください と出てますが
反応するのはじつは【X】だけです。
ちゃんとわかるように修正しました。ごめんなさい。
>>225-
>>225
プリプロセッサが良くわかんないので、ごめんなさい。
>>226
僕がコンパイルしたやつが上手く起動できるか教えていただけますか?
Init()の前に書くと、最大で表示されてから、ウインドウに戻るのがなんかかっこ悪くて、もたつくので避けたいです。
>>227
定数を設定しているconst.hに
#ifdef _DEBUG //VCのDEBUG定義用
#define DEBUG
#endif
と追加してみました。 これで多分動くと思います。
>>228
直しました。リファクタリングが完璧じゃなかったですね。ほんとごめんなさい。
225さん、マジ感謝です。
267:1 続き
07/12/25 19:01:04 y+e7ShHG
>>229
ごめんなさい、わかりません。
>>232
openSVNは英語でさっぱり分かりませんでした。
使い方が理解できるようになるまでは今までどおりでいくのでお願いします。
>>258-
ソースが長いのは僕の力量不足が原因だと思います。
初心者なんであんまり激しく叩かないでね(はぁと
MsgBox::lineIndex が初期化されていなかったバグを修正しました。
パーティアタックができるようになりました。
戦闘のコマンドのカーソル位置が前回の位置のままだったのを、常に一番上になるように修正しました。
フィールドのコマンドで、何を選んでも一応反応はするようになりました。
「しらべる」を実装しました。
なんちゃってスクリプトにGetItemを実装。でも、持ちきれなかった時の処理はまだやってません。
ちゃんと何を持っているかを表示して、選択して使えるようにしたいです。
URLリンク(sakuratan.ddo.jp)
268:名前は開発中のものです。
07/12/25 22:07:35 YDMhjtcq
>>262
まぁ、3600ぐらいなら稀にいるよなwww
保守なんかでぶち当たると、担当者をおもいっくそぶん殴りたくなるけど。
269:名前は開発中のものです。
07/12/25 23:06:27 a/8xYA/E
ワシのコードは20000行まであるぞ
移動手段は主にCTRL+F。
270:名前は開発中のものです。
07/12/25 23:20:42 ag668EB8
イタリアンなスレでした。ごちそうさま。
271:1
07/12/26 02:57:21 1u83AD+Q
>>270
関係ないけど、僕チーズ苦手なんだ。
今、克服しようとがんばってるんだけど、なにかいい克服方法ないかな?
戦闘中に表示されるメッセージがとりあえず変になる不具合を修正しました。
アイテムコマンドが開けて、アイテムを捨てられるようになりました。
【つかう】と【わたす】も一応開いて、相手を選べるけど何もおこりません。
はやく使えるようにして、あと そうびもできるようにしたいなぁ…
URLリンク(sakuratan.ddo.jp)
272:名前は開発中のものです。
07/12/26 10:56:47 7EU3RgUI
2000行のRPG(VC++)だと、こんな感じみたい。
URLリンク(www.sm.rim.or.jp)
273:名前は開発中のものです。
07/12/26 11:17:05 cowMx0h2
おまえらMeiryoKe_Consoleでソース印刷オススメ。
プリンタの設定いじれば2.5ポイントまで小さくしても識別できる。
段組4段くらいで両面印刷すると1MBくらいのソースでもA4用紙数枚に収まるぞ。
2000行どころか20000行あっても余裕
274:名前は開発中のものです。
07/12/26 15:10:48 50qxxoia
>>273
やっぱ印字して管理かぁ
極力分散化して、仕様書なしで開発してるけど、もう限界かな;
275:名前は開発中のものです。
07/12/26 15:46:09 SCmg4E2p
YOzFontOTWLが好き
276:255
07/12/26 21:36:50 U+VPBuDi
>>266
プリプロセッサの定義ってのは、簡単にいうと#defineでの定義ってこと。
_DEBUGとかのね。VisualStudio2002くらい(?)までは、同じスコープにint i
を使ったforループが二個あるとコンパイルエラーになってしまうので、
それを回避するためのマクロをソースコード外で定義してる。
最近のVCを使ってる人は問題なし。
配布されているexeはちゃんと動いてる。
ただ、俺の環境ではそうなっちゃってるんで、自分でビルドしてみたけど
同じ症状が出ちゃってる人は、こうすると、とりあえず動くよって話。
俺もリファクタリングしちゃろうかなと思ったけど、C++じゃEclipse使っても
名前の変更くらいしかできんのでアレだね。
Javaはいいぞ。IDEのリファクタリング機能が充実してるから(C#もらしい)
277:名前は開発中のものです。
07/12/27 18:56:27 niNmKkqY
Windows + EclipseでC++開発ってできるの?
できるなら俺もそうしたいが…。
Cygwin入れないと駄目だYOね…やっぱ…。
278:名前は開発中のものです。
07/12/27 19:25:50 StfaQThG
いや普通に出来たと思ったが。>>Eclipse
でもC++ならVC++かDelphiでいいんじゃね?
VC++もExpress Editionなら唯だし。
279:名前は開発中のものです。
07/12/27 23:34:33 5OqnPp7P
>>269
なんという俺ww
280:名前は開発中のものです。
07/12/27 23:50:02 kJ7Tc5xf
VCEEてどとねとしか作れなくね?
281:名前は開発中のものです。
07/12/27 23:55:21 rPpTSPbm
>>280
お前みたいな素人でもWin32のソフトが作れるようになったから
ダウンロードしてインスコしろ
URLリンク(www.microsoft.com)
VC2005EEでもちゃんと手順を踏めば作れたが
VC2008EEは勝手にインスコしてくれる
ミクロソフト様に感謝汁
282:名前は開発中のものです。
07/12/28 17:46:11 bBukVEqP
linuxでも動くようにSDLかirrichtでおk
283:名前は開発中のものです。
07/12/28 21:00:05 vFKC9i1/
>>282
釣りか?
突っ込み所満載なんだが
284:名前は開発中のものです。
07/12/29 00:13:30 E8hFcf4X
DXライブラリの画像置き換えとかどうすればいいんでしょうか。
285:名前は開発中のものです。
07/12/29 21:57:12 Wv0RLQJj
ほす
286:名前は開発中のものです。
07/12/30 00:19:42 BeUezp3c
【目指せ】2ch_city【世界一】
■以下のURLを踏めば街が発展する
・人口 URLリンク(2chcity.myminicity.com)<)
・交通 URLリンク(2chcity.myminicity.com)
・治安 URLリンク(2chcity.myminicity.com)
・環境
・ビジネス
工業以降は人口の増加に比例して選べるようになる
■発展のコツ
単に人口だけを増やしても、街は発展しない!
失業率が増えると人口が減ってしまうので、バランスよく発展させよう
■参照画像
URLリンク(www.uploda.org)
URLリンク(www.imgup.org)
URLリンク(www.vippers.org)
2chの力で世界1位を目指そう(`・ω・´)
287:名前は開発中のものです。
07/12/30 00:49:10 +C5YkyEz
>>286
うぜえな
このコピペあっちこっちで見るし
よっぽど暇なんだな
288:名前は開発中のものです。
07/12/30 00:55:37 xBMBsl4k
つか、xipとか名乗るのが来ている時点で、
このスレにもこんなのが出入りしているんだなぁと幻滅。
289:名前は開発中のものです。
07/12/30 10:19:34 D5MQ9R0C
非2ch民乙
290:名前は開発中のものです。
07/12/30 13:36:17 FTDXJbxl
運営が推せと言ってるわけでもないし
そもそも2ちゃん関係の街がいくつもあるだろ
291:名前は開発中のものです。
07/12/30 13:47:05 bQOjHSJq
2ch発にこだわるバカだろ
292:名前は開発中のものです。
07/12/30 20:57:55 vox8eoxh
【目指せ】2ch_city【世界一】
■以下のURLを踏めば街が発展する
・人口 URLリンク(2chcity.myminicity.com)<)
・交通 URLリンク(2chcity.myminicity.com)
・治安 URLリンク(2chcity.myminicity.com)
・環境
・ビジネス
工業以降は人口の増加に比例して選べるようになる
■発展のコツ
単に人口だけを増やしても、街は発展しない!
失業率が増えると人口が減ってしまうので、バランスよく発展させよう
■参照画像
URLリンク(www.uploda.org)
URLリンク(www.imgup.org)
URLリンク(www.vippers.org)
2chの力で世界1位を目指そう(`・ω・´)
293:1
07/12/31 23:48:38 FFzcA1fJ
年末の行事に追われてなかなか作業が難航してますが、挫折したわけではないので見捨てないでください。
それでは おまいら よいお年を。
294:名前は開発中のものです。
08/01/01 00:16:46 6htQfom6
>>1 は にげだした
295:名前は開発中のものです。
08/01/01 12:44:38 bYZxBYfp
ドラクエの逃げる効果音は秀逸
296:名前は開発中のものです。
08/01/01 15:44:46 0nVkScXG
久々に来たがもう二ヶ月続いてるのか
うまくいけば年内には最低限ガワくらいは出来るんじゃないの?
297:1
08/01/02 13:30:49 MAyGlp63
あけましておめでとうございます。
あんまり進んでないけど久しぶりのUp。
「わたす」をとりあえず実装したものの、まだ動作が変。
自分に渡すと「わたすふりをしたが…」って表示しなくちゃだったよね。
URLリンク(sakuratan.ddo.jp)
298:1
08/01/04 04:25:06 4fMs9e5G
フィールドのアイテム関連の実装です。
じぶんにアイテムを【わたす】と わたすふりをしたが~ と表示されるようになりました。
【やくそう】が使えるようになりました。
URLリンク(sakuratan.ddo.jp)
CommandsField::giveControl()が極端に長いのが嫌です。
switch文の多様でインデントつけると逆に見づらい、みたいな現象ですが、
各コマンドごとに関数に切り分けるべきでしょうか?
アイテム使用時に
use(MsgCmd *,Character *user,Character *target,int partyState);
みたいな感じにしたかったけど、Useable.hとCharacter.hがお互いをインクルードしなくちゃいけないので無理でした。
今のところCommandsFieldクラスで無理やりやってるけど、あんまり美しくないですよねぇ…。
299:名前は開発中のものです。
08/01/04 14:01:08 aDuyr57S
Sugeeeeeeeeeeeeeeeeeee
300:名前は開発中のものです。
08/01/04 14:31:35 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:名前は開発中のものです。
08/01/04 14:59:40 0MJJiUxP
ファイル分割と前方宣言を駆使すれば
循環インクルードは回避できるYO!
302:名前は開発中のものです。
08/01/04 15:08:51 0MJJiUxP
あ、今回のは循環インクルード問題じゃなくて相互参照の問題だった
303:1
08/01/04 17:31:29 4fMs9e5G
>>300
確かに回避できますが…
HPやらNameやらを全部実装させないといけないので、あんまり意味がないような気が…
実際Characterを継承しているPCクラスがItemBoxを持っているので、ヘッダを別ければいけるんですが、
つかうと独自に設定したメッセージを表示できるアイテムとかを作れるようにしたいので
なんちゃってスクリプトの方に投げる形式にすることにしました。
static Useable::outMsg , who , to を作ってFieldクラスから命令文、使用者、対象者を見れるようにして
Field::iventPriProcess(std::string*)で
"<UserName>" とかを使用者の名前に変換して命令文を実行するようにしました。
PriProcess関数を使うと普通の村人の会話を作る時に先頭の人の名前を呼び出せたりできます。
Useableを自作スクリプトで解決する以上、
戦闘中のアイテム使用や、呪文使用も同じ方法で解決しなければいけないため
FieldとBattleFieldの上位クラスを作って継承させるか、
それぞれに独自に実装させるべきか迷ってます。
もしくは両方つかって、共用部は親クラスで、専用部は子クラスで実装すべき?
書いててわけわかんなくなってきたので 頭冷やしてきます。
URLリンク(sakuratan.ddo.jp)
304:名前は開発中のものです。
08/01/04 18:14:08 uTfk0Xu7
>>298
メンバは基本ポインタのみにすれば
前置宣言だけで、継承元のクラス以外のファイルはincludeする必要はない。
というか実体を持たせるとそのクラスを作成したときにメンバに実体を持っている
クラスのインスタンスも作成されて複雑になってくると問題が発生しやすいので
基本的には単にデータをまとめたようなクラス以外はポインタで持つのが基本。
ゲーム作るのと平行してC++の勉強をもっとした方がいい。
305:名前は開発中のものです。
08/01/04 19:53:41 OF7wpiKh
>>303
まずはそれぞれ独自に実装して、共通する部分が多いなら分離してクラス化すべし。
最初から共通部分を使いまわすことを前提に作ると、かえって冗長な部分が多くなって失敗することがある。
コードの美しさが気になるなら、リファクタリングとかデザインパターンを勉強するといいかも。
306:1
08/01/04 20:22:51 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:名前は開発中のものです。
08/01/04 20:27:35 4fMs9e5G
>>305
なるほど。確かにそんな感じがします。
個別に作っていって見ますね。
デザインパターンはGofは買ったんですが、半分くらいしか読んでねぇ。Orz
経験を重ねて、どう便利なのか理解しないと、身にならないなー、と実感してる次第でございます。
308:名前は開発中のものです。
08/01/05 10:54:21 NGmgLj5+
Gofはひととおりどんなパターンがあるのか目を通しておくだけで、
あとは必要に応じて辞書みたいに引くんでいいと思う。
「ここはもっと綺麗に実装できなかな?」と思ったときにちょうどいいパターンがないか探す感じで。
最初からパターンどおりに作ろうとするとこういう罠にはまることがある。
「ここはコマンド機能だからCommandパターンで作ろう!」
↓
「あれ…? なんでこんなに面倒な構造にしなきゃいけないんだ…?」
↓
「せっかくデザインパターンを適用したのにちっとも効率良くならない。やっぱデザパタなんて糞だな。」