X



無料で俺がRPGを作れるようにするスレ
■ このスレッドは過去ログ倉庫に格納されています
00011 ◆SLnV723rxg
03/07/26 20:18ID:PRWX91og
やる気だけはあるぞ。
0002名前は開発中のものです。
03/07/26 20:21ID:P5g1Nezt
2だけもらうぞ
0003名前は開発中のものです。
03/07/26 20:35ID:8kL3MDMr
僕もアプリを作れるようにご指導ください。
今作りたいと思ってるのは

┃━━ ○┃
┃    ┃ 
┃  ━━┃
┃━ ━━┃
┃    ┃
┃    ┃

罫線の隙間を○が通り抜けて行き、スコアを競うエンドレスゲームです。
どなたか協力お願いできませんか?
0004
03/07/26 20:35ID:8kL3MDMr
ちょっとずれてますが、だいたい分かるでしょうか?
0005名前は開発中のものです。
03/07/26 21:17ID:D88gIvyB
>>3
十分理解可能です。
・・・が、私には作る技術はありません・・・(ゴメンナサイ)
0008名前は開発中のものです。
03/07/27 12:26ID:q0qyX7Vb
>3
○の動作
壁に当たると、死ぬ
壁の隙間を抜けると、ボーナス得点
右と左にはいけない

やってることは、ブロック崩しゲームとほとんど同じ。
ブロック崩しはブロックに当たるとブロックが壊れる。
そのゲームはブロックに当たると○が壊れる。

まずはブロック崩しをつくれるようになるべし。

そして、ブロック崩しを作りたいのであれば、オススメは
DelphiやHSP
0009
03/07/27 18:31ID:YL7QWt4E
>>8
Delphiって何ですか?それとアプリ作成講座みたいなページあったら
紹介してください。(その前にどのソフトでアプリを作っていいかも・・)
0010名前は開発中のものです。
03/07/27 18:59ID:oZ4ay+Re
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★ 送料激安!  スピード発送!  商品豊富!   
★☆      http://www.get-dvd.com        
☆★ 激安DVDショップ 「GETDVDドットコム」 
★☆      http://www.get-dvd.com        
☆★ 今すぐアクセス Let’s Go!   急げ! 
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
0012
03/07/27 20:24ID:YL7QWt4E
>>11
えーとHSPという方で基本を学んできました。でもゲームを作るような感じ
じゃなかったです。何か説明してるページ無いでしょうか?
0014名前は開発中のものです。
03/07/27 20:58ID:YL7QWt4E
>>13
探したんですけど、よく分からなくて(汗)
0016名前は開発中のものです。
03/07/27 22:57ID:sdTKFM6v
>12
ゲームを作成するテクニックに関しては、
googleで探そう。
3さんの言ってるようなゲームなら、プログラミングを始めてすぐできるさ。
数学の知識も使わないし、オブジェクト指向とかポインタとかの知識も
全く必要ないし。
00183 
03/07/28 07:13ID:4DAxggKb
>>17
JaveScriptはきいたことがあるのですが、ちょっと分からないので
説明お願いできますか?それとドコモで専用作成ツールをDLしようとしたら
DLできませんでした。
0019名前は開発中のものです。
03/07/28 08:03ID:W8S4+BRc
>>3
あ、結構具体的な目標もあるし、本買った方が早いかも。
プログラム関連の書籍とツールにかかるお金ぐらいは出したほうがはやいよ。
それと、もしかしてimode?
まず、PC買わないと駄目だよ。
0021名前は開発中のものです。
03/07/28 08:26ID:BihCs1e/
19=PC業者
0022ういう
03/07/28 11:33ID:/XGI18EH
HSPでゲームくらい作れるようになってたら、だいたい他の言語にも割とすんなり入っていけると思うよ。
だからもうすこしHSPをがむばってからVBやDelphiに入れば。
でも俺Delphiではソフトしかつくったことないな
でもきをつけるのは、HSPはかなり変数の面でお手軽だから、Cやパールとか他言語に入ったとき、勘違いしないことだな。
0023名前は開発中のものです。
03/07/28 15:19ID:EPvqwOYe
ゲーム作るときは、まず最初はブロック崩しとか
テトリスみたいな単純で、複雑な処理を必要としないようなゲームを作るべき。
そういうのができたら、シューティングゲームや簡単なアクションを作ろう。
シューティングやアクションも、プログラム自体は難しくない。
0025
03/07/28 18:30ID:4DAxggKb
でもやっぱり
picload "〜jpg"みたいな文章書けるようにならないとだめですよね?
0027名前は開発中のものです。
03/07/28 19:40ID:vP5ldjQU
>25
その程度はかけないとダメだけど
そのくらいなら小学生でも出来るから問題無しですな。
0028名前は開発中のものです。
03/07/28 21:15ID:4DAxggKb
>>27
ということは書けないとアプリは作れませんか?
0029名前は開発中のものです。
03/07/28 21:38ID:vP5ldjQU
>28
そりゃゲームだし、画像の表示程度は出来ないと話にならないでしょ。
画像表示しないゲームってものすごくつまらなそうなんだけど・・・
0033
03/07/28 23:09ID:4DAxggKb
こんばんわ。ちょうどPCの調子がよくなったのでドコモでDoJa3,0をDLしました。
setup.exeをダブクリしてインストしようとしたのですが、JAVAなんとかっていうのが
DLされてませんと出ました。コレはいったい・・?
0035
03/07/29 02:22ID:GdToF09T
JDKというソフトをDLしたいのですが、英語ばかりで分かりません。
どなたか誘導?してくれませんか?
0036名前は開発中のものです。
03/07/29 10:21ID:585v1cxg
>>35
ttp://java.sun.com/j2se/1.3/ja/

思いっきり日本語だが・・・
0037名前は開発中のものです。
03/07/29 11:07ID:lZFl+Ble
>>3
ところでiアプリを作るんですか?
覚えることが多いなど敷居が高く、言語はJavaに限定されます。
0038
03/07/29 11:33ID:GdToF09T
>>36
右上にあるJ2SETM v1.3.1_08 のダウンロードというのをクリックすると
全て英語になります。
>>37
はい!作ります。でもJDKがDLできなくて・・
0039名前は開発中のものです。
03/07/29 11:50ID:R2DQ9SZB
アダルトDVDが
 最短でご注文いただいた翌日にお届け!
         http://www.dvd-exp.com
        開店セール1枚 500円より
0041
03/07/29 13:30ID:SgGlWbaP
A
0046名前は開発中のものです。
03/07/29 20:54ID:KpGW3TEG
http://www.vesta.dti.ne.jp/~hi-lite/sample.html
サンプルキキキキタタタタ━━━((゚(゚∀゚)゚))━━━!!!!サンプル
0047名前は開発中のものです。
03/07/31 01:16ID:3czl0eSH
>>29,36
お前らなんでこんな馬鹿に親切ですか?

>JAVAなんとかっていうのがDLされてませんと出ました。
>コレはいったい・・?

こ れ じ ゃ 無 理 だ ろ
0048名前は開発中のものです。
03/08/02 05:38ID:DCU+5E3e
でも普通に>>3みたいなゲームはおもしろそう。
誰か作って!
0049名前は開発中のものです。
03/08/02 07:46ID:iYVycL4f
キキキタタタタ━━━((゜(゜∀゜)゜))━━━!!!!
http://link.iclub.to/adalt/
0051名前は開発中のものです。
03/08/02 18:58ID:DCU+5E3e
誰か>>3のアプリ作れよ。俺やりてーよ。
0053名前は開発中のものです。
03/08/03 02:06ID:BycttfKA
>>52
まじ頼む。>>3のアイディアは結構いいと思う。
0055名前は開発中のものです。
03/08/03 07:23ID:BycttfKA
じゃあ俺と協力して誰か作らないか?
まぁ俺はソースかけないから画像担当になるだろうけど・・・
005755
03/08/03 08:20ID:BycttfKA
とりあえずキャラのドット画作ってみたから見てみてくれ。
http://machiuke.netfirms.com/files/1180.bmp

それと背景(マップかな)は解像度いくつで書けばいいと思う?
一応505対応にしたいんだけど、まず503のアプリを作ってから
マップを拡大すればいいと思うんだけど、そこらへんどう?

キャラは24*24で書いてみた。
005955
03/08/03 08:51ID:BycttfKA
>>58
お前はなんなんだー!!
0061GET!DVD
03/08/03 09:19ID:hgEDcEDo
☆★ 新商品 ゾク・ゾク 入荷!! 急げ〜!! ☆★☆
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★ 送料激安!  スピード発送!  商品豊富!   
★☆      http://www.get-dvd.com        
☆★ 激安DVDショップ 「GETDVDドットコム」 
★☆      http://www.get-dvd.com        
☆★ 今すぐアクセス Let’s Go!   急げ! 
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
006252
03/08/03 09:51ID:ITJGpDy3
えーと携帯用に作るのか?
携帯だと何で作れるの?Java?

自分的にはHSPでやってみたいと思っていたんだが・・・
006355
03/08/03 09:56ID:BycttfKA
>>62
HSPじゃ無理って言われたんだけど、どうなんだろ??
とりあえず環境はdocomoのDaJa3,0とJDK(だっけ?)をDLするらしい。
他のところで話す?専用板作って。
006452
03/08/03 10:09ID:ITJGpDy3
いやーちょっと待ってくれ
今は忙しいんだ
水曜まで待ってくれ・・・
006655
03/08/03 14:45ID:BycttfKA
分かった。
006855
03/08/04 19:22ID:v6yOzF83
>>65
やるときはhttp://www.hamq.jp/i.cfm?i=punch2に来て。
んでメールはk_pom_pon@inter7.jpにして!別に捨てアドだからな。
006955
03/08/06 09:18ID:/18CjaJ9
>>64
水曜日キタ━━━━━(゚∀゚)━━━━━!!
007052
03/08/06 12:34ID:PA4bRhvB
いよう

さてHSPでちょこっと作っている途中だがなんかむずい
一応これを実行して見てくれ
ttp://henachoko.homeip.net/uploader/updata/20030806123051.zip

あとDaJa3.0とかいうやつはwin98じゃ動くのかわかんねーし
俺はドコモじゃないから実機での動作がわからんので止めるか

ってところだがどうする?
0071名前は開発中のものです。
03/08/06 18:48ID:KYBxWBMm
Delphiで円とか線とか描画するクラスおしえてくれ。
007355
03/08/06 20:34ID:/18CjaJ9
>>70
レス送れてスマン。
やってみたけど、針の数が少ない気がする。
でもかなり(・∀・)イイ!!感じかも。作れそう?
007455
03/08/06 21:27ID:/18CjaJ9
今のところ画面サイズは240*240でどう?
0075名前は開発中のものです。
03/08/06 21:44ID:khm91ibf
http://www.boreas.dti.ne.jp/~keitarou/
どうしてもオナりたい時にどうぞ
0076名前は開発中のものです。
03/08/06 21:53ID:g+4nY3lW
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★☆★☆★ 新商品 ゾク・ゾク 入荷 ☆★☆★☆
★☆                       
☆★ 送料激安!!  送料激安!!  送料激安!!
★☆      http://www.get-dvd.com      
☆★  激安アダルトDVDショップ        
★☆    お買い得!! 1枚500円〜 急げ!   
☆★    インターネット初!「きたぐに割引」  
★☆    北海道・東北の皆様は送料も激安!   
☆★      http://www.get-dvd.com      
★☆        スピード発送!        
☆★      http://www.get-dvd.com      
★☆        商品が豊富!         
☆★      http://www.get-dvd.com      
★☆                       
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
0077名前は開発中のものです。
03/08/06 21:54ID:2edcY3fT
http://www.freepe.com/ii.cgi?8121247
は〜い。みなさ〜ん↑ここのサイトドンドン荒らしてくださいね
007852
03/08/06 22:42ID:JTND/yTp
>>74
じゃあ一応画面サイズは240*240でいきます
針の数は簡単に増やせるんだが
主人公を表示するのがなぜかできねー
もうちょっと勉強してみます
007952
03/08/06 23:59ID:JTND/yTp
なんか思ったよりできた・・・
ttp://henachoko.homeip.net/uploader/updata/20030806235600.zip

あとは針がどこに出てくるか、速さはどうするか、
当たり判定、得点とかそのへん
008052
03/08/07 00:05ID:TH87wrXV
そうそう、一応左右に移動できるようにしますた
008155
03/08/07 07:37ID:7Gygqgf9
すごいっすよ!なんか完成しそうっすね(゜Д゜)ポカーソ
あとはダメージ判定とキャラの周りの透過(黄緑の部分)
ところで画像読み込むとき、ファイル形式何で読み込んでます?
008352
03/08/07 09:58ID:+34jAIA5
画像はbmpです
008455
03/08/07 11:56ID:7Gygqgf9
あれ、黄緑の部分消せないかな??gifは読み込めないの?
008752
03/08/07 13:55ID:GidQ3zBf
なんかgifはできるのかわからない
一応当たり判定まで微妙だができた
ttp://henachoko.homeip.net/uploader/updata/20030807135226.zip

GAMEOVERの後 下を押すと再開する・・・

HSPで作ったのは携帯じゃできないよ
008855
03/08/07 13:59ID:7Gygqgf9
え!?何で!?
008955
03/08/07 14:03ID:7Gygqgf9
あとやってみたけど、感覚が狭すぎてジエンが通る隙間ない。

じゃあさ、docomoで配信されてるアプリ作成ツールで作ろうよ!
009052
03/08/07 14:11ID:GidQ3zBf
配置はどんなのがいいのかわからん

アプリ作成ツールってどんな感じで作るのかわからん
書き方が載ってるサイト見つけてくれれば考えるかも
0092名前は開発中のものです。
03/08/07 15:45ID:ZyEF/qyB
if key=1:x-1
if key=2:y-1
if key=4:x+1
if key=8:y+1
if key=3:x-1:y-1
if key=12:x+1:y+1
if key=9:x-1:y+1
if key=6:y-1:x+1
主人公が自在に動くのがいい、と思う
009352
03/08/07 16:46ID:GidQ3zBf
>>92
一応上下左右に動けるようにしますた
ttp://henachoko.homeip.net/uploader/updata/20030807164425.zip

>>91
なんか難しい感じだ それで作ろうとすると時間がかなりかかること必死

配置はまだ適当
009452
03/08/07 18:04ID:GidQ3zBf
ほぼ完成
ttp://henachoko.homeip.net/uploader/updata/20030807174820.zip

 今のところの仕様
動きは上下左右
当たり判定は少し大きめなので当たってねーよってことがあるかと
スコアが200増えるたびにレベルが1増えスピードが上がる
GAMEOVERの時に下を押すとゲーム再開・・・
罠の配置は一定パターン あんまりよくない

こんなところか・・・
なんか改善してほしいことがあったらヨロ
とくに罠の配置だが左上から右下にX座標、Y座標で
x=10,20,30,40,・・・
y=20,10,40,30,・・・
と書くと(10,20) (20,10) (30,40) (40,30) ・・・
の位置になる訳だが なんかいい配置考えてくれ

疲れたので長期休暇をとります
009552
03/08/08 23:28ID:/oh+Sj4R
改造して他のも作ってみますた
ttp://henachoko.homeip.net/uploader/updata/20030808113255.zip

操作は上下左右に動けて
メガネを取ると点数が上がる
●に当たらないようによける
200点ごとにスピードが上がる

かなりバグがある感じ
0096山崎 渉
03/08/15 08:08ID:Q998ZG7G
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
00973さんへ
03/09/05 17:12ID:lGEWcEh7
3さんのレスが38以後ないですけど、
JDKは結局ダウンロードできたんでしょうか?

>>38
>右上にあるJ2SETM v1.3.1_08 のダウンロードというのをクリックすると
>全て英語になります。

まさかEnglish英語版ってリンク押してないよね?
ダウンロードするときのライセンスの同意を求めるページは英文だけどね。
現在の最新はVersion 1.4.1のようですね。
下のダウンロードページのJ2SE v 1.4.1_05 のダウンロードという項目の
Windows (各国語、米国語を含む)のSDKのダウンロードをクリックして
http://java.sun.com/j2se/1.4.1/ja/download.html
ライセンスに関する英文ページが表示されるので、そこでACCEPTボタンを
クリックしてDownload j2sdk-1_4_1_05-windows-i586.exeをクリックすれば
ダウンロードがはじまると思います。
インストールに関しては下のリンク先にあるインストールガイドを参考にしてみてね。
http://java.sun.com/j2se/1.4.1/ja/install.html
0098名前は開発中のものです。
04/02/10 22:39ID:+W/E8UNm
       -----再利用-----
今からここは 俺がRPG作るのを見守るスレ になりますた。

開発環境:ボーランドc++5.5コンパイラー(無料のヤツ)
c++はよく分からんが、cはマッタク分からん程度のスキルです。
009998
04/02/10 22:44ID:+W/E8UNm
絵のつけ方がよく分からんのでコンソール
目標が初代ドラクエ。
#include <iostream>
#include <string>
#include <ctime>
using namespace std;

void myhelp(){
cout<<"wで上移動、dで右移動、aで左移動、xで下移動"<<endl;
cout<<"sで話す、qで座標表示、fで終了"<<endl;
}

void myenc(){ //魔物とエンカウントさせる関数
int b;
srand((unsigned)time(NULL));
b=rand()%10; //10分の1で魔物と出会う
if(b==4){ //4なのは特に意味ない
cout<<"魔物がいる"<<endl;
}
}

void mygo(string myit){
cout<<myit<<"へ進んだ。"<<endl;
myenc();
}

int main(){
string n; //nに押したキーを代入
string myit; //四方向表示
int x,y; //xが横軸、yが縦軸の座標
x=0;y=0; //初期値(0,0)
010098
04/02/10 23:00ID:+W/E8UNm
cout<<"ドラクエっぽいRPG"<<endl;
myhelp();
while(1){
cin>>n;
if(n=="w"){
x++; //キーを押したら、移動先の座標取得
if(x==2){ //立入禁止区域の座標を入力、複数可
//移動先が立入禁止なら行き止まり
x--; //進めないはずなので、1引いて座標あわせとく
cout<<"行き止まりだ。"<<endl;
}
else{
myit="上";
mygo(myit);
}
}
else if(n=="d"){
y++;
if(y==2){
y--;
cout<<"行き止まりだ。"<<endl;
}
else{
myit="右";
mygo(myit);
}
}
010198
04/02/10 23:04ID:+W/E8UNm
else if(n=="a"){
y--;
if(y==-2){
y++;
cout<<"行き止まりだ。"<<endl;
}
else{
myit="左";
mygo(myit);
}
}
else if(n=="x"){
x--;
if(x==-2){
x++;
cout<<"行き止まりだ。"<<endl;
}
else{
myit="下";
mygo(myit);
}
}
010298
04/02/10 23:08ID:+W/E8UNm
else if(n=="s"){
cout<<"その方向には誰もいない。"<<endl;
}
else if(n=="f"){
cout<<"ゲームを終わります。"<<endl;
break;
}
else{
myhelp();
}
}
};
課題はNPC作ることとAPI。本屋にAPIの本置いてないんだが・・・
うpろだ誰か教えてクレクレ
0103名前は開発中のものです。
04/02/11 00:10ID:6KcKUVZ5
俺もドラクエ風RPG作りたいので参考にさせてください
自分も同じコンパイラでやりたいと思っています

うpろだ
ttp://gamdev.org/up/upload.php
010498
04/02/11 19:04ID:xqz1E56h
コピペミスとか修正バージョン
ttp://gamdev.org/up/img/232.lzh

APIの解説サイト行っても、CかVC++基準で書かれてていまいち理解しにくい。
とりあえず一週間をめどにコンソール卒業しようと思う

>>103
マターリがんばりませう
010698
04/02/11 21:20ID:xqz1E56h
>>105
釣りじゃないです。
なぜ釣りだと思ったんですか?
010898
04/02/11 23:40ID:xqz1E56h
>>107
ありがとうございます。
ざっと見てみたんですが、APIの命令語と思われるものだらけで手に負えません。
今まで作った物がマッタク使えなくなりそうな悪寒

まだビットマップを表示させるのにてこずってる段階なんで、
そのくらいのクオリティになるのはかなり先になりそうです。
0109名前は開発中のものです。
04/02/12 13:44ID:aukATfXt
>>108
>ざっと見てみたんですが、APIの命令語と思われるものだらけで手に負えません。

まあ、「ウインドウ上にグラフィックを表示する」タイプのゲームなら、
当然「APIの命令語と思われるものだらけ」になるわなw でも、APIは
使い方自体はそれほど難しくない(どこにウインドウを出して、どれだけ
の大きさのビットマップを作りどこにビットマップを描画するか、とか
の指定をするだけ)から、少しずつ慣れていけば大丈夫。

まず、「ウインドウをだす」だけのプログラムを作って、そのウインドウ
に適当な色で点を打つ、というあたりからやってみる(これでウインドウ
の出し方とそのウインドウに何かを描く方法がわかる)とよいかも。これ
ができれば、あとはビットマップを作って絵を出すことも簡単にできるよ
うになる。
011098
04/02/12 19:32ID:xscJNd+f
毎回うpろだに頼るのも気が引けるので、サイトスペース借りてみた。
http://www.geocities.co.jp/SiliconValley-Bay/2736/bb1.txt
やっとwindowsアプリの入り口に来れたが、ゲームとは呼べない物になってしまった。

ウィンドウプロシージャにコンソール版のキー取得イベントを詰め込んでみたんだが、
マップスクロールのことも考えると、後で書き直すことになりそう

>>109
命令語(関数?)と、それに付属する引数の種類と数が多いんで、
記憶力のない漏れにはAPIは天敵です。

次はウィンドウ上にドットを表示してみます。
0111名前は開発中のものです。
04/02/13 12:27ID:c7MTKmdy
>>110
WinAPIはよく使う命令だけ覚えればおk。
大体どんな機能があるかを覚えといて、使いたいときは本なんかで調べる。
それを繰り返せばいつのまにか覚えてる。
011298
04/02/13 19:11ID:YwOWpj4L
>>111
だいたいの流れが理解できてきたんで、その方向で逝ってみます。

スクリプトなのにコンパイル必要なのと、謎の言語であるという点で
リソース・スクリプトが理解できないんですが、これは放置でもいいのでしょうか?
これが分からなくてビットマップが表示できないです・・・
0113名前は開発中のものです。
04/02/13 21:41ID:NsiLkd+i
>>112

リソースから読むんじゃなくて、最初はまず「自分で作ったビットマップ」
を表示する処理を書いてみた方がよいよ。
011498
04/02/13 23:35ID:YwOWpj4L
>>113
自分で作ったビットマップというのは、こういうのでしょうか?↓
http://www.geocities.co.jp/SiliconValley-Bay/2736/c.txt
それとも、リソーススクリプトなしでビットマップ表示ができるということでしょうか?

とりあえず上の方法で簡単なゲームから作ってみようかと思う今日この頃。
011598
04/02/14 00:21ID:0N5qgnUm
×ビットマップ表示ができるということでしょうか?
○ペイントで描いた絵を表示できるということでしょうか?
011798
04/02/16 22:01ID:EaOpAIgY
やっと絵が表示できた。
でもマップチップの並べ方が分からん。
ひたすらBitBltするしかないのだろうか・・
011898
04/02/16 22:19ID:EaOpAIgY
なんか日記みたいなのでRPG作ってる人どんどん参加してください(´・ω・`)
(ツクール除く)
ってことであげ
0120名無しさんは14才
04/02/17 01:13ID:3jAAI9V7
>98,119
わたしはJavaスレでまったり製作ちゅう。
がんばろうね♪
0121名前は開発中のものです。
04/02/17 16:16ID:HV2czGyE
>>98
ゲーム作りの解説してるサイトとか見てる?
検索すればいろいろあるから見た方が良いよ。

あといきなりRPGは厳しいので、簡単なのから作った方が良いよ。

マップチップはループさせて表示すれば。
012298
04/02/17 21:52ID:hWbX7oGp
人がキターー

>>119,>>120
言語違うけどがんばりましょう
どうでもいいけど、この板ってけっこう過疎化してますね・・

>>121
ブックはしてあるんですが、まだあまり見てないです。
directX使っているところが多いので、先にAPI解説サイトかなあ、と。

簡単なのというと、パックマンとかですかね?

forを二重にしたら敷き詰まったんですが、これだと好きな場所に
好きなマップチップを置けないような気がするんです
0123名無しさんは14才
04/02/18 15:42ID:UkGMdZe5
>98サン
そうですねー。けっこう人少ないですよね。
でも、個人的にはまったりしてていいかな、と思います。

ちなみにわたしも今マップ関係を製作ちゅう。微妙に音楽に浮気ちゅうだけど。
Javaスレも再利用中(占拠中?)。
みんなまったりがんばりましょー!
0124名前は開発中のものです。
04/02/18 16:00ID:wGSU8Vo8
>>98
Cで作るとなると覚えることが沢山あって大変だよ…
HSPとかやってみたら?
Cと比べてすげー簡単だし、画像処理関係のAPI揃ってるし。
考え方ってのは一緒だから無駄にはならんよ。
012598
04/02/19 00:59ID:8yMY9wg9
>>123
あんたスゲェよ・・・
俺もマップ製作中だけど、マップを並べるプログラムで手こずってる orz

>>124
他の言語にしたほうが楽なんだろうな、ってのは薄々感づいてるんですが、
ゲームを作ること自体が目的ではないので、もうしばらくはこのまま行ってみようかと。
0126名前は開発中のものです。
04/02/19 06:43ID:ZuScVm6q
> forを二重にしたら敷き詰まったんですが、これだと好きな場所に
> 好きなマップチップを置けないような気がするんです

そりゃあforの中で同じマップチップ置く処理しかしなければそうなるさ
例えば2次元配列使ってマップデータを格納しておいて、forの中ではその情報を元にマップチップを描画するとかしないと。
0127124
04/02/19 11:10ID:4j3KDMl/
HSPでやってみれば?とかいった人間だが
俺も参加させてもらう。
一応今はHSPで作ってる。
まだゲーム作ったことがないので、あんま役には立てんが
お互い完成までがんばってみよう。

ちっちゃいRPG作成中……

http://henachoko.homeip.net/uploader/updata/20040219105932.zip
ここにHSPだけどマップ表示のサンプルアップした。

map_sam.asがソース。
map_sam.exeが実行ファイル。
終了はウィンドウのXボタンで。
map.bmpが使ったマップチップ。

動かんかったら言って。
012898
04/02/20 23:43ID:WBg2coIl
>>126
ちょっとやってみたんですが、まだ理解不足でコンパイル時にエラー10個くらいでますた。
今はとりあえずBitBltしまくっておいて、マップスクロール時に問題が出てきたら
それでやってみます。

>>127
がんがりませう。
マップは出たんですが、動かないです。ソース見た感じだと、もとから動かない仕様でしょうか?
0131124
04/02/21 10:59ID:SOonC27/
>>128
ああ、マップ表示のサンプルですよ。
動かない、というかキャラクター表示はまだ。

一応マップ表示の原理をHSPで書いてみたんだけど。
>>126の言ってることをやってます。
013298
04/02/21 23:50ID:n2vfldWV
>>129
ランタイムいらないです。コンパイラが必要です。
まだゲームといえない段階なので、もうちょっとできたらexeでうpします。

>>130
好きな場所に置くこと自体はできたんですが、今のまま作っていくと、
マップが大きくなったときに死ねそうです。↓
http://www.geocities.co.jp/SiliconValley-Bay/2736/vvv.txt
>>126氏の方法で挫折したのが↓ エラーイパーイ
http://www.geocities.co.jp/SiliconValley-Bay/2736/vvv1.txt

>>131
bmpファイル一つからマップチップ4つ取り出す方法もあるんですね。
bmpファイルを4つに分けるより効率がいいんでしょうか?
0133名前は開発中のものです。
04/02/22 00:16ID:qoGQgaC2
>>132
そりゃaryはintなんだから、HBITMAPつっこもうとすればエラー出るだろう。
この場合で言えば、ary[x][y]にはhBitmapのインデックスだけ入れるべきかと。

まあこのマップ構成ならば、
int ary[3][3] = {0, 0, 0,
0, 1, 2,
0, 0, 0};

としておいて、描画する時は

SelectObject(hBuffer , hBitmap[ary[map_x][map_y]]);

とするのが正しいかと。
マップデータがでかくなってきたら、データをファイルに移してそこから読み込ませるようにすればさらに一歩前進。

あとせっかく配列を使ってるんだから、読み込みとか解放でも一個ずつやらんでループ使った方がいいんでは?

for(int i=0;i<3;i++) DeleteObject(hBitmap[i]);

ちう感じで。
0134124
04/02/22 00:20ID:qJjHo9kX
>>132
基本的には、一つの場所(街なら街、洞窟なら洞窟)のチップは全て
一つにまとめるのが普通だと思いますよ。

読み込むときに、「ファイルを探してー>読み込む」という手順を踏むわけですから、
一つにまとめておけば、一回探せば後は読み込むだけです。
013598
04/02/23 00:24ID:yOz6UeEe
>>133
ありがとうございます!できますた!
>マップデータがでかくなってきたら、データをファイルに移して
これはdllというのでしょうか?まだ全然やってない分野です。

>>134
さっそく真似しようとしたんですが、絵をまとめるとソースが長くなる、
ソースまとめると絵がまとめられない、という状況になってます・・

いろいろ問題が出てきてしまったけど、前半最大の山場と思われる
マップスクロール実装にとりかかってみます。
0136名前は開発中のものです。
04/02/23 01:41ID:tZlxc2xv
>>135
>>マップデータがでかくなってきたら、データをファイルに移して
>これはdllというのでしょうか?まだ全然やってない分野です。
普通にマップ構造を記述したファイルを読み込むだけだと思うんだけど、
そうしないとマップをちょっといじるだけで再コンパイルせにゃならんし。
013798
04/02/24 19:40ID:+E54f9HV
>>136
リソースからは読み込めたんですが、デメリットしかないので、これではないですよね・・
xxx.txtから読み込めるとしたら、メリットがかなりありそうなんで、もうちょっと調べてみます。

なめらかスクロールは処理が多そうなので、まずは
キーを押したら1マス(32ドット)瞬間移動プログラム↓
http://www.geocities.co.jp/SiliconValley-Bay/2736/vvv4.txt
goto使ってしまった orz
0138名前は開発中のものです。
04/02/24 20:01ID:Y7quTbTQ
>xxx.txtから読み込めるとしたら、メリットがかなりありそうなんで、もうちょっと調べてみます。
fopenやfgetsを使ってファイルを操作したことないのか…?
0139名前は開発中のものです。
04/02/24 20:03ID:HARgZ9D7
InvalidateRectしてるなら明示的にWM_PAINTにジャンプしなくても次のメッセージループでWM_PAINT呼び出してくれると思うが・・・

もしやるとしても、gotoじゃなくcase WM_KEYDOWNの下にcase WM_PAINTをおいといて、breakを書かない、という風にした方がいいんじゃないかな。
014098
04/02/24 21:07ID:+E54f9HV
>>138
ファイル操作はゲームに関係なさそうだったので、ほとんど勉強してないです。
fopenというのを調べて出直してきます。

>>139
今、gotoなしでやってみたんですが、不正終了?みたいになりました。
>gotoじゃなくcase WM_KEYDOWNの下にcase WM_PAINTをおいといて
こっちでは大丈夫でした。
caseって全部並列なものかと思ってたんですが、順番関係あるんですね
0141名前は開発中のものです。
04/02/24 21:28ID:HARgZ9D7
>>140
goto抜いたらbreakつけなきゃダメよ(;´Д`)
breakつけないと、次のcaseラベルが実行されるから、この場合だとWM_CREATEが実行されてまう。
不正終了は多分そのせいかと
0142名前は開発中のものです。
04/02/24 21:30ID:HARgZ9D7
>ファイル操作はゲームに関係なさそう

データファイルがないゲームなんてそうそうないと思うが・・・
最低でもセーブデータとか作るためにはファイル操作は不可欠だろう
0144名前は開発中のものです。
04/02/24 22:31ID:kFyAt63U
>>137
>リソースからは読み込めたんですが、デメリットしかないので、これではないですよね・・

いや最終的には、画像などのデータはリソースにまとめたほうが良いよ。
ただしバイナリのリソースね。画像なら、RGBデータの形で持つ、とか。

画像については、RGB配列(DIB)の扱いを練習しておいたほうが良いかも。
キャラクタの透過描画や画面の特殊効果などさまざまな場面で必要になって
くる。
014598
04/02/25 19:38ID:g+59HVuE
>>141
あ、なんとなく理解しました。break;の代わりにreturn 0;でもいいってことですね。

>>142
作り始めた当初は、セーブが必要になるほど長いゲームは作れない気がしてたので。
いざとなったら ふっかつのじゅもん にすればファイル操作いらないな、とか思ってました。

>>143
まだシナリオとか考えてないんで、データベースの半分は手抜きです。になりそう・・

>>144
ぱっと見で難しそうだったんで、まだほとんどやってないですが、ちょっとずつやってみます。
014798
04/02/29 18:24ID:Ycy/2GWo
DIBが理解できなくて停滞中
014998
04/02/29 19:41ID:Ycy/2GWo
C++でRPG作るのが目標なので、遠慮しときます
015198
04/02/29 21:21ID:Ycy/2GWo
一つのbmpファイルをウィンドウに複数表示はできるのですが、
複数のbmpファイルを表示させようとするとメモリ不足とか言われます
0154名無しさんは14才
04/03/02 17:40ID:W0CJyzOg
マカーのくせに口出ししてごめんね。
WinのAPIはほとんど触ったことないから半分カンなんだけど。

DrawMapの話だけど、せっかく定義してるのにMaparyをつかってないんじゃない?
icは4になってると思うから、添え字が範囲外なんじゃないかしら。
StretchDIBits(hdc , 32*map_x , 32*map_y , iWidth[Mapary[y][x]],(以下同)
みたいにしたかったんじゃないの?

というか、各BMPのサイズが同じなんだから、わざわざ画像からサイズ取得しないでも
StretchDIBits(hdc , 32*map_x , 32*map_y , 32, 32, 0, 0, 32, 32, lpPixel[Mapary[y][x]](以下略)
と書いちゃえばいいような気がする。

そんなカンジでがんばれ〜。
わたしは当分応援モード。
0155124
04/03/02 18:49ID:0D6IPbfs
>>153
いきなりRPGは無謀スギかも。
でもがんばってるみたいだから応援するよ。
ちょっと今時間無いんで、時間出来たらマップ表示を
HSPからCに書き直したものをアップするよ。

まあ、そのときには解決してるかもしれんが…

>>154
>というか、各BMPのサイズが同じなんだから、わざわざ画像からサイズ取得しないでも
>StretchDIBits(hdc , 32*map_x , 32*map_y , 32, 32, 0, 0, 32, 32, lpPixel[Mapary[y][x]](以下略)
>と書いちゃえばいいような気がする。
あんまり定数はプログラム中には入れない方がいいと…

小規模ならマクロでも良いかもしれんが、constとかやるのがいいのでは?
ここはBMPからサイズ取得が一番良いかもしれんね。
015698
04/03/02 21:58ID:YGTCiQU4
>>154
混乱してて、Mapary使うの忘れてました。
問題点を分かりやすくするために、StretchDIBitsの部分はとりあえず定数にしてみます。

>>155
javascriptで簡単なゲームは作ったことがあるんですが、C/C++でプログラム組むのは
初めてなんで、かなり無謀だとは思ってます。
マップ表示はたぶんできるんですが、その前に複数のbmpファイルを読み込むことが
できないんです。

デバッガ使ってみたところ、問題点らしきところは発見できたものの、なぜだめなののかが
分からない・・・
0157名前は開発中のものです。
04/03/02 22:18ID:euQtmlJ9
>>156
BMPの読み込み(BMPからのDIB作成)は、マップチップなら「ビットマップ
の大きさ」を決めておくと楽。そうすれば自動的にBMPに格納されている
DIBピクセル列の大きさも特定できるから、ただ「ピクセル列までのオフ
セットから決まったバイト数読み込む」だけの処理になるからね。

1枚のBMPからDIBを作成できるようになったら、BMPも「マップチップを縦
に並べたビットマップ」にしておけば、一枚のビットマップから連続して
読み込める(24ビットで横幅が4の倍数なら、横幅×高さ×3バイトずつ
区切って読んでいけばよい)。ただし、この場合はDIBの座標系に注意。
015898
04/03/02 23:19ID:YGTCiQU4
>>157
一週間悩んでたのに、一瞬でできますた。
http://www.geocities.co.jp/SiliconValley-Bay/2736/zz31.txt
複数ファイルが読み込めないと何かが困るような気がしてたんですが、
ドラクエのようなものなら、困ることないですね。
015998
04/03/04 20:15ID:UUYCFgVb
DIB版矢印キー押すと32ドット移動ウェイトつき
http://www.geocities.co.jp/SiliconValley-Bay/2736/zz32.txt
Sleep中は全ての処理が止まるのかと思っていたら、その間入力した
キーを記憶しているらしく、Sleep中のキー入力が反映されてしまう。
016198
04/03/06 17:58ID:9gF+FHHa
timeGetTime使ってみました。
http://www.geocities.co.jp/SiliconValley-Bay/2736/zz35.txt
まだキーが記憶されてしまいます。

MSDN調べてみたら、
The GetAsyncKeyState function determines whether a key is up or down at the time the function is called,
and whether the key was pressed after a previous call to GetAsyncKeyState.
なので、GetAsyncKeyStateを使うこと自体をやめるか、いったん破棄しないといけなかったみたいです
016298
04/03/06 20:21ID:9gF+FHHa
瞬間移動完成。
http://www.geocities.co.jp/SiliconValley-Bay/2736/zz36.txt
微妙にゲームらしきものになってきた。
GetAsyncKeyStateのほうがゲームに適しているとどこかで見たけれど、
押したキーを勝手に記録してしまうため、使いこなせなかった。

次はキーを押したら16ドット移動を2回繰り返すものを作ろうと思う。
すでにDIB使ってるので、たぶん簡単にできるような気がする
0163名前は開発中のものです。
04/03/07 01:10ID:gNoMVuak
自分も2月の最初くらいからAPI始めた者です。
使用言語はCで、今のところテトリスとかボンバーマンもどきを作りました。

現在ttp://www.sm.rim.or.jp/~shishido/を見ながら、
DIBを勉強中ですが、かなり苦戦してます。
>>98さんは何で勉強しましたか?良かったら教えて下さい。
0164名前は開発中のものです。
04/03/07 12:27ID:/QKwfpo/
>>162
そろそろファイル入出力もかじり始めた方がいいかもね。
DIBが使えるならファイル入出力はそんなに難しくはない・・・はず。
016698
04/03/07 14:44ID:/nCa36PZ
>>163
ttp://black.sakura.ne.jp/~third/system/winapi/win.html
ここと、MSDN見てます。
同じ時期に始めてもうボンバーマン作れるってすごい・・・。

>>164
DIBの前に少しかじったんですが、挫折しました。
xxx.iniというファイルを使えばいろいろできそうだけど、絶対パスで指定しなければいけない
ので、使えねー!ってところで思考停止してます。
難しくてトラウマになってるんですが、ここを乗り越えないとしょぼいゲームしか作れなそうなので
ちょっとずつやってみます。

>>165
昔の名残です。if(PeekMessage(&msg , NULL , 0 , 0 , PM_NOREMOVE))があってもなくても
同じだと思うので、使うときのために消していないだけです。
0167名前は開発中のものです。
04/03/07 15:08ID:gNoMVuak
>>166
レスありがとうございます。
そこも前から見てたんですが、分からないのです。
でも、同じのを見て出来る方がいるという事は自分の努力が足りないって事ですね。
もう少し修行してきます。

ボンバーマンは全部マスク画像を使ってAND・ORする方法でやったのでそんなに難しくは無かったです。
では。RPG製作頑張って下さい。
016898
04/03/07 17:38ID:/nCa36PZ
>>167
俺もまだよく分かってないんですが、ちょっとずついじってれば使えるようになると思います。
汚くてよければ>>153>>158にソースがあるので、よかったらドゾー


右スクロール時のみ16ドット移動を2回するプログラム
http://www.geocities.co.jp/SiliconValley-Bay/2736/zz38.txt
効率が悪すぎるような気がする。こういうのをスパゲティソースというのかもしれない。

(´-`)。oO(AND ORってなんだろう)
0171名前は開発中のものです。
04/03/09 22:45ID:sCetmjvX
>>169

透過処理は単に「抜き色を決めてその色以外を転送する」処理をすれば
よいだけ。キャラクタのDIBを1ピクセルずつ背景に転送していっても、
速度的には問題ない。

この場合は32ビットDIBだと楽だね(DWORD単位でアクセスできるから)。
017298
04/03/11 19:38ID:e07lqvXR
>>170
AND ORでググルとグーグルにヌッコロされるのでだめです
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&q=AND+OR+C&lr=lang_ja

>>171
肝心な部分が分かってないからなのか、実際にやろうとするとなぜかできないです。
http://www.geocities.co.jp/SiliconValley-Bay/2736/zz45.txt
1ピクセルずつ表示もやってみたんですが、俺のPCのスペックのせいか、若干遅く感じました。


ところで、俺はPCゲームはあまりやったことがないのでよく分からないんですが、
キャラが32*32ドットってどうなんでしょうか。どうも小さく感じます。
017398
04/03/11 21:52ID:e07lqvXR
微妙にずれるものの、透過しつつキャラクタのDIBを1ピクセルずつ背景に転送は成功。↓
http://www.geocities.co.jp/SiliconValley-Bay/2736/zz46.txt

なめらかにスクロールさせるためにマップをtimeGetTimeで30msごとに描画しているんですが、
この透過方法だとキャラクタ描画処理が遅いため、歩行アニメーションをつけるときに
いろいろと苦労しそう。

メモリに読み込むときに透過処理をしたほうがよさそうだけど、なぜか透過しない。
0175名前は開発中のものです。
04/03/12 21:26ID:qU+SxdKI
>画面がちらつく。
CreateDIBSectionでオフスクリーンバッファを作るんだ!
ダブルバッファリングともいう。

>キー入力を
簡潔に説明するのは難しいんだが、今のキー押下処理→描画処理のやり方は
ゲームのつくりk他としては完全に間違ってる。
ゲームループとか検索してみるとわかるかもしれん。

他のスレのレスからヒントをば。
http://pc2.2ch.net/test/read.cgi/gamedev/1020417733/124
>タイマ(WM_TIMER)は不安定なので普通ゲームには使わないぞ。
>↓ここの1.4.1みたいに処理すべし。
>http://www.microsoft.com/japan/msdn/academic/Articles/DirectX/01/
017698
04/03/13 19:41ID:xCK866zy
>>175
キー入力はできますた。かなり操作性向上

DIBSectionが難しくててこずってます。
本の通りにDIBSectionを使ってるはずなのに、エラーが出るのはなぜだろう。
0177名前は開発中のものです。
04/03/14 08:15ID:wW4VHkXB
>>176

コンパイル時のエラーなら、型があっていない(またはSelectObjectなどが返す値を適切にキャストしていない)とか。
017998
04/03/14 22:20ID:13t3R65N
エラー E2034 zz53.cpp 135: 'void *' 型は 'HBITMAP__ *' 型に変換できない(関数 __s
tdcall WndProc(HWND__ *,unsigned int,unsigned int,long) )

エラー出るソース
http://www.geocities.co.jp/SiliconValley-Bay/2736/zz53.txt

(HBITMAP)つけてみたらコンパイルは通ったんですが、DIBSectionには何もさせていない
のに、強制終了します。

本はCで書かれているんですが、自分の書いてるのがたぶんC++なので、
そのへんの問題でしょうか。
0180名前は開発中のものです。
04/03/14 22:32ID:RZwlVtdf
>>179
>(HBITMAP)つけてみたらコンパイルは通ったんですが、DIBSectionには何もさせていない
>のに、強制終了します。

とりあえず、怪しいところをコメントアウトするなり変数の値を表示さ
せるなり(デバッガがあるならブレークポイントを入れる)してどこで
落ちるのか、特定してみた方が良いね。

>本はCで書かれているんですが、自分の書いてるのがたぶんC++なので、
>そのへんの問題でしょうか。

そうだね。
CとC++では、デフォルトの型チェックが違う。
C++でSelectObjectの返すハンドルをGDIのハンドルを保持する変数に
入れたいなら、個別にGDIのハンドルの型に合わせたキャストが必要。

まあ、拡張子をcにしてCのソースとしてコンパイルしても良いかもし
れんがw

ところで「本」って何の本?
018198
04/03/14 23:00ID:13t3R65N
ゲームプログラミング練習帳 という本見てます。

デバッガですが、今問題にしている部分より前の段階ですでに止まってくれるので
使い物にならない状態です。止まる部分も、CとC++の違いのせいの気がします。

Cは全然知らないんですが、見ているサイトも本もCを使ってAPIの解説をしているので、
Cで書き直すのが早いような気がしてきました・・・
0182名前は開発中のものです。
04/03/14 23:21ID:gdC9c3eD
>>179
原因は133行目の&lpPixel。
hBMP = CreateDIBSection(hdc , &biInfo , DIB_RGB_COLORS , (LPVOID *)(&lpPixel) , NULL , 0);

hBMP = CreateDIBSection(hdc , &biInfo , DIB_RGB_COLORS , (LPVOID *)(lpPixel) , NULL , 0);

おかしな指定をしたせいで、lpPixelのポインタの値が変な値に書き換わって壊れてしまっている。
HeapAllocしたときのlpPixelの値と133行目でのlpPixelの値を調べてみれば、壊れているのが分かるはず。
なぜ、上の指定の仕方ではいけないのか、とか、どうして値が壊れるのかとかは、自分で考えてみてね。
0183名前は開発中のものです。
04/03/14 23:32ID:gdC9c3eD
あぁ、97行目の
>iOffset = *(LPDWORD)(lpBMP + 10);//iOffset ピクセルが格納されてるアドレス、ここでなぜかデバッガ止まる
でとまるのは、BMPファイルが見つかってないからでしょ。多分。
ちゃんとCreateFileのエラー処理を汁!

あと、
>(HBITMAP)つけてみたらコンパイルは通ったんですが、
これは、Windows的には正しい。Cだと書かなくてもコンパイルと折るけど、
C++は型違いを厳密に見るから、型変換しないといけないわけだ。
0184182
04/03/15 00:06ID:mfA2vkrj
ごめn>>182は違った。
CreateDIBSection()なんか久しぶりに使ったから忘れてたよ。

>>179の使い方なら、
hBMP = CreateDIBSection(hdc , &biInfo , DIB_RGB_COLORS , NULL , NULL , 0);
でいいんじゃない?一応うごいたよ。
0185名前は開発中のものです。
04/03/15 00:14ID:BH49Bw7k
ちうか、CreateDIBSectionで作ったビットマップ使って無いじゃん…
あと、hdcをグローバル変数にするのはよくないと思う。
018698
04/03/15 00:37ID:YR7Ealek
>>182
(LPVOID *)(lpPixel)でもNULLでも動きました。

CreateDIBSectionの第4引数にはポインタのポインタを指定しなければいけないのに、(LPVOID *)(&lpPixel)
だとアドレスのポインタのポインタだから間違いというところまでは分かったんですが、
Cだと(LPVOID *)(&lpPixel)が正しくて、C++だと(LPVOID *)(lpPixel)が正しいということは
ポインタの書き方がCとC++で違うということなんでしょうか。。


>>185
使おうとしてコンパイルエラーが出たので、まずは何もさせずにコンパイルできることを目指してました。
>hdcをグローバル変数にするのはよくない
ローカル変数の呼び出し方がよく分からないので、とりあえずグローバル変数にしてあります。
分かり次第直します。
0187名前は開発中のものです。
04/03/15 11:07ID:BH49Bw7k
>>186
>(LPVOID *)(lpPixel)
は間違い。
引数の指定の仕方としては、もとのソースの(LPVOID *)(&lpPixel)が正しい。

ただし、(LPVOID *)(&lpPixel)のままだと、CreateDIBSectioiでlpPixelが上書きされてしまうから
今度は透過処理の部分で今度は止まるよ。
CreateDIBSectionの説明をよく読んで、正しく使うべし。

>ローカル変数の呼び出し方がよく分からないので、とりあえずグローバル変数にしてあります。
まずは、そっちを勉強した方が良いよ。
0188名前は開発中のものです。
04/03/16 21:28ID:av2PqUu3
ローカル変数は関数の冒頭で処理を記述する前に宣言する。
C言語の場合はね。
C++はドコでも良いことになっている。
018998
04/03/16 23:08ID:ALMDs/3/
難しくて混乱してきたのでちょっと整理
1.DIBとしてもDDBとしても操作可能なビットマップをCreateDIBSectionで作る
2.デバイスコンテキストを2つ用意する
3.デバイスコンテキストAに表示するマップより1マス分大きいマップを描画する。
4.AからデバイスコンテキストBに表示する部分だけ描画
5.Bから画面に描画

たぶんこうすればいいんだと思うんですが、4くらいで行き詰ってます。


hdcですが、仮引数とか使ってみたんですがだめでした。
0191名前は開発中のものです。
04/03/16 23:52ID:PRaC3s4r
だめですた、とかいうなら、詳細な症状を言うか、ソースを提示すべし。
初心者はエキセントリックなソースを書くからな。

>3.デバイスコンテキストAに表示するマップより1マス分大きいマップを描画する。
そんなことはない。CreateDIBSectioniで作るのはウィンドウサイズと同じ大きさで良いよ。
というか誰だよこんな嘘おしえたの。わざわざ難しく教えて面白いのか、といいたい。

これまでウィンドウのhdcに対して行ってきた描画とまったく同じ事をCreateDIBSectioinで
つくったDIB(を設定したhdc)に行えばいい。
んで、ウィンドウのhdcに対しては、かわりに↓をおおなう。

>4.AからデバイスコンテキストBに表示する部分だけ描画
この部分は、CreateDIBSectionで作ったDIBの内容をそのままウィンドウに転送するだけでいい。
ウィンドウのhdcは、BeginPaintで得られたhdcか、GetDC(hWnd)で得られたhdcだ。

なぜわざわざCreateDIBSectionで作ったDIBに描画してからウィンドウに転送するのか
といえば、それはチラツキをなくすためだ。なぜちらつきが起こるかは本に書いてあった?
019298
04/03/17 00:57ID:AN01uPyl
>>190
今の状態でマルチスレッドにまで手を出すのはちょっときついです・・・

>>191
http://www.geocities.co.jp/SiliconValley-Bay/2736/zz55.txt
StretchDIBitsのデバイスコンテキストをhdcにすれば描画されるんですが、1段階ふむとなぜか
だめです。

>なぜちらつきが起こるか
本には、DIBSectionを使うことで効率がよくなるようなことは書いてありました。
0193名前は開発中のものです。
04/03/17 02:56ID:QickIzjR
>>192
なぜかじゃねーよ。
まじで、ローカル変数のこと勉強しろ!今すぐ。
変数スコープって分かるか?

まぁ、一応答えを。
↓をグローバル変数に。以上。
86:HDC hdcBMP;

ローカル変数は一度関数から出ると無効になるんだよ!
WM_CREATEでhdcBMPに設定しても、WM_PAINTの時はすでに無効になってるんだよ!

ローカル変数のことがちゃんと理解できるまでstatic変数も禁止。
グローバル変数も最小限に汁!それが出来るまで先に進むべからず。
0194190
04/03/17 07:13ID:EmljVs5P
>>192

いや、マルチスレッドにしろという話じゃなく、描画の流れを参考にしたら、ということなんだがw
019698
04/03/17 23:43ID:AN01uPyl
変数と、ついでにクラスも勉強しておきました。
>変数スコープって分かるか?
:: 知らなかったけど使ってみます。

先に進むの禁止されたのでソースを見やすくした。
http://www.geocities.co.jp/SiliconValley-Bay/2736/zz70.txt
スクロール中に画面が消えるのは仕様なので気にしないでください
0199名前は開発中のものです。
04/03/18 02:13ID:XsvAPJOC
>>196
グローバル変数は「使う目的を明確にあらわした」変数名をつけるようにね。
たとえば、「lpbiInfoってどのBITMAPの情報なの?」ということが、変数名を見ただけで分かるように。

んで、前からずっと気になってたけど
>while((timeGetTime()-timeSc)<SecondPerSc);
このビジーループは本に載ってたやり方なの?
もしそうならその本は糞と認定せざるを得ないので書名を教えて。

「ビジーループ」って単語が分からない?なら、googleとかに聞いてみてね。
0200名前は開発中のものです。
04/03/18 02:53ID:Si6/VCoc
今始めてマトモにソース見たんだが・・・・
猫でもわかるプログラミングから始めることをお勧めする。
もっとコンソールいじってからにしておきなさい。
020198
04/03/18 23:35ID:r5sO1u2T
>>197
よく分からないのでたぶん使わないです。


>>198
おめでd


>>199
自分で作ったSleepもどきです。
ビジーループでググったら、負荷が高くなるからやめろと書いてあったので
他のやり方を考えてみます。


>>200
コンソールだけだと何を作っていいのか分からないのと、モチベーションが続かないので
winAPIと並行してやっていきます。
0202名前は開発中のものです。
04/03/19 00:17ID:whgiIXKB
>>201
>自分で作ったSleepもどきです。
>ビジーループでググったら、負荷が高くなるからやめろと書いてあったので
>他のやり方を考えてみます。
そか。えらい。

あとは、ちゃんとしたゲームループを作って、
・入力→ゲームの状態(主人公のマップ上での位置とか)の更新
・描画処理
をきっちり分ければ、ゲームの基礎は出来たも同然。
なぜ分けないといけないかというと、今のままだと、画面上に主人公とは独立して
動くNPCが出てきたときに処理できないからね。
0203200
04/03/19 08:07ID:5YapUc1Z
>>201

気持ちは分かるんだけど、せめて一回くらい目を通しておくべきだと思う。
それだけで大分違うはず。
020498
04/03/20 18:53ID:th+dSxtZ
>>202
NPCの数が一定ならなんとか作れそうなんですが、
不定になるとどうやればいいのかさっぱりです。

>>200
理解したかどうかは置いといて、一通り読んでおきますた。


今のまま作っていくとグローバル変数だらけになりそうなので
http://www.geocities.co.jp/SiliconValley-Bay/2736/a001.txt
こんなの作ってみた。


変数名考えるのがマンドクセなんですが、何かこつとかありますか?
0206名前は開発中のものです。
04/03/20 23:23ID:70F0it+2
まだちょっとちらつくのは、InvalidateRectの最後の引数がTRUEだから。
あと、無意味なクラスが気持ち悪いぜ!
0207名前は開発中のものです。
04/03/21 00:26ID:BKuLrlOv
>>205
動くが遅いけど、逆にそれが心地よかったり。クラスが分からんから
見れないけど、遅いのはたぶん1ドットずつずらしてるからだと思う。
2ドットずつ、極端な話32ドット一変にずらしてしまうと早くなると思う。

>自分で作ったSleepもどき
自分もコンソールの時はそれで、ウィンアプリの時はちゃんとPeekMessageを
使わずGetMessage+イベント取り分でやってた。ライブラリのTimerだと精度が
悪くなるから何か工夫していたと思うけど忘れてしまった。

>変数名考えるのがマンドクセなんですが、何かこつとかありますか?
自分もよく悩みます。自分はできるだけ1単語にして、その分
コメントをしっかりつけるようにしています。ただ、グローバル変数は
まず使いません。ファイル分割するようになると返ってめんどくさくなったり
するので。後、以下の所も参考にどうぞ。
http://pc2.2ch.net/test/read.cgi/tech/1067171530/l50
http://pc2.2ch.net/test/read.cgi/gamedev/1024902432/l50
020898
04/03/21 19:51ID:P8h6pce6
>>206
ちらつき撲滅できますた!

>>207
ビジーループを避けるためにいろいろ工夫したら結局Sleepになってしまった orz
>コメントをしっかりつけるようにしています
これいいですね。真似してみます。



コマンドは無理だったので、メッセージウィンドウ表示。
http://www.geocities.co.jp/SiliconValley-Bay/2736/zz76.txt
http://www.geocities.co.jp/SiliconValley-Bay/2736/rpg_a4.zip

メッセージウィンドウの背景と文字色を変更したいんですが、
SetTextColorが使えないです。
こういうときはどうしたらいいんでしょうか
0209名前は開発中のものです。
04/03/21 20:02ID:lBIVIhzW
静止状態では、結局CPU100%使っちゃってるよ。だめじゃん。
あと、マップ表示がスクロール終わるまで帰ってこない関数って後で困るよ。
スクロールしてる最中に同時にNPCを動かしたくなったらどうするのさ?
021098
04/03/21 20:27ID:P8h6pce6
進むの中断して組みなおして出直してきます。。
0211名前は開発中のものです。
04/03/21 21:20ID:lBIVIhzW
スクロール位置の更新と描画が分離されてなかったり、
GDIじゃなくDirectXつかってたりするが、
↓見たいな感じにすればいいよ。
ttp://www.sm.rim.or.jp/~shishido/drpgs1.html

ゲームプログラミング練習長持ってるんだっけ?
読んだこと無いけど、そっちのほうもこういう処理になってない?
021298
04/03/22 21:35ID:qIg3ILGt
>>211
見てみました。↓draw()でSleep代わり?にこうしてるみたいなんですが、
if (GetTickCount()>dwTime+5) dwTime=GetTickCount();
else return;

前に自分で作ったのが↓
dwTime = GetTickCount();
while(GetTickCount()<dwTime+5);

上と下って何か違いあるんですか?どっちもビジーループに見えるんですが。

>そっちのほうもこういう処理になってない
本のほうではDirectX使ってないです。他の細かいところも、違う書き方してます。
0213名前は開発中のものです。
04/03/22 22:18ID:IkgfwbwO
ていうか>>211のURLはゲームプログラミング練習帳の作者ジャン。

んでね、
http://www.sm.rim.or.jp/~shishido/src/drpgs1.txt
  } else
    draw(); // 描画処理
ここを
  } else {
    draw(); // 描画処理
    sleep(1);
  }
にすれば少なくともビジーループじゃないでしょ。
んで、>>211で言いたかったのはビジーループのことじゃなくて、>>209
>あと、マップ表示がスクロール終わるまで帰ってこない関数って後で困るよ。
>スクロールしてる最中に同時にNPCを動かしたくなったらどうするのさ?
これのこと。

上のURL(+Sleepバージョン)と>>208のプログラムを良く比べてみ?
0214練習帳著者
04/03/22 22:50ID:8UFWL+KK
>>212
>if (GetTickCount()>dwTime+5) dwTime=GetTickCount();
>else return;

これは、一つのif文の中で書けば

if (GetTickCount() > dwTime + 5) {

 dwTime = GetTickCount();

 ゲームの処理(draw()の中身)

}

という流れ。
「前回処理時間から指定時間(5ms)が過ぎていたら、現在の時間を
処理時間として記録し処理を行う」もので、処理を行わない場合には
そのままメインループ(if文の外にあるメッセージポンプ)に処理が
返るから、処理がそこで停まるビジーループにはなりません(あの
ソースももう5年前・・・。RPG関連の記事はそろそろ全面的に書き
直さないといけないですかねえ)。

>while(GetTickCount()<dwTime+5);

だと「指定時間が過ぎるまで」どうなります?
0215練習帳著者
04/03/22 22:58ID:8UFWL+KK
まあ、実際にRPG作ってみると「一定の周期で処理を行う関数」にゲーム
の処理をすべてまとめるのは無理があるから、メインループよりはゲーム
処理用にスレッド作った方が楽になるかな、という気がしてきたんですが。
特に厄介なのは、戦闘シーンやイベントの待ち時間・・・。 最初はあち
こちでPeekMessege()してたけど、これはちょっと違うかな、と。

スレッド作れば、最悪無限ループにしてもUI停まりませんからね(^^;。
もちろん、最終的なプログラムにするときにはスレッド内からの終了処理
(メインスレッドからの終了指示の監視)は必要だろうけど。

>>214
>ていうか>>211のURLはゲームプログラミング練習帳の作者ジャン。

そうですね。あのページの内容はもうかなり古いものもあったりして
書き直さないとなあ、と思っている部分が多いんですが、あちこちに
URL張られているようでちょっと焦ってます(^^;。

とりあえず、「4方向スクロールのマップ表示とキャラクタの透過描画」
あたりに関しては、もうちょいましなソース上げておくつもり。
0216名前は開発中のものです。
04/03/22 23:27ID:hc5U3G0l
本物キター
0217名前は開発中のものです。
04/03/22 23:29ID:mioo0vPT
著者降臨age!
0218名前は開発中のものです。
04/03/22 23:33ID:nq9Pmduh
上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな
上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな
上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな
上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな
上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな
上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな
上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな
上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな
上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな
上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな
上げ忘れちまったよ。ごめんな上げ忘れちまったよ。ごめんな
021998
04/03/22 23:46ID:qIg3ILGt
>>213
ああ、分かりました!
1ドット描画するたびに関数を終了して、グローバル変数とか構造体とかで
描画回数をカウントしておいて、1マス描画し終わったらカウンタリセットする。
すると割り込み処理ができるようになる。

>>215
うお・・・著者様ですか・・・
while(GetTickCount()<dwTime+5);
だと5ms経過するまで待機しかできない上に、処理が重くなってしまう。でいいでしょうか・・
0220名前は開発中のものです。
04/03/23 00:02ID:4auKbf0z
>の処理をすべてまとめるのは無理があるから、メインループよりはゲーム
>処理用にスレッド作った方が楽になるかな、という気がしてきたんですが。
この辺は、伝統的には所謂タスクシステムで解決してきたのかな。
スレッドだと同期が大変過ぎるしこういう用途には重すぎると思う。

まぁ、タスクシステムっていってもいろいろなやり方があるみたいだけど…
0221名前は開発中のものです。
04/03/23 00:47ID:9F6tXsaP
シナリオスクリプトを実装する時にはスレッドにしたりもする
ファイバー(コルーチン)という手もあるようだけどね

異なるプログラム方式の連携
ttp://www.jah.ne.jp/~naoyuki/Writings/VScheme6.html
0222名前は開発中のものです。
04/03/23 01:05ID:PMWtRlHb
シナリオなんかだと、タスクシステムでコールされるタスク関数を
ファイバ(マイクロスレッド、コルーチン、継続でもOK?)にしておくと
効率よく開発できるかな、とかおもったりしたけど全然試してない。

このへんは、やね本2だかに書いてあるらしいけど読んだこと無いです。
0223名前は開発中のものです。
04/03/23 02:20ID:JCV/36ob
俺もスレッド使わないほうがいいと思う
マルチスレッドを毛嫌いするわけじゃないが、明確な理由なしにスレッド化するのはやめたほうがいい
ゲームで必要になる場面があるとすれば、SLGの思考ルーチンくらいだと思う

で、ちょっとスレ違いの話題になるが、
ファイバってCreateFiber関数とか使う奴のこと?
だとするとあんなの使わなくても関数ポインタ切り替えでいいじゃん、と思うんだが・・・
#少なくともゲームにおいては。なんかいい利用方法あるならスマン
0224名前は開発中のものです。
04/03/23 02:48ID:PMWtRlHb
>だとするとあんなの使わなくても関数ポインタ切り替えでいいじゃん、と思うんだが・・・
その関数を減らすために使うんだよ。

普通はその関数の操作対象のオブジェクト(やシーンなど)の状態が変わったら
関数を切り替えるわけでしょ。ファイバを使うと、その「状態」が「関数をどこまで
実行したか」で表せるようになるから、状態ごとにいくつかに分かれてた関数を
ひとつに出来る、と。

まぁ、でもこういうのは大概スクリプトで実現するような気がしないでもない。
0225223
04/03/23 05:14ID:JCV/36ob
>>224
ちょっと待て、その利点は間違ってると思うぞ
ファイバ使っても関数減らすことになるとは思えない

このスレなのでRPGの例で行くが、
RPGにおける「状態」ってたとえば
・マップ移動(キー入力待ち)
・マップ移動(スクロール)
・戦闘中
とかに分かれるよね
ファイバを使う場合、これらの関数をCreateFiber関数で登録し、SwitchToFiberで切り替えるだけだ。
使わなくとも一旦呼び出し元ループに戻って別の状態用関数を呼び出すのと関数の数はほぼ変わらん
#状態の定義が食い違ってるかも?

スレ違い継続&長文スマソ
0226名前は開発中のものです。
04/03/23 08:41ID:PMWtRlHb
>>225
もっと先の話だよ。
イベントシーンとかそのへん(応用先はそれだけじゃないよ?)
スレ違いだが、シューティングの敵の動きの記述に使ったりもした。
0227名前は開発中のものです。
04/03/23 09:03ID:PMWtRlHb
あぁ、でもこの場合、少なくてもマップ移動はまとめられるね。
ヘンテコ擬似コードだけど、こんな感じ?(描画はメインファイバ側でやるという前提)

void MapMove() {
 while(1) {
  //方向キーが押されるまで待つ
  while (!CheckHitCursorKey())
   SwithFiber(mainFiber);
  MoveMap(GetKeyState());//スクロール方向を決める処理

  //ここからスクロール処理
  for (int i = 0; i < MAP_CHIP_SIZE; i++) {
   ScrollMap();//1ドット分スクロール
   SwitchFiber(mainFiber);
  }
 }
}

この場合にまとめるのが正しいかは議論ありそうだがそれはおいといて、例としてね。
0228練習帳著者
04/03/23 09:10ID:R4NaancD
>>220
別スレッドの利点は、他のスレッドと同期する必要をなるべく生じさせ
ない、ゲームに関する処理を一本道の流れに分離しておくような形式に
できた場合、Windowsのシステムの流れをあまり意識しないでゲームの
処理に集中できるかな、と。

実際、戦闘やスクリプトベースのイベント処理も含めてRPGのデータ処理
やバックバッファ(あとはウインドウのDCに出力するだけのDIBSection)
への描画処理をすべて別スレッド内で行うシステムを作ってみたんですが、
比較的単純なシステムではプログラムも一本道の単純なものにまとめられ
そうで、これはこれでよさそう。
小規模で単純なRPG/ADVでは、こういったタイプの処理もありかも。

まあ、一定時間ごとに呼び出す処理用関数で状態を管理しながら処理して
いく、という形にまとめられればその方がよさそうですけどね(ただ、
ゲーム本体の処理以外の部分でたいしたことをしていなければ毎回状態を
管理しながら一定時間ごとに処理を行う、という流れはスレッドで連続的
に実行しているように書く、というのと流れとしては同じになりそう)。
私もメインループ内で一定時間ごとに状態に応じて振り分け、という設計
を考えていましたが、別スレッドで処理する実験結果を見ると意外にうま
くいきそうだったんで、とりあえず別スレッドを作る方向で作っています。

ゲームの処理の流れを本格的に管理するつもりなら、フレームワークの開発
からやる方がよさそう・・・。
0229名前は開発中のものです。
04/03/23 11:14ID:PfXAGYNf
エェー?本当にちゃんと同期できてる?データの整合性もちゃんと保ててる?
マルチCPUの場合は、同じデータをアクセスするコードが「同時に」2つ以上走ることも
あるんだよ?

マルチスレッドは、データの不整合性、デッドロック、抜け出せないロッキング、
優先順位の逆転などなど気をつけないといけない罠が多すぎるので、どうしても必要
なところ意外では使わないことにしてるよ。
スレッドがだめって言ってるわけじゃないけど、初心者向けでは無いよね。

「処理の流れ」を記述したいときは、大概スクリプトにするかなぁ?
マイクロスレッドでもいいと思う。
0230名前は開発中のものです。
04/03/23 12:01ID:JCV/36ob
>>227
んー・・・なんとなく言いたいことは分かった、ありがとう
けどやっぱタスクシステムから乗り換えるほどの理由じゃないっす
#スレ違いすまんがSTGの敵の動き制御部分は特に意味がなさそう
#理由はたとえば同じ種別の敵が10いたら同じ関数を10回実行しなきゃいけない。
#けど同じ関数を回すわけだから結局状態データは外部に置かなきゃいけない
#同じ関数を10個ファイバとして登録して再利用するにしても、
#結局被弾したとかの状況によって初期化するわけだから外部で制御しても大差なし
#そもそも最近のハードだと敵の動きは外部データで持つことが多いので
#違う敵でも同じ関数で処理する

>>228
Windowsのシステムの流れってぶっちゃけメッセージループだよね
なら別スレッドにする必要はないかと
PeekMessage(およびそれに付属する処理)を1タスクとして考えればいいだけ
たとえばバックバッファを作った後でPeekMessageを呼び出せばいい
0231名前は開発中のものです。
04/03/23 12:25ID:rzkxl8IS
>>230
>けどやっぱタスクシステムから乗り換えるほどの理由じゃないっす
いや、タスクシステムと併用するんだよ当然。
タスクシステムからタスク関数を呼び出すと思うけど、それをファイバにするという話。

>#同じ関数を10個ファイバとして登録して再利用するにしても、
>#結局被弾したとかの状況によって初期化するわけだから外部で制御しても大差なし
まぁ、被弾とか非同期で状態が変わる部分は、別関数にせざるを得ないよね。「例外(Exception)」だし。
でも、多数の状態が(ほぼ)シーケンシャルに切り替わっていく状態なんかでは、状態ごとに関数分けたり
状態変数作ってswitchで分けたりするよりは、すっきりしたプログラムになると思う。

まぁ、もちろん、
>#そもそも最近のハードだと敵の動きは外部データで持つことが多いので
なので>>224ではスクリプトでやる場合が多いと書いたわけだけど…

どっちにしろ「使いようによっては便利なときもある」って話だ。
全ての場合で使えると言ってるわけでもない。ファイバはメモリ食うしね。
0232名前は開発中のものです。
04/03/23 16:31ID:cY6fF1y+
マルチスレッドにする利点はタイトルバーをクリックしても処理がとまらないことかな
023398
04/03/23 21:04ID:s4+zR2jB
よく分からないんですけど、マルチスレッド使えないとやばいっていうことでしょうか?


今度こそマップスクロール完成版↓
http://www.geocities.co.jp/SiliconValley-Bay/2736/zz78.txt
http://www.geocities.co.jp/SiliconValley-Bay/2736/rpg_a5.zip

・静止状態にCPU100%になっていたのを修正(Sleep(1);をつけた)
・メッセージウィンドウ表示時にCPU100%になっていたのを修正(Sleep(1);をつけた)
・描画関数を2つに分割

なんか処理が重くなったような気がする・・・
0234名前は開発中のものです。
04/03/23 21:12ID:PMWtRlHb
んじゃ、次は、DrawMapの、「〜スクロール時描画」を「静止マップ表示」ひとつにまとめよう!
これでかなりすっきりするはず。
023598
04/03/24 22:18ID:w/FFfgKd
すっきりしたかどうか分かりませんが、まとめてみました↓
http://www.geocities.co.jp/SiliconValley-Bay/2736/zz79.txt
・描画方法を少し変更

メッセージウィンドウ表示は置いといて、次はNPCを作ってみる予定
023698
04/03/29 19:11ID:hm6pjM86
ログが消えてる(´・ω・`)

NPCの移動をなめらかに描画するのが難しいんですが、
なんかいい方法とかないでしょうか・・・
0239200
04/04/02 00:46ID:HxQygUy0
srand((unsigned)time(NULL));
は、最初に一回だけね。ループには入れないで。
srandは乱数ジェネレータの初期値。
rand()関数はsrandを実行しなくても一回一回違う値を返すけど、もう一度プログラムを実行してもまた同じ値を返してきてしまう。
一回目の結果:7,2,5,6,4,1...
二回目の結果:7,2,5,6,4,1...
こんなカンジで。
srandでtime(NULL)を与える理由は、プログラムを起動するごとに違う値を出力するようにするため。
一回目の結果:7,2,5,6,4,1...
二回目の結果:5,1,8,4,3,7...
ってカンジで。
timeは確か秒単位だったから1秒以内ならrandが同じ結果を返すことになる。
って、コレも猫でもわかるプログラミングで説明されていたような・・・
0240200
04/04/02 00:49ID:HxQygUy0
あ、別のサイトだったっぽいです。
024198
04/04/02 20:19ID:RjQBCx/D
おまじない程度の認識しかなかったので、ここが原因とは思いませんでした。
ランダムに動くようになりました。

ふと思ったんですが、WINAPIなら timeGetTime()%10; でも0~9のほぼ乱数ができるような
気がするんですが、これって邪道でしょうか。
0244練習帳著者
04/04/03 23:40ID:ClmmNDdO
>>243
マップエディタはイベント配置機能なども含めRPG開発では必須
になるけど、開発するのは本体よりも大変かもしれませんね。
まあ、開発自体が良い練習になるしマップの仕様はゲーム設計で
いくらでも変わるから、時間はかかっても独自のマップエディタ
を作るのも良いでしょう。

あと、バイナリファイルは、特に理由がなければAPIで扱うのが
一番楽な気がw
0245名前は開発中のものです。
04/04/04 00:10ID:8gkVG1Fa
私も参戦してよいでしょうか。
環境はVC++6だけど、DirectX(8or9)つかうかWinAPI(SDK)だけで行くか悩み中。
SDKだけでいけそうだけど、勉強のためにDX使おうかなぁとも。
覚えたほうが後々いいですかね。。(どうでしょう?)

とりあえずマップチップ表示してその上を歩き回れるようなものを作ろうと思ってるんですが。
024698
04/04/04 19:29ID:mMmF0Gyi
>>244
マップエディタも奥が深いんですね・・
作成したマップをどういう形式で保存するかっていうのも悩みどころです。

>>245
言語問わず参戦歓迎です。
マターリがんがりましょう
0248245
04/04/05 00:00ID:Exj/seSL
ども。
では最初の目標として、
なんか表示してキーボードで動かせる奴を作ってうpします。
DX使うかまだ未定。訳わかんなかったらSDKでやります。
0250245
04/04/05 13:40ID:Exj/seSL
WinAPIどぅえす。
どっかのサイトでAPIのみでつくるのをSDKって言ってんの見て変な癖ついちゃいました。
それで、やっぱDirectXはこのくらいの規模の2Dもので使うにはめんどいだけで
恩恵無さそうな気がしてきたので使わないかもしれません。
(突っ込みが欲しい所であります。)
025198
04/04/05 20:25ID:jO2LaB8o
俺はDirextX使えないけど、将来的にすごいもの作ろうとしたら
避けて通れない道な気がするから、敢えて使ってみるのもいいかも
0252245
04/04/06 14:51ID:I/KdK9GY
実は超最終的な目標は3Dのネットゲー作りたいんですよねぇ。
だからDXは絶対覚えないと・・・
でもCのプログラミング自体基本ができてないから
とりあえず難しいDXは抜きに多少使った事があるAPIでやって、
C自体の基本的なところの習得に集中してからDXに移ろうかなぁ
なんて気分になってきました。
025398
04/04/06 20:50ID:VKrLl24Q
>>252
教材が見つからなかったんで、俺は諦めたけどELっていう手も。
でもAPIの知識が必要だった気がするから、結局APIだけでやってみるのが
一番いいのかもしれません・・・


初期化ファイル(MapDataAlpha.ini)にセーブするようにした。操作方法はソースの上のほうに書いてあります。
http://www.geocities.co.jp/SiliconValley-Bay/2736/zzz8.txt
http://www.geocities.co.jp/SiliconValley-Bay/2736/map_ed_3.zip

・WM_RBUTTONDOWN時に
 POSITION[0][0] = ...
 POSITION[1][0] = ...
 POSITION[2][0] = ... のように記録させたいんですが、どうすればいいんでしょうか?
0254名前は開発中のものです。
04/04/07 03:10ID:6G2QeT26
RPG製作に興味あってこのスレきますた。
後半部を流し読みしかしてませんが、なにやらAPIやDXベースで話がすすんでるようですが
それらを学習しながらはたしてモノが完成するのかなぁと思ったので。
最初は253氏が触れてるようなEL等のライブラリを使用するのがいいかと思います。
ゲームの中身の処理以外で悩むのつまんないし。
0255245
04/04/07 05:36ID:RS4YRj46
>>253>>254
結局APIで作り始めますた。
私のほうは、あくまで技術の学習・習得が第一の目的でして、
特にゲームを完成させることに拘りはないです。
でも「作るスレじゃ」なくて「作れるようにするスレ」なので
あんまり矛盾はないかなぁなんて。

現状ですが、とりあえず超適当ですがPCの画像を表示できました。(うpする価値なし)
次はテキストファイルを読み込み、それにしたがって
マップチップを敷き詰めてみようと思います。
0258245
04/04/08 05:12ID:rdLQdFbl
>>256
おぉそこは知りませんでした。凄く参考になります。
現状ですがテキストファイルからマップデータを読み込み、
表示することができました。
http://gamdev.org/up/img/426.zip

本当はバイナリにして暗号化したりした独自形式にしりたいんだけど
よくわかんないのでとりあえず放置。
次はキーボードでキャラを移動して画面をスクロールさせてみようと思います。
しかし98さんは進歩早いですね。私も早く追いつけるようにがんばります。
025998
04/04/08 20:18ID:GQOUbMkn
2ヶ月前からやっててまだこの程度なので、かなり遅いと思われます・・

保存形式ですけど、
XML→難しい割りにメリットなさそう バイナリ→シラネ レジストリ→怖い
ってことで、消去法で初期化ファイル使ってます。

データ書き換えが簡単で、ゲームとして成り立たなくなりそうですが。
0260245
04/04/08 22:58ID:rdLQdFbl
ファイル操作の辺りって結構でかい壁ですよね。(俺だけかも)
いずれ絶対やらなきゃなんないし、かなり面倒くさそう。。。

今回はPCを矢印キーで操作して画面をスクロールできるようにしました。
ついでに当たり判定もつけました。
ttp://gamdev.org/up/img/439.zip

現状はまだ隣のマスへワープしてる状態なので、
つぎは滑らかに移動できるようにしたいと思います。
026198
04/04/09 00:11ID:vWYKL39D
俺もファイル操作で何回も挫折してます。
バイナリでの保存方法教えて。エロイ人。

>ついでに当たり判定もつけました
ダウソしてみたんですが、実行前の注意必読.txt読んだら
怖くて実行できなくなってしまったorz
0262200
04/04/09 00:16ID:PDI25ArR
うぃっす。そのうち暇になったら俺も晒そうかな。今は忙しいが。

>>259
XMLはHTMLと同じようなマークアップ言語のことじゃないん?
だから出力形式としてはテキストorバイナリになると思うんだけど。
あと、ツール関係もC言語で作るって言うのはどうかと。
ツールは他の言語で作って出力データだけ使うのが良いと思われる。
テキストで出力するのであれば、マップチップ番号をカンマで区切って出力したり
すればいいんじゃない。
コレが有名なCSVファイルね。
ちょうど245の晒しているマップデータをカンマで区切ったような形式。
もちろん、出力するデータの桁が決まっていれば区切る必要はない。
バイナリはただ単に数値をそのまま出力しただけのデータ。
通常のテキストファイルは文字コードによって人間の理解できる文字になっているが、
コンピュータで扱っている数字はそのまま出力した場合、テキストファイルのように
数字を読み取ることは出来ない。
しかし、プログラムから読み込む場合は余計な数字>数値変換を行わなくて済むのと、
サイズが小さくなると言うメリットがある。
0263200
04/04/09 00:23ID:PDI25ArR
発言が前後しちまったーヨ。
出力・・・猫でもわかるミレ
0264245
04/04/09 06:14ID:PD92y+NK
>>261
何があるかわかんないので、一応、免責事項を書いておいたほうがいいかなと思って。
フリーソフトに限らず書いてあるのが多いので見習いました。
多分大丈夫だと思います。多分。。。(でもやっぱり責任はもてませんw)

>>262
CSVにしようと思ったんですけど、まんどくせのでとりあえずあんな感じに。
カンマとかって普通に文字列操作でくっ付けて〜.CSVでWilteFileすれば
出来上がるんですかね。そのうちやってみようと思います。

ちなみに私のほうはVC++でやってるので、
マップツールの方はダイアログベースで作るか
APIでクライアントにコントロール直張りにして作るか、
普通のクライアントウィンドウ+モーダレスダイアログで作る予定。
MFCは使わない。というか使い方知らない。
「猫でもわかる」に「MFCの使い方覚えてるうちにAPIで1000個くらいアプリ作れちゃう!」
とか書いてあるので、それを信じてひとまずMFCは放置しようかな、と。
ところで↓みたいに
ttp://www.nurs.or.jp/~urara/sbo/grp/sbo086.png
チップをスクロールバー付きで並べて表示して、
それを選択したりするようにするのって「リストビュー」をつかうのかなぁ、、、
↑のはどうやってやってんだろう。ここが難関。誰か教えてたもれ。
0265練習帳著者
04/04/09 08:53ID:NNIXc1rk
>>261

バイナリファイル保存は、CreateFile()でファイルハンドルを作って
バイナリデータ(データを記録したバッファ)をWriteFile()で書き
出し、ファイルハンドルを閉じる、という流れでできます。
lpszFilePathをファイルパス、lpDataをデータの先頭アドレス、dwSize
をデータのバイト数とすればこんな感じ。

HANDLE hFile = CreateFile(lpszFilePath, GENERIC_WRITE, 0, NULL,
        CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

WriteFile(hFile, lpData, dwSize, &dwWrote, NULL);

CloseHandle(hFile);

ファイル操作は、標準関数よりAPIの方が楽ですね。
0266200
04/04/09 18:37ID:PDI25ArR
>>264
VBとかもっとらんの?
VCしかもってなくて、C言語しかやってないっていうのなら、しょうがないけど。

チップセレクトは多分スクロールバーとBMPをあわせているだけだと思う。
スクロールされたらそれに合わせてプログラム内でBMPの表示位置を変えてるんじゃない?
0267245
04/04/09 21:40ID:PD92y+NK
滑らかにスクロールするようになった。
けど、なんか無理矢理できてる感が強し。やたら重いし、
デバイスコンテキストとかこんなに何枚も作る必要あるのだろうか。。
hdc//一番表。ディスプレイ
hdcMem//一枚裏。ここにいろいろ合成して最終画像を作る。
hdcMap//マップの画像ファイル読み込んでおいておく所。
hdcChr//キャラの画像ファイル読み込んでおいておく所。
hdcFld//マップデータにしたがってマップを描く所。スクロールに備えて一マスでかい。

ttp://gamdev.org/up/img/443.zip

次はNPCを勝手に歩き回らせようと思います。
次回はきつそうだからソース晒して助けを求めることになるかも。

>>266
リストビュー使ってないんですかねぇ。
でも使ってもできそうな感じです。なんとなく。
026898
04/04/09 22:43ID:Hsbv26Yj
>>262
>ツール関係もC言語で作るって言うのはどうかと
C++以外だとJavaScriptしか使えないです。保存できない・・・

>>265
ありがとうございます。バイナリと思われる意味不明な文字列で保存までできますた。
読み込みもたぶんできそうです。

>>267
特に重いとは思いませんでした。
つか、あと2,3日で追い抜かれそうな気がしてきたorz

0269245
04/04/10 18:02ID:rQAMSH7v
適当に動くNPCを追加して、キャラの余白は透過するようにしました。
ttp://gamdev.org/up/img/447.zip

次はキャラ同士で当たり判定をつけて、
NPCの数を動的に増やしたり減らしたりできるようにしようかと思ってますが、
めんどいだけで特に得るものは無さそう。。。
でも見た目楽しそうなのでやってみようと思います。

>>つか、あと2,3日で追い抜かれそうな気がしてきたorz
ふぉぉぉぉぉぉおおおお!!!
027098
04/04/11 21:26ID:ih6xwcUu
>>269
左移動・上移動はいいんですが、右移動・下移動の時の画面に現れてくる部分の描画が遅いような感じです。


・エンターキーを押すとコマンドが出るようにした。
・マップデータはバイナリのまま読み込むようにした。
・ソースを修正しやすいように修正した。
http://www.geocities.co.jp/SiliconValley-Bay/2736/zz101.txt
http://www.geocities.co.jp/SiliconValley-Bay/2736/rpg_a10.zip

次はスクリプトを使ってNPCと話せるようにしようと思う。
0271245
04/04/11 22:41ID:OD43hm2K
今日はハマリ中でうpできそうにない・・・

>>270
試してみてもらえたようで、ありがとうございます。
起動時のままのウィンドウサイズでも変になってますか?
家でもウィンドウを広げると確かに下とか右の方の描画が変なんですが、
一応起動時のサイズが標準なので、普通だったら見えないところだから
そのままでいいやと思って直してなかったんですが、
標準サイズのままでおかしくなってるとしなら直さないといけませんね・・・

ちなみにソース拝見しましたが、APIのCreateWindowでゲーム内ウィンドウを
作ってるのが新鮮ですた。こういうのって自力で原始的に作んなきゃならないと
思い込んでたので作るのを逃避してきたのですが、
APIのウィンドウを使えるならマウスドラグで位置移動とかサイズ変更とか
もできそうですね。
027298
04/04/12 00:16ID:A/n3T6P2
>>245
あ、起動時のままなら問題ないです。

>APIのCreateWindowでゲーム内ウィンドウ
自力で描画っていうのもやってみたんですが、いろいろ問題があったので
子ウィンドウにしました。

ただ、子ウィンドウを使うとウィンドウが無効になったときの処理が
面倒だったりするので自力で描画したほうが楽なのかもとか思ってます。
0274245
04/04/12 01:08ID:+oNLbu0z
>>272
環境によってウィンドウの出方とか違うのかと思ってましたが、
よかったです。安心しました。

>面倒だったりするので自力で描画したほうが楽なのかもとか思ってます。
そうですか。。。今の課題をクリアしたら私も色々テストしてみるとします。

段階的学習っていうの見てますが、もっと先のレベルも欲しい所ですね。
別に無くてもやらなきゃならないことは山ほど見つかりますけど、、、
0275245
04/04/12 18:29ID:+oNLbu0z
キャラ同士に当たり判定をつけ、移動するとき向きを変えるようにした。
NPCをテンキーの+-キーで増減できるようにした。(お遊びで。でも予想外に辛かった。。)
なぜか12,3体辺りでバグるので10体までに制限してあります。
ttp://gamdev.org/up/img/471.zip

ちなみに前回のバージョンでは
キャラの透過転送にGetPixel,SetPixelをつかって原始的にやっていたんですが、
キャラの数が増えるとかなり重かったので今回はTransparentBltなる関数を使うようにしました。
でも環境によっては(Win98とか)リークを起こすいわく付きの関数らしいので
実行時は自己責任でおながいします。うちは2000ですが、特に問題ないです。
027698
04/04/12 22:51ID:Zs0PVIFw
>>275
XPですが、いい感じでした。
NPC増やすのって何気に難しそう・・・
0278245
04/04/13 00:54ID:4GaN7j22
>>276
どもです。
あれをちょっと改良したらへぼいARPGみたいなのができそうかなという気が。
でもとりあえずなんかウィンドウを表示してみようかなぁ。
次に何をやるか迷い中です。

>>277
>オジサンはAPIで作るほうがめんどいと思いますorz...

まじですか。通りすがりなんていわないで、
オラのためにDX習得までの段階的学習目標を50段階くらい作って下さい。
お願いします。お願いします。

ところでDirectXの画面ってAPIのコントロール類って貼れないんでしたっけ。
0279とおりすがりの親父PG
04/04/13 01:19ID:MuenDC6+
>>278
では、DirectXのSDKを落としてきてインストール
デモをコンパイルして 三角形を回してみる。

とりあえずここまでかな。

0280245
04/04/13 21:24ID:4GaN7j22
>>279
できました!サンプルをほんのちょっと改造して矢印キーで回転するようにしました。
実行時にカーソルが砂時計なのは何ででしょう。
支障ないみたいだけど激しく気持ち悪い。

ttp://gamdev.org/up/img/480.zip

次の、、次の課題をください!
それまで今までの2Dを改造してます。
0281とおりすがりの親父PG
04/04/13 22:39ID:qfExSMIG
>>280
それでは、頂点の数を増やしてみる
あとは5種類ある頂点の種類をそれぞれ試してみる。

次にこのサンプルはSDKが供給する「ライブラリソース」をインクルードしていますが
それを別フォルダにコピー(複製)して、自分用のライブラリファイルとすべし

自分用(スケルトン)フレームを作成する
028298
04/04/13 23:17ID:eA8EtTKv
DirectX早くやりたい(´・ω・`)

http://www.geocities.co.jp/SiliconValley-Bay/2736/zz105..txt
http://www.geocities.co.jp/SiliconValley-Bay/2736/rpg_a11.zip
・NPCと話せるようにした。
・タイトル画面をつけた
・スクリプトのメリットがよく分からないので使わなかった。
・ソースが多くなったせいか、汚いせいか、自分でも読みにくくなってきた。

次はNPCに話しかけたらエンディング、という流れを作ろうと思う。
あとはごりごり作っていけば完成しそう
0283245
04/04/13 23:53ID:4GaN7j22
>>281
さっきうpした奴に頂点一個追加して正方形を表示するのはできました。
5種類ある頂点の種類っていうのが何をさしているかちょっとわかんないのですが、
トライアングルストリップとかトライアングルファンとかの事だとしたら
試してみて違いを確認しました。

>>282
なんかウィンドウ表示が変ですた。
NPCに隣接しててもしてなくても、コマンドを実行すると
下の会話ウィンドウにもコマンド一覧があらわれるみたいです。
古いバージョンがうpされてるのかも。。。
028498
04/04/14 00:12ID:ASstlwbG
>>283
ぁ、ほんとですね・・・タイトル画面作るのに集中してて気づきませんでした。
原因調査してみます
028598
04/04/14 00:54ID:ASstlwbG
やっとバグとれた('A`)
lpszClassNameがかぶってるのが原因でした。
今までかぶってても平気だったのは何でだろう・・・
0286通りすがりの親父PG
04/04/14 05:41ID:EE4mRz9N
>>283
それですそれです。線分と点などもあると思います。
あるものは偶数しかNGなものもあります。
ではライブラリソースを自分用にしてください。
それを改造していきます。
0287245
04/04/14 17:34ID:TCeeFkNf
>>親父PG

正直に言うであります。
意味が分からないであります!  壁| 〇 =3 | ̄|_
開発にはVCを使ってますが、
現在のソースでは、一つのヘッダファイル(d3dx9.h)を
SDKの入ってるフォルダからインクルードしてまして、
コンパイルしたら「外部依存関係」の所に他のヘッダファイルが色々追加されました。

これらを自分のプロジェクトのフォルダの方などにコピペするってことでしょうか。。。
こんなヘタレですいません。
0288とうりすがりの親父PG
04/04/14 19:01ID:EE4mRz9N
>>287
そうです。自分用のライブラリフォルダを作ってそこに複製します。
(元の位置のものは残しておかないと、他のサンプルが動かなくなる)
d3dapp.cppを覗くとフル画面モードの切り替えやウインドサイズの変更
ポーリングループの部分等があり、なかなか面白いものがありますよ。

0289245
04/04/14 22:05ID:TCeeFkNf
>>親父PG
できました。一応、画像です。点とか線にもなりました。
d3dapp.cpp見てみましたが、かなりムズイです。そんなレベルです。
ですが、がんばって習得するので課題を、、課題を下さい!
ttp://gamdev.org/up/img/483.jpg

2DPRG、ちょっとだけ改造しました。
「+」キーを押すと適当なHPをもったNPCが発生します。
NPCに向かって「-」キーを押すとHPが減って、0になると倒せます。
けど連射が効いちゃってるので押しっぱで移動してるだけで事がすみます。
ttp://gamdev.org/up/img/484.zip
環境によって速度も一定じゃないし、ソースも描画部分とか入力部分とか
バラバラなのでその辺を一旦綺麗にできたらウィンドウを描画してみようと思います。
0290とうりすがりの親父PG
04/04/14 23:45ID:EE4mRz9N
>>290
ここのサイトを参考にしてポリゴンを貼ってみると良いですよ

ttp://www.realdigital.co.jp/densi2/index.html
0291245
04/04/15 23:47ID:DNQtOokO
>>とうりすがりの親父PG
テクスチャ張れました。
http://gamdev.org/up/img/488.jpg

もっと、、、、もっと課題をください!
ShadowbaneとかWorcraftみたいなカッチョいいゲームを作りたいのであります!
0293245
04/04/16 15:24ID:rC4Ao3Jo
とりあえずFPS測ってみました。
前の課題作ってるときから「どうも遅い」と薄々感じてたんですが、
DX9SDKに入ってるチュートリアルの三角が回るやつを改造して測ってみたら
案の定40fpsしか出てませんでした。
試しに、DX8に入ってる同じ三角が回るサンプルに同じ改造をして測ったら
400fpsとか出てる模様・・・
ビデオボードがGF2GTSだからDX9だとダメなのかなぁ。。。
8と9のサンプルで特別違う事をしてるとは思わないんですが、なんでですかね?
0295親父PG
04/04/17 01:25ID:N6rYd7aK
>>293
テクスチャ貼れましたか。頑張っているようですね。
ではスプライトもついでにやっておきましょう。
DirectXのほうが簡単という私の前の意見に、そろそろ納得していただけると思います。
さてこのサンプルでは高精度タイマーユーティリティが使われています。
どこに在るか確かめ、どのように使われているかを探し出せば、自ずと遅くなっている原因もわかるかもしれません。
0296245
04/04/17 15:31ID:UZYSuoQB
>>親父PG
ありがとうございます。
fps抑えられてた原因がわかりました。(というか教えてもらいました)
危うくビデオボード買うところでした。スプライトも表示できました。
http://gamdev.org/up/img/498.jpg

楽なのかどうかはまだ慣れてないのではっきりと実感できないのですが、
はやく自由に使いこなせるようにがんがります。ので、ので、何か適当に課題を下さい!

>>294
ふぉおおおおぉおぉぉぉぉぉぉ!!俺も仕上げるぞー!
029798
04/04/17 17:56ID:lFucyLLi
三角形って
\Samples\C++\Direct3D\Tutorials\Tut02_Vertices\Vertices.cpp
↑これですか?そのままだとコンパイルできないんですが・・・

エラー E2209 Vertices.cpp 14: インクルードファイル 'd3d9.h' をオープンできない
エラー E2141 Vertices.cpp 22: 宣言の構文エラー  あと6行ほど続く。

もしかしてbccだとDirectX使えないっていうオチですか?
0299とおりすがりの親父PG
04/04/17 22:47ID:mXcf9nch

>>296
245さん お疲れさまでした。
さてここから先ですが、それは作る対象によって異なると思います。
今の状態でBGとスプライトが表示できるわけですから、最低条件である「表示」に関してはクリアできたわけです。

ではこの先何をすべきでしょう?。
純粋に表示能力を学習したいのであれば、3D表示>ピクセルシェーダー>キューブテクスチャ
他にランドスケープのライブラリを設計するなど

またRPG等などスクリプトが必要なシステムであれば、そちらの設計も必要です。

「マウスクリックの場所を検地した後、どのように振舞うか」この部分を内部でインラインで処理するか、
「処理データ-(外部ファイルの読み込み等)」によってコントロールするようにするか? など

また包括的なシステムというのも念頭において、全体のクラス設計も必要になります。

ということで、私が教えた?(実は何も教えていないw)事はここで一旦終了です。
DirectXの導入と実際にPGを組む事ができたという事で、当初の目的は達成できました。


おめでとう!


不詳、私もここの板でスレッドを立てていますので、おひまな時には覗いてみてください。
0300245
04/04/17 23:39ID:UZYSuoQB
>>親父PG
今までありがとう!
まだまだ先は長そうですががんばります。Shadowbaneみたいなゲームを作るまで!
親父PGさんもたまには私の成長っぷりを見にきてください。

これからはまたシコシコ取り組みます。
とりあえずはハイトフィールドを歩けるくらいになるまでを大きな目標にしようかなぁ。
つうことでモーション無しXファイルを読み込んでみる事にします。

>>297
私が弄ってたのはそれです。DXがんばってマスターしましょう!
030198
04/04/18 20:41ID:6QlIhFIw
>>300
むしろ挫折しそうですorz

>>298
4.のmakeでCommand syntax errorというのが出てmakeできません。

で、bccは諦めてVC++が無料なのでインスコしてみたんですが、
clのパスはたぶん通ったんですが、ヘッダファイルのパスが通せなくて苦戦してます・・・
0302245
04/04/19 00:12ID:3QCXa6Lb
ウチはVC++6使ってるんですが、

「ツール」→「オプション」→「ディレクトリタブ」内で、
「表示するディレクトリ」を「インクルードファイル」に指定し、
下のところの「新規作成」でDXSDKのIncludeディレクトリを追加。
同様に「表示するディレクトリ」を「ライブラリファイル」に指定し、
DXSDKのLibディレクトリを追加。

そしてプロジェクト毎の設定として、
「プロジェクト」→「設定」→「リンクタブ」内で、
オブジェクトライブラリモジュールのところに
d3d9.lib d3dx9.lib dxerr9.lib dxguid.lib
などを追加してます。

ウチと環境違ってたら私はヘタレなのでよく分んないです。スマソ。
030398
04/04/19 18:57ID:x8GMNOCf
無料版なので、dos窓でいろいろやらないとだめなんです・・・

VC++ ->DirectXどころか、coutすらまだ使えない状態(printfは使える)

bcc ->三角形をコンパイルしようとすると
     Fatal: オプションが必要 : LD:\directx9sdk\Lib\Borland といわれる。

ここを参考にしてみた。↓
ttp://www.geocities.co.jp/Milano/8000/bcc/
0304名前は開発中のものです。
04/04/19 20:17ID:eJn0oU39
>303
VCでのライブラリモジュールのリンクは
#pragma comment(lib, "ライブラリ名.lib")
を使うと少し楽できるかも。(正しいやり方じゃないかもしれないけど・・・・)
0305245
04/04/19 20:55ID:3QCXa6Lb
>>303
あぁ、無料のVC++ってなんだろうと思ってたら
コンパイラが無料配布されてるんですか。。。
お役に立てずに申し訳。
0306親父PG
04/04/19 23:42ID:HvqP5Z0m
>>301
Visual Studio 6.0 を使う場合
インクルード ファイルの検索パス
ヘッダー ファイルのパスが正しいこと、DirectX のヘッダー ファイルのディレクトリがコンパイラに最初に検索されるパスになっていることを確認すること。
インクルード パスを確認するには、[ツール] メニューの [オプション] をクリックし、[ディレクトリ] タブをクリックする。これにより、次のようなダイアログ ボックスが表示される。

ここでリストの先頭に表示されているパスが、最新の DirectX のヘッダー ファイルを置いているフォルダになっていなければならない。
このデフォルト パスは、C:\DXSDK\Include である。このパスが表示されていない場合は、それをリストに追加し、[ディレクトリ] タブ内のツールバー コントロールを使ってそのパスをリストの先頭へ移動すること。
                   ↓
エヂエタ|タブ|デバック|互換性|ビルド|ディレクトリ|ワークスペース|||
プラットホーム
「WIN32」
ディレクトリ
C:\DXSDK\Include ←これ

リンカの検索パス
リンカがリンク ライブラリを検索する際に使う検索パスと、その検索順を確認すること。リンクの検索パスのリストも、[ディレクトリ] タブで確認できる。
これを行うには、[ツール] メニューの [オプション] をクリックし、[ディレクトリ] タブをクリックする。ダイアログ ボックスが表示されたら、[表示するディレクトリ] ボックスの [ライブラリ ファイル] をクリックする。
これにより表示されたリストの先頭のパスが、最新の DirectX のリンク ライブラリを置いているフォルダになっていなければならない。このデフォルト パスは、C:\DXSDK\Lib である。

プロジェクトのリンク ライブラリ
サンプルと一緒に提供されたプロジェクト ファイルを使う場合は、この設定を確認する必要はない。この設定値はプロジェクト ファイル内で指定されている。
新しいアプリケーションをコンパイルする場合は、[プロジェクト] メニューの [設定] をクリックする。これにより、次のようなダイアログ ボックスが表示される。



030798
04/04/20 00:31ID:2oyWdrfK
>>304
#pragma comment(lib , "libcp.lib")
をつけてみたんですが、だめでした。
自分でもよく分からないんですが、環境変数いじってたらいつの間にか
coutが使えるようになってました。

>>305
clとかvccとか言ったほうが分かりやすかったですね

>>306
ありがとうございます。でもVisualStudioではないんです・・・


bccはDirectX8以上と相性が悪いらしいのでさっきアンインストールしてしまったんですが、
clでwindows.hが使えるようになったら再びインスコしてみます。
0309名前は開発中のものです。
04/04/20 22:55ID:eL87iK8i
>307
私の環境では、インストール先のディレクトリに出来る”vcvars32.bat”と言うバッチファイルを実行しただけで、
環境変数がすべて設定されました。
031098
04/04/21 18:22ID:bfgLD/fX
>>308
やってみたんですが、
外部シンボル 'Direct3DCreate9' が未解決
というエラーが出ます。意味が分からないんですが、何がいけないんでしょうか?


>>309
そうだったんですか・・・必死に自分でやってましたorz


PlatformSDKも、XMLが読めないとか言われて落とせないので、
VC++(製品版)を買ったほうがいいような気もしてきました・・・
0311名前は開発中のものです。
04/04/21 18:29ID:+YydXBKM
「プロジェクトの設定」のリンクのところで、d3d9.libをリンクすればいいハズ。
あと、必要に応じてほかのLibもリンクしてやる。
関数ごとに必要なLibはドキュメントに書いてある。
0312311
04/04/21 18:38ID:+YydXBKM
>>310
BccDevの設定のことな。
これでDX9がBCCで使えるはずだが、
できたプログラムがDLLを導入した環境じゃないと動かないかも知れない。
試してないのでわからん。スマン。
031398
04/04/21 18:56ID:TkqwtIOq
>>311
コンパイルできました。
でもVertices.exeをダブルクリックしても何も起きないです。

\Samples\C++\Direct3D\Binのファイルも半分ほど開けないので、
ビデオカードのせいでしょうか?
0314311
04/04/21 19:08ID:+YydXBKM
Vertices.exeはハード依存ではないハズなので、
起動しないのはどこかがおかしいのかも。
俺も初心者なのでBinのプログラムやビデオカードについては正直わからん。
031598
04/04/21 19:33ID:TkqwtIOq
>>314
別のPCでやったら三角形が表示されました。
なんでだろう
0316245
04/04/21 19:46ID:KyjgQXxH
意味があるかわかんないけど、
Windowsの「スタート」メニューから「ファイル名を指定して実行」で
dxdiagっていれるとDirect3dとかDrawの環境テストができますよ。
ダメだったらビデオボードのドライバを新しいのに更新してみるとか。
031798
04/04/21 23:45ID:HhcihRE8
>>316
テストしてみたんですが、問題なしでした。
ドライバを更新したら、今まで見れなかったサンプルが見れるようになったんですが、
Vertices.exeはまだ見れないです・・
031898
04/04/22 00:12ID:56TmnEhv
画面の色数のようなものをいじってたら見れるようになりました。
やっとスタートラインに立てました。
教えてくれた人ありがとうございます。
0319311
04/04/22 00:31ID:bRXr1w99
おお、原因はわからんが(w、とりあえず動いてよかった。
これからもガンガレ!


0320245
04/04/24 22:29ID:jIgXjODn
Xfileのロードができた。
今更ながらクラスをちょっと勉強したので、
一つのモデルを読み込み、オブジェクトとして沢山配置したり
位置とか向きを管理できるようにしてみようと思う。
0321名前は開発中のものです。
04/04/25 13:27ID:kOXdBOhy
ある点のRGB値を取得するときに使うGetPixelってありますよね
あれのRの値のみ取得する方法ってあるんですか?
あったら教えてください
0323321
04/04/25 19:05ID:kOXdBOhy
>>322
マジありがと
032498
04/04/26 21:10ID:bAZf+D6a
サンプルのソース見ててもさっぱり分からん・・・
DirectXのお勧めの本とかサイトあったら教えてください
0325とおりかかった親父PG
04/04/27 23:00ID:6oVtyqti
ところで気になるのですが、メモリ内に仮想的にDIBを造る方法をご存知ですか?

HDC hDC = CreateCompatibleDC( NULL );

DWORD* pBitmapBits;
BITMAPINFO bmi;
ZeroMemory( &bmi.bmiHeader, sizeof( BITMAPINFOHEADER ) );
bmi.bmiHeader.biSize = sizeof( BITMAPINFOHEADER );
bmi.bmiHeader.biWidth = ( int )tW;
bmi.bmiHeader.biHeight = ( int )-tH;//ここを-すると左上頂点のDIBができるマジお勧め
bmi.bmiHeader.biPlanes = 1;
bmi.bmiHeader.biCompression = BI_RGB;
bmi.bmiHeader.biBitCount = 16;//1 pixcel あたりのBit数
// Create a bitmap for the font
hbmBitmap = CreateDIBSection( hDC, &bmi, DIB_RGB_COLORS,( void** )&pBitmapBits, NULL, 0 );


これでメモリの中にDIBが作成されます。
先ほどからGetPixcel 関数の話が出ているので書き込みました。

画像を扱う場合は一気に転送がセオリーだと思います。
もし既出であればスレ汚しすみません
0326親父PG
04/04/27 23:02ID:6oVtyqti
>>324
ttp://www.realdigital.co.jp/densi2/
032798
04/04/28 21:34ID:/L+BRof0
>>326
ありがとうございます。見てみます。
0328名前は開発中のものです。
04/04/29 09:25ID:fKr8I6Zs
hoshu
032998
04/04/29 20:54ID:eFo7PbpH
三角形を、押したキーに応じてX,Y,Z軸について回転するところまでできました。

著作権とかよく分からないんですが、ほとんどサンプルの元の状態から変わってないんですが、
ソース公開しても大丈夫なんでしょうか?
0330245
04/05/02 11:03ID:OAzbaBIZ
誰が書いてもほとんど同じになるような短いコードだし、
適当に改造しときゃ大丈夫じゃないですかね。コメントけしたり。
もちろん責任はもてませんが。
0331名前は開発中のものです。
04/05/26 09:52ID:ZkbU9bqo
とまっちゃったよ?
033398
04/06/01 00:42ID:51ZpkQEi
別のスレでゲーム作ってるのでこのスレは卒業します。
サイトも適当につぶしておきます。
0334名前は開発中のものです。
04/06/01 18:51ID:TjtQoeyw
98の卒業祝いあげ
0337尿 ◆TQRzkzBQz6
04/06/02 16:39ID:G5yOjIbE
.
0338名前は開発中のものです。
04/07/15 22:01ID:X+w0MHvL
新入生募集上げ
0339新入生
04/07/16 15:46ID:rveJEKqt
オレが応募します。
7月22日から開始します。
0340245
04/07/16 16:23ID:+XSBeZ7m
ヒロシです。俺だけジャージの色が違います。
ヒロシです。みんな俺のことをさん付けで呼びます。
0342新入生2
04/07/28 14:45ID:5jDkoPBH
俺も応募していいですか?
C/C++とWINDOWS APIでRPG作りたいです。
0343新入生2
04/07/29 15:33ID:+VMuaX4q
へんじがないただのしかばねのようだ・・・

んじゃ勝手に居座らせてもらいます。
とりあえず98氏のサイトで勉強してみます。

(´-`).。oO(人来ないかなぁ…)
0345新入生2
04/07/30 10:12ID:zk8Gdi3K
良かった。見てる人いたのか。

では、まだそんなレベルまで行ってないんですが質問させて下さい。
マルチスレッドはRPG製作に使いますか(使った方が良いですか)?
そこの辺りはチョットしか勉強していないので…
0348新入生2
04/07/30 11:43ID:zk8Gdi3K
そうですか。じゃあマルチスレッドの勉強はまた今度にします。
0349新入生2
04/07/31 11:36ID:ypOdEBQi
DIB訳分からん
0350新入生2
04/07/31 15:36ID:ypOdEBQi
すいません。DIBのところで質問させて下さい。
ttp://www.sm.rim.or.jp/~shishido/savebmp.html
では、バッファの1ラインの長さの計算に
if ((dwWidth*3) % 4==0) 〜という式を使ってますが、
ttp://www.sm.rim.or.jp/~shishido/dib24.html
では、if (iWidth % 4 == 0) 〜になっています。
この違いは何でしょうか?
0351新入生2
04/07/31 15:40ID:ypOdEBQi
すいません。自己解決しました
0352名前は開発中のものです。
04/07/31 19:47ID:YZJtdaLG
自己解決したら、内容を書いてくれると、後々の人のためになりますよ
# というか、自分の質問に責任もって下さい!
0353新入生2
04/07/31 22:58ID:ypOdEBQi
>自己解決したら、内容を書いてくれると、後々の人のためになりますよ
上はビットマップの横の長さが4の倍数か見てて
下は横一列のバイト数が4の倍数か見てるんではないかと。
間違ってますか?

>というか、自分の質問に責任もって下さい!
結構悩んだので質問したんですが、その直後閃いたというか何というか…申し訳ない
0354新入生2
04/07/31 23:01ID:ypOdEBQi
>上はビットマップの横の長さが4の倍数か見てて
>下は横一列のバイト数が4の倍数か見てるんではないかと。

逆だった…_| ̄|○

下はビットマップの横の長さが4の倍数か見てて
上は横一列のバイト数が4の倍数か見てるんではないかと。

です。ほんとごめんなさい。まじでごめんなさい。
0355練習帳著者
04/08/01 11:09ID:b9uMxnzb
>>345
>マルチスレッドはRPG製作に使いますか(使った方が良いですか)?

今、マルチスレッド(メインスレッドの他にゲーム処理用スレッドを
もつ)でRPGを作っていますが、あちこちにメッセージポンプを仕込む
必要がなくなってなかなか良い感じかも。スレッド別に処理を明確に
切り分けられるのなら、マルチスレッド化する、という道もあるでしょ
うね。
ただ、これまでスレッドを使ったことがないのなら、RPGを作るために
わざわざスレッドを覚える、という必要はないと思いますが。

>>350-354
>この違いは何でしょうか?

深い意味はありません(^^;。
どっちでも同じなので。

>下はビットマップの横の長さが4の倍数か見てて
>上は横一列のバイト数が4の倍数か見てるんではないかと。

そうですね。
ビットマップの横幅が4の倍数であるか、と24ビットDIBピクセル列
の横幅が4の倍数であるか、は結果的には同じ(n % 4が0ならば、
(n * 3) % 4も0)なので、プログラムではn % 4 == 0で判定した方
がすっきりするでしょうけど。

私も以前は「ピクセル列の横幅を4の倍数に合わせる」意味を明確
にするためにiWidth * 3という書き方をしていた面もありますが・・。
0356新入生2
04/08/01 11:38ID:gbRGZbfr
著者さん、わざわざレスありがとうございます。
サイトの方、いつも参考にさせて頂いてます。
この場を借りて感謝
0357名前は開発中のものです。
04/08/06 15:31ID:vsNkeVch
夏季講習上げ
0358新入生2
04/08/06 16:43ID:jaMpxEea
今、98氏のソースを見て勉強しているのですが、「NPC実装」のプログラム
ttp://www.geocities.co.jp/SiliconValley-Bay/2736/zz82.txt
をコピペして実行するとプログラム終了時に
Rum-Time Check Failure #3 - The variable 'lpDIB' is being used without being defined.
というエラーが出てしまいます。

一方、氏の「NPC実装 のEXE 」
ttp://www.geocities.co.jp/SiliconValley-Bay/2736/rpg_a6.zip
を実行しても終了時にエラーが出ません。
何故でしょうか?教えてください。

環境はWindowsXP、Visual C++ .NETです。
0361名前は開発中のものです。
04/08/14 14:03ID:6/dV8pRa
無料でRPGツクール作れるようになりたいんですが、どうすればよいんですか?
0364245
04/08/22 00:11ID:Em5qF6oY
P2Pの適当なチャットができるようになったけど今一理解が怪しい。
現在はIME制御クラスを製作中。
標準コントロール貼り付けるのは何かダサいし。
これが完成したら、もっとクラスの理解を深めたいので
自作ウィンドウのクラスでも作ってみたいと思っているけど
今の段階ではどうやって作ればいいか全く見当もつきません。
0365245
04/08/23 18:15ID:GI7MfX74
IMEもそこそこできてきた。練習に3Dで
見下ろし視点のボンバーマンでも作ってみようかな。。。
0366名前は開発中のものです。
05/01/06 14:46:34ID:TOA2E2ip
新年上げ
0367名前は開発中のものです。
05/01/06 16:08:43ID:bcRDIiW3
1はどこいった
0368名前は開発中のものです。
05/01/23 00:12:12ID:CdrNb8aJ
1は使命を成し遂げ平和に暮らしましたとさ
0371名前は開発中のものです。
05/03/05 04:20:35ID:lOW9T/w5
ttp://www.geocities.co.jp/SiliconValley-Bay/2736/a2.txt
をクラス化して戦闘を付けてみた
改造大歓迎

ttp://gamdev.hp.infoseek.co.jp/cgi-bin/up/No_0050zip.html
0374名前は開発中のものです。
2005/08/02(火) 18:28:41ID:cG1sgAYD
良スレ保守age
0375名前は開発中のものです。
2005/08/16(火) 20:45:04ID:/7e8XzCG
VC++とAPIでシミュレーションゲームを作ろうと思ってるんですが、
文章やデータなどをファイルから取り出す方法が分かりません。
セーブデータなどの作り方なども載ってるサイトとかってありませんか?
0376名前は開発中のものです。
2005/08/17(水) 16:58:26ID:fVmpEYfu
ふつうに関数用意されてるだろ。
C標準のつかうもよしAPIの使うもよし。
0380名前は開発中のものです。
2006/09/21(木) 22:06:07ID:A82GeSKk
NEETスレの1って、実はこのスレの1だったのかもな。
いや、ただスレタイが似てるなぁと思っただけなんだがな。
0382名前は開発中のものです。
2006/10/12(木) 20:48:12ID:ai4G0Iyz
俺様の出番か
0383名前は開発中のものです。
2007/03/27(火) 21:01:02ID:CibhAwPa
しさしぶり(←なぜか変換できない)に覗いてみたら、2年以上誰も進歩なしかよw
0386名前は開発中のものです。
2007/12/25(火) 10:41:17ID:JqjujtnB
――― そろそろ誰も見てなさそうなので再利用 ―――
開発環境 : VisualStudiam2005ExpressEdition(無料のやつ)
言語    : C++ あとWin32API、DirectX9.0

ブログでやろうかと思ったけどCSSに凝りそうで進まなさそうなのでとりあえずここで。

目標
・2000年頃のパソコンでギリギリ動く。
・ベクターにゲーム掲載される。
・余裕があったらMMOも作る。
0387名前は開発中のものです。
2007/12/25(火) 11:10:39ID:JqjujtnB
とりあえずは
1.DirectXのソースをコピーしてまるごとコンパイル
2.四角形表示
3.テクスチャを貼ってみる
4.マップを表示
  具体的には、Win32APIのみでのマップ描画のように、マップチップを並べてバックバッファへ描画→
          それをテクスチャとしてポリゴンに貼り付ける→ポリゴンを画面へ描画
5.アルファなんとかを駆使してマップ上に主人公を描画
6.完成!

マップの他に主人公も表示する必要があるから三角形のポリゴン4つでいいのかな。
DirectXを使う意味があるのかどうかよく分からないけど、これでいけそうな気がする。

イメージとしてはドラクエ1のようなものを2Dで。
0388名前は開発中のものです。
2007/12/25(火) 12:05:59ID:3Uuo4Sp0
はいはい晒しあげ
0389386
2007/12/26(水) 10:16:19ID:K6yg95nh
VS2005の設定に手こずったけど、四角形平面ポリゴンにテクスチャを貼るところまで成功。
ところが、作成した実行ファイルと画像ファイルをコピーして新しく作ったフォルダに詰めて、
ロダにあげるまえにテストで実行してみたところOSごと落ちた。

元のプロジェクトフォルダ内の実行フォルダでは何事もなく実行できるので、
詰めるファイルが足りないか、コピーのときに破損したんだろうけどよく分からない。
0390386
2007/12/27(木) 07:47:17ID:NmBq2Fip
「Win32APIを利用してビットマップ画像読み込み→そのままバックバッファへ描画→
 それをテクスチャとして四角形ポリゴンに貼り付ける」
をやろうとしてコンパイル通ったけど、実行するとOSごと落ちる・・・

直接ハードウェアをいじってるらしいし、ちょっとしたミスでパソコンがぶっこわれそうな気がする。
怖いのと、再起動が面倒でトライアンドエラーができない。
0391名前は開発中のものです。
2007/12/27(木) 09:16:01ID:OlW3667K
>>387
>イメージとしてはドラクエ1のようなものを2Dで

>DirectXを使う意味があるのかどうかよく分からないけど

ないだろw
まして「2000年頃のパソコンでギリギリ動く」なら素直にDIBSectionで作った方が良いんじゃ。
0392386
2007/12/27(木) 09:55:03ID:NmBq2Fip
DIBSectionを使ったのは前作ったので、本当は3Dをやりたかったんですけど
ブレンダーいじってみたら豆腐みたいなのしか作れなくて。しかも何か無駄に巨大に・・・

だから、とりあえずDirectXの使い方を覚える為に2Dをやろうかと思ってるんですが、
最初から3Dやったほうがいいですか?

DIBSectionの代わりにポリゴン使ってるだけだから、このままやってても、
DirectXはたいして使えるようにならないと薄々感じてきたんですが
0393386
2007/12/27(木) 11:56:09ID:NmBq2Fip
マップチップを並べた仮想のビットマップを作成できたので、テクスチャとして指定しようとしたけれど
D3DXCreateTextureFromFileの第二引数に指定するファイル名って何だろう。

(LPCSTR)HDC デバッグ時にエラー
(LPCSTR)HBITMAP デバッグ時にエラー
(LPCSTR)BITMAPINFO デバッグ時にエラー、そもそもLPBYTEとセットで使うようなものの気がする

マップチップを並べる→名前をつけて画像を保存→テクスチャとして呼び出し
ならできそうだけど、物凄く無駄な気がする。


前に悩んでたOSごと落ちるのは、ファイルがリンクされているのに存在しない場合に起こるっぽい。
デバッグモードで実行すればファイルがなくても落ちない。たぶん。
0394名前は開発中のものです。
2007/12/28(金) 10:34:47ID:69wdhqTg
仮想ビットマップのファイル名をどうしたらいいのか、何時間か調べても分からないから3Dでやることにした。
ブレンダー細かすぎて使いこなせないから六角大王ダウンロード中・・・

今後の予定は
1.かろうじて人間に見える仮モデル作成
2.作ったXファイルを読み込み
3.キー入力に応じてXファイルを動かす
4.マップ作成

こんな感じの予定だけど、2.まではなんとかいけそうな気がする。
でも、4.は結局2Dでのマップ作成と同じ問題が発生する気がする。
巨大なテクスチャを用意するか、テクスチャは貼らずにポリゴンに色をつけるなら何とかなりそうだけど
極端に重くなったり、見た目が酷かったりで、あまりいい方法ではなさそう。

StretchDIBitsのように、手軽にテクスチャを貼れる関数がDirectXにあればいいんだけど
DirectXについてきた取り扱い説明書を見ると、なさそう
0395名前は開発中のものです。
2007/12/29(土) 10:58:22ID:w6aUMf01
六角大王で人間作成→Xファイル化→DirectXを使ってウィンドウ上に表示 までできた。
といっても、サンプルのトラの表示プログラムのファイル名の部分だけを書き換えただけでできたのであまり進んでない。

ソース解読中だけど、未だになぜ読み込んだXファイルが回転してるのか分からない。
その部分が解明できたら、キー入力を取得してキャラクターが動かせるようになるはず。
Win32APIのキー入力取得でも十分なスピードだったように思うけど、DirectInputとかいうのは使ったほうがいいんだろうか。
0396386
2007/12/30(日) 08:14:15ID:Ao/gU877
できた!
イケメン主人公が海を移動するゲーム。
移動は矢印キーで。

http://gamdev.org/up/img/10830.zip
なんか卑猥な形になってしまったけど、頭と体のつもり・・・

あと、ソースあげようとしたけどアップローダーが.txtに対応してなくて、.zipにするの面倒なので、
添削してくれる人もしくはこれからやる人でソース見たい人などが来たら.zipであげます。


次はマップを表示させて、マップを動かしたいところだけど、2Dでさえ挫折したから厳しそう。
どうやればいいんだろう・・・
0397386
2007/12/30(日) 11:11:46ID:Ao/gU877
>515 名前:デフォルトの名無しさん :2006/09/02(土) 15:06:39
> なんか最近無理やり2Dゲーム作ろうとしてるボーヤが
> こことかゲーム製作技術板にも一定数いるみたいだな。
> なんでそんな無駄なことしてるのか一体どんなゲーム目指してるのか一度聞いてみてぇ。

> マップチップで作りたいとかもう時代じゃねぇんだよ。
> 色んなリソース食い潰した挙句そんなショボイもん作ってどうするのかと。
> DirectXのスプライト機能なんて板ポリちゃうんかとあのクラスなにか恩恵あるのかと。
> お前、どこまで脳みそ無いのかと。

ぐぐったらこんなレスが・・・
フィールドも3Dで作るとして、ポリゴンは巨大なものが必要だろうし、マップチップ形式ではないテクスチャも
やたら巨大になりそうなんだけど、そんな巨大なデータを読み込めるんだろうか。

大量の小部屋をゾーン移動で繋ぐっていう方式が現実的なんだろうけど、できれば世界中をシームレスにしたい。

今後の目標
1. 複雑なポリゴンにテクスチャを貼れるようにする
2. フィールドを作る(六角大王だと左右対称なポリゴンしか作れないから、別のソフトを使わなければいけないかも?)
3. キー移動でフィールドを探検できるようにする
4. フィールドの壁との衝突判定を実装する(やり方が今のところ想像もできない)

3Dになったので、ドラクエ1ではなくFF10を目指していくことにした。
0398386
2008/01/05(土) 10:23:50ID:WUxcFY2t
フィールドのXファイルを作成→キー移動で探検できるようにする
までできた。

でも、ポリゴンに直に色をつけているせいか、グラフィックが余りにも酷い。
衝突判定は未だに分からない。
2Dと違って、高さまで考えなきゃいけない。
(考えなくてもできるんだろうけど、見た目3Dでも実質2Dな、自由度が少ないゲームになりそう。)
0399386
2008/01/06(日) 08:19:19ID:pBxWQ+R5
DirectXライブラリっていうのかな?
それを使えば地面との衝突判定ができそうな気がしてきた。
平面方向の衝突判定は、もし分からなくても2Dの手法を利用すればいいので、
これで何とかゲームを作れる目処は立った。たぶん。

今後の目標
1.地面・キャラクターの2つのXファイルを読み込む
2.キャラクターのみ、地面との衝突判定をする

あと、今、移動はポリゴンの座標を直にいじっているけど、これは後々困りそう。
以前2Dのゲームを作ったときに、NPCの移動が不自然になった原因はこのへんにあると思う。
0400386
2008/01/09(水) 02:15:31ID:IiHzyuIz
Xファイルを2つ読み込んで表示させることができない。
単純に変数や関数をもう一個ずつ作ればできると思っていたのに。

とりあえず、カメラは一個でいいはず。

それでもうまく表示されないので、最初に読み込んだXファイルを表示させている部分をコメントアウトしてみたところ、
後から読み込んだXファイルがうまく表示されない。一瞬、設定した色がチラッと見えるけど形は壊れている。
Xファイル自体は壊れていないので、読み込んだときにおかしくなっているっぽい。
でも、原因は全く分からない。

また、コメントアウトしない場合。
Xファイル1とXファイル2を交互に表示させているみたいで、チラつく。
0401386
2008/01/10(木) 02:53:17ID:jWaFTQp7
あーーーー、なんとなくわかってきたかも
Xファイル2つを読み込んで表示させることができないので、
Xファイル一つをロードしてそれを二箇所に表示してみたら成功。

ここから分かったのは、ファイルが壊れているわけでもないし
読み込んだ内容がぶっ壊れているわけでもないってこと。

これで2つ以上のXファイルを表示させる目処はついた。
ただ、C++がかなり理解不足で、Xファイルの量が増えれば増えるほど
ソースが膨らんでいきそうなのが・・・・
0402386
2008/01/13(日) 14:03:34ID:rjCuuKZH
二つのXファイルを読み込んで、画面上に描画することはできた。
でも、交互に描画されてしまって全くゲームにならない。

http://gamdev.org/up/img/10934.zip
解凍passはrpg
ソース同梱。

どうも、画面が上書きされているから、バックバッファが二つあることが問題なんだと思うけど、
じゃあどこを直せばいいのかと言われると全く分からない。
ネットを探しても、このへんのサンプルは全く転がってない。
0403386
2008/01/14(月) 13:07:09ID:QzHbXI7e
抽象的な概念から、初歩的な解説までしてくれるサイトがやっと見つかった・・・
もうちょっと読んでみて、分かりやすかったらリンクをはろうと思う。
0404386
2008/01/14(月) 13:15:33ID:QzHbXI7e
あ、あと>>402でアップした実行ファイルの画面を最大化すると、超高速でバックバッファが切り替わるおかげで
アルファブレンドチックな画面になった。どうしても1画面に二つのXファイルを表示できなかったら、
これに当たり判定をつけて無理やりゲームと言い張るのもありかと思った。
0406386
2008/01/24(木) 22:17:53ID:2+Rk1QvE
ちょっとたてこんでてあと一週間くらいいじれなさそう。
概念はなんとなく分かってきたけど、一画面に複数のXファイルを表示させるには
具体的にどうするかっていうのがまだ見えてこない。
0407386
2008/02/08(金) 17:27:02ID:DRfbqbjc
二つのXファイルを表示させるところまでできた。
概念としては2Dのときと変わらず、バックバッファにガンガン上書きして
最終的に画面へポン!という感じぽい。

前回まではマップのポリゴンを直に動かしていたけど、3D的にはキャラクターとカメラを動かしたほうがいいっぽいので
当たり判定をつける前にそっちをやろうと思う。

今後の目標
1.キー入力に応じてカメラを動かす
2.重力落下の計算みたいなのさせる
3.地面との当たり判定をつけ、接触したら落下を停止する

横方向の当たり判定は無視して、とりあえずこんな感じで進めていこうと思う。
ソースが管理しきれなくなってきたのでブログをそろそろ作りたいけど
ブログの名前が思い浮かばなくてやる気が出ない。
UPするファイル量が膨大になりそうなんだけど、アップロードできるファイル量が多い無料サーバーってどこがいいんだろう

あと、座標管理はどうしたらいいのか、誰か教えてください。何をどうしたらいいのかぜんぜんわからない。
0408386
2008/02/09(土) 02:28:33ID:Bqtd2akd
グーグルでブログ作ったけどファイルアップロードの方法が見つからない・・・
昔の日付で書くこともできなさそうだし微妙だったかも・・・でも眠いから終了
0410386
2008/02/09(土) 16:02:28ID:wWCVG7UW
そうなんですか・・・

とりあえず調べた結果
グーグル、fc2、livedoor、cocolog、忍者、biglobeのblog、yahooブログ
全部.zipのアップロード無理みたい

cgiを使えばブログみたいなことできそうだから、ブログじゃなくてレンタルサーバーを探してみよう・・
cgiの使い方わかんないけど・・
0411名前は開発中のものです。
2008/02/10(日) 02:19:14ID:8dobcs2x
>>410
ブログなんか今時インスコして運用するもんじゃない。メンテ面倒になるのが落ち
fc2とかのブログサービスを借りて、
zip配布用にレンタルサーバーでも借りるのが賢いやり方かと
0412名前は開発中のものです。
2008/02/10(日) 20:09:34ID:AVY8OLS0
つうか鯖借りるならブロゲやる必要自体無くね?
作品公開サイトなんてzipのダウンロードと日記を兼ねた進捗報告ページくらいありゃ事足りるんだし
HTMLなんざメモ帳に手打ちで充分なレベルだろ?ブログCGIにアクセスして更新すんのとさして労力も変わらんだろ

そんなつまんねーことに頭悩ますより好きな作品創りに力注ごうぜ?

0413386
2008/02/10(日) 20:55:23ID:l4DKKDk1
無料のレンタルサーバー調べてみたけど、審査が面倒だったり倉庫利用ができなかったりで微妙でした。
それで、だめもとでseesaaaでブログを借りたらヘルプには書いてなかったけど.zipが使えました。

普通のホームページ形式にしようかとも思ったんですが、検索サイトでほとんどヒットしないイメージがあるんですよ。
理由はよく分からないけど。
あと、以前大量にページを作ってたらどれがどのページが分からなくなってしまって管理ができなくなったので
0415名前は開発中のものです。
2008/02/11(月) 07:05:53ID:yTlwlA03
> 386 名前: 名前は開発中のものです。 [sage] 投稿日: 2007/12/25(火) 10:41:17 ID:JqjujtnB
一ヶ月半でまだブログだのWEBサイトだので悩んでるのかよwww
作る気ないだろwってかお前じゃ無理www
0416386
2008/02/11(月) 10:44:14ID:GCHAgDxM
うーん・・やっぱりよく分かってない。

オブジェクト一個につき一つのカメラを用意し、撮影して二次元にした後、二次元空間にZバッファ順に描画していくのか、
それとも3D空間のワールド座標にオブジェクトを全て配置した後、一つのカメラで二次元に投影するのか。

普通に考えたら後者が自然な気がするけど、今はなぜかカメラが2個ある・・・
根本的にどこかが間違ってる気がする
0417386
2008/02/11(月) 11:06:18ID:GCHAgDxM
お。あっさり自己解決しました。
0418386
2008/02/13(水) 22:42:40ID:za4GiWvx
>>407達成。
Shiftキーでジャンプ、カーソルキーで移動。やっとゲームっぽくなってきた。
実行ファイル
http://mmodev.up.seesaa.net/image/b2e.zip
ソース
http://mmodev.up.seesaa.net/image/b2e.txt

今後の目標
1.横方向での当たり判定
2.ゲーム用座標設定
3.見た目をきれいに

市販のゲームではありえないくらい画面がカクカクしている。
別に荒く作った覚えはないのに意味が分からない。

座標は、2Dのときはピクセルを単位の基準としていたけど(32ピクセルで1マスとか)
今回はポリゴンとカメラをいじるときの0.0fっていうのを基準にすればいけそう。

横方向の当たり判定だけど、建物の中心の座標が分からないのでどうしたらいいのか

あと、ソースをVS205で見たときはタブできちんと行の先頭が揃ってたのに、メモ帳で見るとズレてるのは何だろう・・・
0419386
2008/02/14(木) 19:42:16ID:pSsqRNS4
あ、閃いた。
進行方向へレイを飛ばしてメッシュとの当たり判定をすればいいだけか!
なんか難しく考えすぎていたかも。
0421386
2008/02/15(金) 21:30:12ID:3FV8glr2
>>420
まだあんまり書いてないけどここです。http://mmodev.seesaa.net/
ファイル2Gまで置けるのはいいけど、重いし広告が多くて微妙

今の移動方式だとFF10のような2.5Dなゲームにしかならなさそう。
キー入力による移動先とワールド座標が固定されているため、視点移動ができないから。
視点が変わっても↑キーを押したら画面の奥へ進んで行かせたいけど、どうしたらいいのか分からない。
0422386
2008/02/15(金) 23:08:34ID:3FV8glr2
FPSみたいな移動方式ならFPS・格ゲ・MMORPGなど、いろいろ流用が効く気がする。
でも、WASDで移動はいいとして視点移動のキーや動かし方がどうなっているのか、FPSをやったことがないのでよく分からない。
0423名前は開発中のものです。
2008/02/17(日) 01:32:56ID:hrNIpN4n
一般的なFPSだとWとSで前進&後退、AとDで左右へカニ歩き、視界はマウスで制御してコレが進行方向(&射撃方向)に連動って感じかな
マウス使わないDOS時代のヤツとか視界と進行しないタイプ(戦車ゲーとか)なんかだとQとEに左右旋回が割り当てられてたりもするね(カニ歩きとは別に)
操作を単純にしたければWとSで前進&後退、AとDで左右旋回だけ(カニ歩きは無し)でもいいかもね
キャラの移動についてはキー入力で直接座標を増減させるんじゃなくて、
キャラの進行方向をべクトルで持たせておいて、べクトルの各成分に応じてキャラの座標を増減させればいいんでない?
そんでカメラを固定すればバイオハザードみたいな操作感になるし、べクトルの旋回に合わせてカメラも回り込ませれば>>421で言ってる様な状態になるよ
加えてキャラの位置にカメラを置けばFPS風表示の出来上がり、と
あとは三人称視点ならキャラは前後左右の4方向移動(別に8方向でもいいけど)で、それとは別にカメラ回転キーを割り当てるとか
この場合はカメラの向きからべクトル生成してワールド座標上のキャラ位置の増減に反映させるワケね
これだと場所によってカメラ回転を禁止したり制限したりしてもプレイヤーが操作に戸惑いにくいので割とオススメw
0424名前は開発中のものです。
2008/02/17(日) 01:36:41ID:hrNIpN4n
あ、ごめん、ちょっと抜けた
>視界と進行しないタイプ
は、視界と進行方向が連動しないタイプ、ね
0425386
2008/02/17(日) 15:40:08ID:m9cs8RL8
べ、べくとる・・・
ちょっとよく分からないので調べてみます。
0426386
2008/02/18(月) 22:29:41ID:yEKh3+K1
だめだ全然分からない。3回目くらいの壁かも
とりあえずできたところまでまとめ

・構造体を使ってキャラクターとカメラの座標・進行方向をまとめる→できた
・進行方向をベクトルで表す→(0,1,0)とかで表すと思うけど、その数字の取得方法・使用方法が分からない
・キーが押されたらカメラを回転させる→
     カメラ.方向.x = cos(3.14*2*30/360);
     カメラ.方向.y = cos(3.14*2*30/360);
 とやってるけど、ピクッとしかカメラが動かない。+=にすると動きが明らかにおかしいし。
 たぶんこれが方向ベクトルだと思うんだけど。

キャラクターも回転させなければいけないし、とか考えてたら混乱してきた
0427名前は開発中のものです。
2008/02/19(火) 01:30:15ID:mFUUBIv+
えーと、カメラ回転させるならまずカメラの方向を放り込んでおく変数を一個作んないとね
0〜255までの単精度整数とかで充分、デフォルトが0で、256で一回りね
ここでは便宜上cam_rとでもしとこうか。勿論構造体ん中に組み込んじゃってもおkだけど
で、このcam_rをカメラ回転キーが押されたらテキトーに増減させるワケよ
そんで描画する際のカメラ位置を
( myx+5.0f*sin(6.28*cam_r/256), myy+5.0f, myz-5.0f*cos(6.28*cam_r/256) )
てな感じでカメラ方向のsinからx位置、同じくcosからz位置を求めれば良し
見る場所についても考え方は基本的におんなじ
キャラを挟んでカメラのちょうど反対側になるのでプラマイ逆転させるだけ
これで取り敢えずカメラは回転できるようになるハズ
キヤラ移動方向の連動を考えるのはここまでできてからでも遅くないとオモ
0428386
2008/02/19(火) 23:36:04ID:lcDwM3j2
>>427
できました!ありがとうございます!
ついでに向いた方向への移動と、キャラクターの回転と横の当たり判定までできました!

ソース
http://mmodev.up.seesaa.net/image/b2f.txt
実行ファイル
http://mmodev.up.seesaa.net/image/b2f.zip
Wで前進、Sで後退、A,Dで方向転換

なんかプログラミングしているというより、数学をやっているような感じ
ベクトルがよく分からなくてsin、cosでプログラムを書いた。
それっぽく動いてるけどベクトルは分かってない。

今後の目標
・NPC実装
・当たり判定をもう少し丁寧に
・ソースが酷いことになってきたので綺麗に
0429386
2008/02/19(火) 23:57:18ID:lcDwM3j2
マウスで視点を動かす機能を忘れてた。

建物の角をかすめるように進んでから建物の中心へ方向転換すると完全に建物の内部へ侵入してしまって、
建物内部にいる場合は後退処理してるせいで、前進しているはずなのに長距離後退してしまう現象があるようなないような

市販のゲームでも壁へ向かって進むと小刻みに振動するから、この処理で基本的に間違ってないような気がするんだけど
0430386
2008/02/20(水) 23:48:31ID:MXWL13K2
なんで3Dなのに、こんなのっぺりしてるんだろ

とりあえず敵のモデリング終了。後は
・敵を配置
・敵に攻撃できるようにする
・メッシュのアニメーション
・体力を設定する
これでとりあえずゲームとしては完成する・・・のかなたぶん
何のゲームだかよく分からないけど
0431386
2008/02/21(木) 19:44:11ID:LLXKH3i1
メタセコイアの設定変えたらのっぺり解消したかも。

ネトゲのファイルを開いたりすると、Xファイルなんてカケラも見当たらないんだけど
こういうデータ隠蔽技術?みたいなのはどうやってるんですか?
0432名前は開発中のものです。
2008/02/22(金) 02:08:21ID:Xr90hKPe
・単純に拡張子を偽装
 単にファイルの拡張子を書き替えただけなのでメモ帳とかに放り込まれるとモロバレ
 .xでなくてもファイル読み込む時に拡張子までちゃんと指定してやればX形式のデータとして問題無く使えるハズ

・圧縮ファイルに詰め込んで拡張子を偽装
 独自形式で圧縮してる場合もあるかも知らんけど只のzipだったりすることもあるので取り敢えずバイナリエディタでヘッダ確認すべし
 自分でやるなら一旦テンポラリに展開するか直接メモリに読み込むかしてくれるライブラリをどっかから拾ってくれはいいんじょない?

・プログラムファイル内に埋め込み
 画像とかならアングラ系のツールで無理矢理吸い出すヤツがあるけどX形式のデータに対応してるのってあんのかな?
 ゴメン具体的なやり方も知らない、つうか実はC使っとらんのよw
 多分リンカでEXEファイルに埋め込むリソースをコード中で指定する方法がなんかあるんだろうと思うんだけどね
 ま、気になるなら自分でテキトーに調べて(ひでぇ

大体こんな感じじゃないかなぁ
0433386
2008/02/22(金) 19:59:07ID:zT5RyBhC
>プログラムファイル内に埋め込み
これが簡単でそれなりに効果ありそう
WIN32API使って画像ファイルをリソースに埋め込む方法でやればいいんですよね。
0434名前は開発中のものです。
2008/02/23(土) 08:26:31ID:2ON6i3e2
市販ゲームの多くは、

> ・圧縮ファイルに詰め込んで拡張子を偽装

だな。
解凍されたくないひとが多いだろうから、
独自形式だろうけど。
0435名前は開発中のものです。
2008/02/23(土) 08:27:21ID:2ON6i3e2
> ・単純に拡張子を偽装
これも昔あった、エロゲでw
.ampっていうのが単なる.bmpだったときが
0436386
2008/02/23(土) 22:16:17ID:bz4ZlXXd
圧縮ファイルに詰め込むのって、解凍ソフトを作れるくらいの高度な技術が必要そうだから自分には無理かも・・・
0437名前は開発中のものです。
2008/02/24(日) 05:49:46ID:ZSvVUvU+
>>436
いや、全然簡単。誰でもできるよ
圧縮ファイルっていっても、自分で使うことだけを考えればいい。

ようは、「圧縮されたファイル」を「1つにまとめる」ようにすればよいだけなんだ。

「1つのファイル」のするのは、オレオレ形式でいいんだ。
A, B, C, Dってファイルがあるとすると、

------ファイル-------
適当な識別のための印("OREOREASSYUKU"とか)、
形式のバージョン番号(互換性のため用意"0.1.0"とか)、
ファイル数(ABCDだから、この場合4)、
Aの位置、Aのサイズ、
Bの位置、Bのサイズ、
Cの位置、Bのサイズ、
Dの位置、Dのサイズ、
Aの中身、
Bの中身、
Cの中身、
Dの中身
---------------------
って感じのファイル構造をつくればいいだけ。
0438437
2008/02/24(日) 05:50:11ID:ZSvVUvU+
ながすぎた。
>>436への返信続き

さて、「圧縮されたファイル」だけど、
これは、面倒ならライブラリの zlib でも使えばいいだけ、
上の例でいえば、「Aの中身」「Bの中身」「Cの中身」「Dの中身」を
出力するときに、zlibを通すだけでいいんだ。

どうしても暗号化したいなら、 zlibかましたのを適当にいじくる

あと、極端な話、場合によっては圧縮すらしなくてもいい。
例えば、画像ファイルなら、まーPNGとか大概すでに圧縮されているだろうから、
再度の圧縮の意味はないよね。

解凍ソフトっていうとレベルが高い気がするが、
適当に「圧縮されたファイル」を「1つにまとめる」ツールをでっち上げるのと、
本体にそれの逆をやる処理を入れるだけだよ。
0439437
2008/02/24(日) 05:52:04ID:ZSvVUvU+
>>437の構造間違っている orz

> Cの位置、Bのサイズ、
Cの位置、Cのサイズ、

な。

あと、なんで、>>437の構造でいいかっていうのは、
「Aの中身」「Bの中身」「Cの中身」「Dの中身」を
最低限、読み込み時に取り出せる構造だから。
実際にやってみるといいよ。

一回作れば、次からは使いまわせる部分だし
0440437
2008/02/24(日) 05:58:15ID:ZSvVUvU+
>>437ができて、
もっと便利にしたければ、後々拡張していけばいいんだ。

例えば、
> Aの位置、Aのサイズ、
以外に

Aの位置、Aのサイズ、
Aのハッシュ(Aの中身が合っているか調べるため)、
Aの形式(圧縮されているか、圧縮されていないか、など)、

などを追加してもいいね。
「形式のバージョン番号」を> >437 に含めたのには、
上のように拡張しても、バージョンで場合分けすれば前の形式も読めるから。

でも、こういう応用はは、>>437-438ができてからでいい、
はっきりいって別にいらない処理でもある
0441386
2008/02/24(日) 17:53:35ID:CFcqCEJR
APIを使ってXファイルのサイズを取得

テキストファイルAに書き込む。ついでにXファイルAの中身(メッシュの実体?)も同じテキストファイルにコピペする。

同じように、テキストファイルAにXファイルBの中身もコピペする。

これをXファイルの数だけ繰り返す。

位置っていうのが分からないですが、こんな感じですか?
読み込みが難しそう
0442386
2008/02/24(日) 20:36:27ID:CFcqCEJR
アニメーションのデータ作るのが難しい。
ボーンというのを仕込まなければいけないらしいけど、素のメタセコイアではできないっぽい。
Blenderならできるみたいだけど、Xファイルもメタセコイアの.mqoも読み込めないから一から作り直しっぽいし
0443437
2008/02/24(日) 22:53:27ID:ZSvVUvU+
>>441
基本はそう。
ファイルの中身のコピペの他に、各種情報を入れたヘッダーがいるわけ

アーカイブ内の生データの位置がわかんないと、読み込み時に任意のほしいファイルが読み込めない。
あと、テキストファイルかどうかは全く関係がない。
基本何でもつっこむので、バイナリで考える。

ちなみに、言語のライブラリにあるであろう、ストリーム入出力などを使うと、
後の拡張(例えば圧縮をかませたり)がしやすい。
0444437
2008/02/24(日) 22:56:37ID:ZSvVUvU+
どうしても面倒なら、最初に自分でいっていたように、
zip書庫が扱えるライブラリを使うのも手。
もちろんライセンスが許す場合と、zip対応ソフトで解凍されてもいいって条件つきだが。

最近は、実は中身はzipで、解凍ソフトに放り込むと解凍できてしまうソフトのデータもある。
まあゲームでは見かけないが
0445386
2008/02/24(日) 23:59:48ID:CFcqCEJR
zlib以外はなんとなく分かってきました。
位置は[xfile1]とかをXファイルのバイナリの前に書いておいて、ゲームでXファイルを使うときは[xfile1]を文字列検索して
ファイルの大きさぶんだけ読み込めばできそうな感じがします。
zlibの圧縮ですが、解凍って結構時間がかかった気がするんですが、使うたびに解凍するんですか?
0446名前は開発中のものです。
2008/02/25(月) 01:17:53ID:ApwqjhCk
このスレみたいな使い方ならmaglog(vector)がいいぞ
もともとそういう使い方想定してるし
0447名前は開発中のものです。
2008/02/25(月) 14:18:43ID:rV9I0vHw
>>442
メタセコイアでも辺の作成で点と線を作成できるぞ。
rokdeboneでつなげてボーン作成してXファイル出力。
hgimg3で出力するとXファイルは、なぜか真っ暗になってしまうけど。
0448386
2008/02/26(火) 18:05:51ID:wIVnnbz8
>>446
これよさそうですね。時間できたら引っ越してみます。

>>447
HGIMG3が何かよく分からないですけどRokdeBoneでアニメーションファイルたぶん作れました。
再生の方法が分からないので、本当にできているかが謎ですが。

とりあえず今までのとは別のアプリとして、暗号化?したXファイルから読み込んだデータを
アニメーションさせたいけどかなり時間がかかりそう
0449386
2008/02/27(水) 22:46:13ID:GnjCwVFI
アニメーション全然分からないなぁ・・・
SDKのサンプルはなぜかコンパイル通らないし、ファイル分割されてると読めない
関数一つで手軽にXファイルからロードできるような物じゃないってところだけは分かった。
0450名前は開発中のものです。
2008/02/28(木) 15:42:10ID:DJkYNGGC
SDKには付属のXファイルビューワーがあったような。
0451437
2008/03/01(土) 17:07:45ID:ESvEWD62
>>445
だからテキストは関係ねえつったら何度わかるんだw
文字列検索も関係ねえ。

最終的にテキストで扱いたいなら、最後にテキストにするだけ
バイナリファイルは扱ったことない?
0452386
2008/03/01(土) 22:12:39ID:lYAsHlKu
>>450
使ってみたら動き出したので、アニメーションつきXファイル自体は作成できているみたいです。
でも、ビューワーのソースがC#しかないみたいで、ビューワーの仕組みが不明・・・
今はとりあえず某所のソースをコピペして、動くかどうか実験しようとしてます

>>451
Win32APIのファイルを扱う関数を使って、バイナリで入出力をしたことはあります。
でもバイナリを直に扱うというか、バイナリの仕組みとか分かってないです。
あ、NOPが1hzぶんSleepっていうのだけ知ってます
0453437
2008/03/02(日) 02:35:13ID:GhRRsOcA
世の中には、2つのファイルがある

テキストのファイルと、バイナリのファイルだ
テキスト以外はバイナリだと思ってもらってかまわん。

バイナリファイルは、
int(integer)の数字を書き込んだなら、32bitOSなら、32bit=4バイト書き込まれる。
実際にプログラムから書きこんで、バイナリエディタで見てみればわかる。
同様に、byteやfloatなども書き込んでみて、確認してみるとよい。

BMPや、PNG、JPGなどもこのように書きこまれており、バイナリファイル。

さて、上で「データの位置」と読んでいたのは、
バイナリファイルでのシーク位置のこと。
つまり、「データの位置」が128なら、128バイト目の一から読み込むということだ。
0454437
2008/03/02(日) 02:36:14ID:GhRRsOcA
> つまり、「データの位置」が128なら、128バイト目の一から読み込むということだ。

つまり、「データの位置」が128で、「データのサイズ」が64なら
128バイト目の位置から64バイトを読み込むということだ。
0455386
2008/03/02(日) 22:50:57ID:hDaW34Zb

使ったことないですけど、cの関数を使うんですか?
0456386
2008/03/02(日) 23:14:02ID:hDaW34Zb
いろんな所のスキンメッシュのサンプルをコピペしてるけど、未だにコンパイルすら通らない・・・
0457437
2008/03/03(月) 09:50:25ID:IZ1YtIpV
コンパイル通らないって・・・w

もう少しC/C++を勉強しろw
0458386
2008/03/04(火) 22:11:28ID:ZRfAoK2V
やっとコンパイルが通った
ソースをいじっていきたいところだけど、SDKを2006にしたらパソコンが低スペックなせいか重過ぎる
0459386
2008/03/05(水) 20:38:18ID:rNPfHgdy
なんかSDKをアップデートしたら付属サンプルのSkinnedMeshすら動かなくなった。諦めよう。
板ポリゴンに絵を張るところからやり直してみる
0460386
2008/03/05(水) 22:31:46ID:rNPfHgdy
べ・・・別にスキンメッシュが分からないからやめる訳じゃないんだからね!
低スペックでも動かなければ意味がないからやめるだけなんだからね!

で、以前どこかのゲーム紹介記事で見た、板ポリゴンにテクスチャを張って3D空間上で動かすってっていうのをやってみようと思う。
1.板ポリにテクスチャを貼る
2.貼るテクスチャを切り替えてアニメーション
物理計算や3Dマップは今まで作ってきた資産が使えるから1.2.ができればすぐにゲームが作れるようになる気がする
0461386
2008/03/10(月) 00:04:42ID:IBohNBCB
なかなか時間がとれない
とりあえず調べた所までまとめ

・テクスチャ張替えによる2Dアニメーションも、テンプレートやら何やらで結構難しいっぽい
・SkinnedMeshが再生できない件はフォント関連の不具合というかハードの性能不足?
 なので、そのへんをとっぱらえば再生できそうな予感。
・あと、Xファイルから読み込まずにポリゴンを作成するのは最初にやったからできるけど、
 その頂点情報をまとめて移動させたりすることができない。
 んで、しょうがないのでXファイルから読み込んでるけど、無駄が多い気がする。
0462386
2008/03/15(土) 07:00:19ID:/iXWye2P
解説サイト見ながらSkinnedMeshのフォント部分を取っぱらってみようかと思ったけど、
SDKのバージョンが違うせいか、ソースが全く変わってて全然解説になってない
というか、なんでSkinnedMeshのサンプルにわざわざシェーダー?とかいうのを使ってるんだ・・・
0463386
2008/03/20(木) 11:29:28ID:N8WhzwFo
おお・・・自力でフォントとっぱらってコンパイルして、再生成功した・・・長かった・・・

今まで一つのファイルにソースをべた書きしたことしかないので、SkinnedMeshのように
大量のファイルに分散して書く意味が分からない。

とりあえず、余分な機能を削って自分用ライブラリっぽいものにしていこうと思うけど
ファイルが複数に分散しているせいでバックアップがとれない状態なので、失敗したら後戻りができない
0464386
2008/03/24(月) 20:25:19ID:e7CsY/T1
SkinnedMeshサンプルのコードを30行くらい削減できた
SkinnedMesh.cpp以外の使わない.cppを切り離したいけど、複雑に絡み合っててどうしたらいいのか分からない
0465386
2008/04/06(日) 22:30:38ID:SvFmqoyX
タイムリミットが来たのでいったん終了
時間ができたら再開
0467名前は開発中のものです。
2009/03/10(火) 13:43:23ID:/hTRq8qR
                  マチクタビレタ〜
      ☆ チンチン〃   Λ_Λ   / ̄ ̄ ̄ ̄
        ヽ ___\(\・∀・) < 再開マダー?
マチクタビレタ〜 \_/⊂ ⊂_ )   \____
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |   マチクタビレタ〜
0469386
2009/11/09(月) 14:12:28ID:ov/osiZ3
休止している間に時代がDirectX11になっている件について
どうせ覚えるのに時間かかるから、再開するならDirectX11にしようと思うけど、
G33オンボードでDirectX11が動くのかかなり怪しい
0470名前は開発中のものです。
2012/09/19(水) 20:39:59.49ID:fSU5XGsf
これはアメリカのゲームです。1度やってみてください。
これは、たった3分でできるゲームです。試してみてください。 驚く結果をご覧いただけます。
このゲームを考えた本人は、メールを読んでからたった10分で願い事が
かなったそうです。このゲームは、おもしろく、かつ、あっと驚く結果を 貴方にもたらすでしょう。
約束してください。絶対に先を読まず、1行ずつ進む事。 たった3分ですから、ためす価値ありです。
まず、ペンと、紙をご用意下さい。 先を読むと、願い事が叶わなくなります。
@まず、1番から、11番まで、縦に数字を書いてください。
A1番と2番の横に好きな3〜7の数字をそれぞれお書き下さい。
B3番と7番の横に知っている人の名前をお書き下さい。(必ず、興味の
ある性別名前を書く事。男なら女の人、女なら男の人、ゲイなら同姓の名
前をかく)
必ず、1行ずつ進んでください。先を読むと、なにもかもなくなります。
C4,5,6番の横それぞれに、自分の知っている人の名前をお書き下さ
い。これは、家族の人でも知り合いや、友人、誰でも結構です。
まだ、先を見てはいけませんよ!!
D8、9、10、11番の横に、歌のタイトルをお書き下さい。
E最後にお願い事をして下さい。さて、ゲームの解説です。
1)このゲームの事を、2番に書いた数字の人に伝えて下さい。
2)3番に書いた人は貴方の愛する人です。
3)7番に書いた人は、好きだけれど叶わぬ恋の相手です。
4)4番に書いた人は、貴方がとても大切に思う人です。
5)5番に書いた人は、貴方の事をとても良く理解してくれる相手です。
6)6番に書いた人は、貴方に幸運をもたらしてくれる人です。
7)8番に書いた歌は、3番に書いた人を表す歌。
8)9番に書いた歌は、7番に書いた人を表す歌。
9)10番に書いた歌は、貴方の心の中を表す歌。
10)そして、11番に書いた歌は、貴方の人生を表す歌です。
この書き込みを読んでから、1時間以内に10個の掲示板にこの書き込みをコピーして貼って下さい。
そうすれば、あなたの願い事は叶うでしょう。もし、貼らなければ、願い事を逆のことが起こるでしょう。とても奇妙ですが当たってませんか?
0471名前は開発中のものです。
2012/09/19(水) 21:03:12.85ID:Cm+UcH7p
見てます
0474名前は開発中のものです。
2017/02/05(日) 08:28:15.25ID:JadSAIco
そうかそうか
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況