トップページgamedev
995コメント364KB

【初心者】スレを立てる前にココで質問を【Part19】

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものです。2009/03/11(水) 17:57:35ID:teoBVoN1
疑問に思うことがあれば、スレを立てずに、まずはココで質問。
スレッドを立てる前にはローカルルールを読みましょう。
http://pc11.2ch.net/gamedev/

>>980 を踏んだ人は次スレ立てをお願いします。
【アップローダ・避難所・Wiki】
ゲーム製作技術板公式Wiki
http://gamdev.org/w/

ゲーム製作技術板公式アップローダ
http://gamdev.org/up/

ゲーム製作技術板公式掲示板避難所
http://bbs.gamdev.org/gamedev/

ゲーム製作技術板予備
http://yy13.kakiko.com/gamdev/

アップローダー予備
http://gamdev.hp.infoseek.co.jp/

gamdev.orgが落ちるたびにあげてみるスレ
http://pc11.2ch.net/test/read.cgi/gamedev/1107022166/
0866名前は開発中のものです。2009/09/07(月) 13:18:41ID:IW0LH9qd
>>863
つってもじゃんけんゲームを1から一人で作れたら大抵のことはやっていけるよ
0867名前は開発中のものです。2009/09/07(月) 13:31:44ID:rK8sltrP
>>866
無理無理。
それはスケールしない。
規模が大きくなってくると挫折率が上がる。
0868名前は開発中のものです。2009/09/07(月) 13:51:54ID:IW0LH9qd
なるほどそうか
ありがとう
0869名前は開発中のものです。2009/09/07(月) 16:28:40ID:tyLY1tJ7
最近落書きに凝ってるが、プログラム組む方がセンスに因るところは少ないと思う。
そりゃ、オブジェクティブに考えたりするのにセンスは必要だけど。
0870名前は開発中のものです。2009/09/07(月) 16:55:50ID:fFXRoAN0
絵に比べて、文章やプログラムは「読んで違和感無い」=「バグなく動く」の水準以上だと
意識して経験を重ねていかないとなかなか綺麗にならない。
レベル差が見えにくいぶんやっかいだと思うが。
0871名前は開発中のものです。2009/09/07(月) 20:28:39ID:MIQkkzye
>>863
わかるなぁ
今の俺だorz

1から作り直せばいいのか手を加えれば良くなるのか
他人のコード眺めながら勉強してるよ
0872名前は開発中のものです。2009/09/07(月) 21:02:31ID:peLwVHNi
どこを改変してもオブジェクト間の独立性が保障される書き方をしようが、
どこか改変すると全体に波及して涙目になろうが、
プログラムは動けりゃ問題ないからな。
0873名前は開発中のものです。2009/09/07(月) 21:37:51ID:tF4347pm
そ〜いや、そ〜だな。
あやうく雑魚モンスターの描写処理を、複数のソースコードで書く所だったよ。
一つ書けば十分だな。まあ、その分メモリーを食うわけだが。
0874名前は開発中のものです。2009/09/07(月) 21:49:56ID:tF4347pm
メモリー1バイトは血の一滴に値する、なんて時代はもはや昔話だよな?
0875名前は開発中のものです。2009/09/07(月) 21:53:39ID:+mZZvUiC
たまごっちのようなワンチップCPUのゲームにはまだあるかもしれん。
少しでも安いチップ使うときは、メモリーを削って安くする。
0876名前は開発中のものです。2009/09/07(月) 23:11:00ID:4GKplaPw
俺の職場じゃダダ長いコードを書く者が優秀とされる。
後でそれをメンテするハメになろうものなら死ぬ。
0877名前は開発中のものです。2009/09/07(月) 23:30:14ID:bqtAfCvc
長いコードを書けない奴は短いコードも書けない

これは俺の名言
0878名前は開発中のものです。2009/09/07(月) 23:35:13ID:4GKplaPw
3000行で収まる機能を3万行で書くのは馬鹿
0879名前は開発中のものです。2009/09/07(月) 23:35:52ID:oyf9zMl6
SQLにしても後々メンテすることを考えて書かないと後で困るからなあ
処理をごちゃ混ぜにしてあるコードなんて製作者を1発でいいから殴らせろと言いたくなる


で、書いたのは数年前の俺だったりするんだが
0880名前は開発中のものです。2009/09/08(火) 00:00:08ID:B+fMayDa
常識を超えたコードあるもんなあ。VC++で組んでるのにオブジェクト化はおろか
構造化すらしていない。ボタンのハンドラにexit()を見つけた時は目を疑っちまった。
0881名前は開発中のものです。2009/09/08(火) 00:27:01ID:oUz6yDIY
なんたら相談室とかで
そういうものすごいコードの片鱗を垣間見れるな。
0882名前は開発中のものです。2009/09/08(火) 01:04:53ID:lPudf9Xw
RPGツクールのCM見付けた
http://www.youtube.com/watch?v=xkYujM0uU5o

色々とアレだな
0883名前は開発中のものです。2009/09/08(火) 01:29:22ID:tR4qipDA
>>864
例えばかりの積み重ねで、何が言いたいのかさっぱり分からない
0884名前は開発中のものです。2009/09/08(火) 04:31:23ID:6MhMNrx0
プログラミングはプログラミングで別のセンスを要求されるってだけだろ
書けない奴はとことん書けないぞ
書けたとしても上でレスされてるようにレベルが天と地程、例えばバグが出やすいとか
保守性が高いとか拡張性が高いとかあるし
絵ができてプログラムできない奴もいればその逆もいるだろ
どっちかがセンス要求されてどっちかが要求されないとかないと思うがなあ
0885名前は開発中のものです。2009/09/08(火) 15:56:16ID:DIMtCb55
質問以外のオナニー文ばっかりだな
0886名前は開発中のものです。2009/09/08(火) 17:37:49ID:05aNfmhI
>>885
まさにオナn(ry
0887名前は開発中のものです。2009/09/09(水) 00:22:36ID:M5M3VMoz
センスは必要だと思うが、動くだけなら糞コードでも動く

数年前のあるゲームの、PS2とCUBEへの移植でのマジ話

オリジナルコードで、1000行くらいの処理(もうコレだけでも関数化しろって感じなのに)
その全く同じ処理でパラメータ値が違うだけなのに、
その1000行がif else文で分かれてて定数値だけ違う
2000行になってるを見た時、売られているゲームでもこんな事してんだ…ってなった記憶がある

逆の意味で、糞コードだが絶対に安全なコードとかなのかも知れん…
0888名前は開発中のものです。2009/09/09(水) 01:20:28ID:Ns5Gl4Rc
2000行の関数とか正気じゃねえな……
0889名前は開発中のものです。2009/09/09(水) 07:26:49ID:Bi32pqEq
ゲーム関係じゃないけど、仕事で似たようなの見た……
そのコードを書いた前任者は、今はもう職場に居ない。
0890名前は開発中のものです。2009/09/09(水) 08:27:27ID:DJ0aq5dK
携帯電話で、うるう年を計算する処理で
if ( … || year == 2004 || year == 2008 || … ) {
みたいに全部チェックしてたりとかあるらしいからねぇ
0891名前は開発中のものです。2009/09/09(水) 08:38:32ID:Bi32pqEq
想像したくねぇw
0892名前は開発中のものです。2009/09/09(水) 09:13:18ID:8BLV5PqA
ぐぐれば短いコードが見つかるのに
プログラムのセンスが云々は、センスが要求されないというより
センスが無くてもなんとか収まっている、だろうな
下の世界を見れば底が知れないけど、上の世界もまた果てしない
0893名前は開発中のものです。2009/09/09(水) 11:14:57ID:ZI65CYRq
>ぐぐれば短いコードが見つかるのに
ここいらなくね?
0894名前は開発中のものです。2009/09/09(水) 11:17:30ID:FbNTICYS
if(x==0) a=0;
if(x==1) a=1;
if(x==2) a=2;
if(x==3) a=3;
・・・
て言うの見たことあるぜ
0895名前は開発中のものです。2009/09/09(水) 11:31:29ID:vKyxO6xF
コボラーがVBの仕事受けたとき、グローバル変数の宣言方法がわからなかったみたいで
画面に見えないラベルが山ほど貼ってあった。

あれ見た時、先輩だけど「こいつ、プロだな」と改めて尊敬してしまった。
0896名前は開発中のものです。2009/09/09(水) 12:32:49ID:FwYqKth+
真にセンスがある人間は
if (0==x) …
と逆順にするんだけどね。
0897名前は開発中のものです。2009/09/09(水) 12:53:28ID:Ns5Gl4Rc
それはセンスっつーより小技のたぐいじゃなかろうか
0898名前は開発中のものです。2009/09/09(水) 13:09:08ID:2P2uPk0D
つか>>894なんかは、すでにセンス以前の問題じゃないのか
0899名前は開発中のものです。2009/09/09(水) 13:10:35ID:Z4klyML2
>>898
言語の制約があれば有り得ないコードではないね
0900名前は開発中のものです。2009/09/09(水) 13:12:58ID:DJ0aq5dK
>>894
わろた

>>896
逆にしたらどういう意味があるんですか?
Javaで↓みたいにする意味は分かるんですが…
if ( "string".equals( str ) ) { // strはstring型
0901名前は開発中のものです。2009/09/09(水) 13:21:10ID:FwYqKth+
>>900
単なる凡ミス回避。

== を = と打ち間違えたとき、
if (x = 0)
はコンパイラが許容するが、
if (0 = x)
はコンパイル時点でエラーになるから気づく。
0902名前は開発中のものです。2009/09/09(水) 13:24:57ID:B6JFr4cU
警告出るから、そんな猪口才なテクいらない
0903名前は開発中のものです。2009/09/09(水) 13:25:27ID:DJ0aq5dK
>>901
あー、なるほど!
確かにそれで凡ミスを減らせますね
ご回答ありがとうございました
0904名前は開発中のものです。2009/09/09(水) 13:29:34ID:OXYKVtgI
x == 0 と 0 == x は結果は同じでもプログラムの意図や意味が違ってくるので
左に定数を置くテクは好きじゃない。
0905名前は開発中のものです。2009/09/09(水) 13:37:03ID:N5f9UkQT
オレもプログラムは仕様とか意図を反映したものであるべきと思ってるから
>>896の書き方が、もともとそういう意図でないなら読みづらくなるから好きじゃないな。
0906名前は開発中のものです。2009/09/09(水) 15:11:18ID:FwYqKth+
>>902
残念ながら、どこで警告を出すかは言語仕様に入っていないから、
それに依存した時点で負けなのだ。
0907名前は開発中のものです。2009/09/09(水) 15:53:38ID:ZI65CYRq
それって、>>901にも言えるとおもうんだが。
仕様言い出したら
0908名前は開発中のものです。2009/09/09(水) 16:10:46ID:YtItsXdV
元々901のことを言ってるのかと思ってた
0909名前は開発中のものです。2009/09/09(水) 16:14:39ID:vKyxO6xF
定数に代入でエラー・警告出さないコンパイラがあったら教えてください。
0910名前は開発中のものです。2009/09/09(水) 16:26:17ID:YtItsXdV
すみませんでした
0911名前は開発中のものです。2009/09/09(水) 16:45:54ID:FwYqKth+
右辺値と左辺値、という言葉すら知らないと、ちょっとアレかもね。
プログラムが分かる企画屋に転向した方がいいかも。
0912名前は開発中のものです。2009/09/09(水) 16:52:03ID:B6JFr4cU
そんな猪口才なテクに頼るのが、どうしてもセンスいいとは思えない
0913名前は開発中のものです。2009/09/09(水) 16:54:15ID:27/pYYMF
俺は日曜プログラマだから意地でもしねぇ!!
0914名前は開発中のものです。2009/09/09(水) 17:00:22ID:LUF8xSge
真にセンスがある人は怖い
0915名前は開発中のものです。2009/09/09(水) 17:12:42ID:UIXt1tIA
そろそろスレチになりそうですな。
0916名前は開発中のものです。2009/09/09(水) 17:33:04ID:L8X4KLSj
>>896みたいなのに固執する人は、もともとプログラム向いてないのを
小手先のテクニックで頑張ってしのいでるように見える。
0917名前は開発中のものです。2009/09/09(水) 17:57:37ID:LUF8xSge
そんなこと言うと怒られちゃうよ
0918名前は開発中のものです。2009/09/09(水) 18:01:36ID:/Z9p1y2r
896見たいな記述をソースコード中に見かけたら何か特別な意味があるんじゃないかと思って担当者に確認するな俺は。
確認するのも確認されるのも面倒だからおれは避けるな。余計なコミュニケーションは避けたい。
0919名前は開発中のものです。2009/09/09(水) 18:43:11ID:owIBWfPF
初心者の頃やって悦に入ってたけど可読性重視するようになってからやってないな
0920名前は開発中のものです。2009/09/09(水) 19:45:11ID:dVTV3ErZ
#define BINARY_PREDICATE_EQUALS(a,b) ((a) == (b))
0921名前は開発中のものです。2009/09/09(水) 20:01:04ID:TDbN4HWz
蒸し返した上に話の本質から離れるが俺なら if(!x) だなw
0922名前は開発中のものです。2009/09/09(水) 20:09:40ID:Ns5Gl4Rc
その辺は宗教問題っつーか好みの領域だなw
0923名前は開発中のものです。2009/09/09(水) 20:30:07ID:Bi32pqEq
定数を左辺に置いた方がミスは減るだろうし、実際にそういうミスを犯したことは何度もあるんだが
どうも慣れない
0924名前は開発中のものです。2009/09/09(水) 20:34:36ID:GIsGmOlM
>>911
== に右辺値も左辺値もありません。あえて言うなら右辺も左辺も右辺値です。
左辺値が必要なのは、代入とか++とか&演算子の文脈においてです。
0925名前は開発中のものです。2009/09/10(木) 03:09:10ID:wsbUj3jE
フォントをデザインの一部として利用するのってFair Useじゃないの?
0926名前は開発中のものです。2009/09/10(木) 03:21:28ID:i70PGwLy
>>925
フォントによるがな
0927名前は開発中のものです。2009/09/10(木) 04:04:37ID:2zTyJKsV
フォントのライセンスはややこしいからなー
専用スレがあるから参考にしてる
0928名前は開発中のものです。2009/09/10(木) 21:22:48ID:0ga84IQp
六四天安門事件・天安門大屠殺
Red China army killed great number of Chinese democratization's people in Tienanmen Square in 1989 Jun .
Their China military's tanks killed many democratic citizen .
It was awesome and shocking !

文化大革命
Over 40 million Chinese were massacred by red China of Mao Zedong in Chinese culture revolution (1966-79) .
It's awesome cruel !! , communism that ... , just a mad dog !
Unbelievable ! But that's truth that all .
Cause , red China is the bloody red beast or Satan's country and area in Bible's John's holy prophecy .

人權 Human Rights 民運 Democratization 自由 Freedom 獨立 Independence 多黨制 Multi-party system
胡耀邦 趙紫陽 魏京生 反共 法輪功 北京之春 激流中國 大紀元時報 九評論共産黨
獨裁 專制 壓制 侵略 掠奪 破壞 屠殺 民族淨化 内臟器官 蛇頭 遊進 走私 六合彩 賭博 色情
中華民國 Republic of China 西藏 Tibet 達?喇嘛 Dalai Lama 東突厥斯坦 East Turkistan

おまじない
0929名前は開発中のものです。2009/09/11(金) 09:49:16ID:U9/5Tjvh
スレにバカがいることがわかったw
0930名前は開発中のものです。2009/09/11(金) 10:40:14ID:ioih/qum
今更何言ってんだ?
0931名前は開発中のものです。2009/09/12(土) 17:34:36ID:NVi4g6jG
if(a=0)なんて馬鹿なことやったこともないし
今はコンパイラが警告出してくれるだろ
if(0==a)なんて完全に無駄
0932名前は開発中のものです。2009/09/12(土) 17:57:26ID:z98JJXec
>>931
一行目ありすぎて困る
VBのクセが抜けねーンだわ
0933名前は開発中のものです。2009/09/13(日) 00:11:05ID:g2IhHnxv
絶対しないと思っているポカミスは、一番重要なところでやらかす。
お約束。

それを知らないプログラマはがきんちょ。
0934名前は開発中のものです。2009/09/13(日) 00:38:40ID:vi4Hw3pw
人間に絶対なんてないもんな。プログラムが一番それが分かるし。
0935名前は開発中のものです。2009/09/13(日) 01:14:38ID:tz1HmIIB
この間、セミコロン抜かしちゃったしなあ。
自分のミスなのに笑っちゃったよ。
0936名前は開発中のものです。2009/09/13(日) 16:25:14ID:kc5gQSm4
すみません。C++でなのですが、
「仮想クラス」 「マルチタスク」(こっちは種類も多いのでしょうがアクションゲーです)
についての解説を本やWebを色々巡っているのですがどうも上手く理解できず実装できません。

個人的に理解しやすかったとかで構いませんので
Web・書籍何でも良いのでオススメの解説を教えて頂けないでしょうか?
0937名前は開発中のものです。2009/09/13(日) 18:46:19ID:zzhxHz9l
仮想クラスは仮想的なクラスのことです
マルチタスクなんてものは存在しません
0938名前は開発中のものです。2009/09/13(日) 21:15:31ID:g2IhHnxv
大学受験を頑張りながらゲーム作ればマルチタスクになるよ。
0939名前は開発中のものです。2009/09/14(月) 00:07:29ID:QQM7QgVt
>>936
仮想クラスについてはこの変だな。

「C++入門書の次に読む本」
http://bookweb.kinokuniya.co.jp/guest/cgi-bin/wshosea.cgi?KEYWORD=%43%2B%2B+%93%FC%96%E5%8F%91%82%CC%8E%9F%82%C9%93%C7%82%DE%96%7B+

UNIXなどはマルチタスクといわれるが、それでは何を意味するのか分からん。
09409362009/09/14(月) 01:46:26ID:PhKHylXD
>>939
ありがとうございます。

マルチタスクでは意味が通じないのですね。
こちらは自力で何とかしてみます。ありがとうございました。
0941名前は開発中のものです。2009/09/14(月) 08:32:00ID:0vG04VD/
予想は出来るが候補が幾つかあるので絞り込めない、かな。
0942名前は開発中のものです。2009/09/14(月) 14:09:24ID:346GA2uE
クラスを使ってゲームキャラを管理しようと思いました
メンバ関数を使って移動などはできるようになったのですが、
戦闘がどうにもうまくいきません
攻撃したときには、攻撃対象のメンバ関数を呼び出し、相手のメンバである体力を減らすようにすればいいんでしょうか?
0943名前は開発中のものです。2009/09/14(月) 14:15:37ID:A6vNgauo
>>942
具体的なクラス(ソース)とか晒さずにどうやって回答しろと?
エスパーを御所望ですか?
0944名前は開発中のものです。2009/09/14(月) 14:19:20ID:Scy9jD/9
>>942
そもそも、全体がどういう構造になってるのかすらわからないのだが。
作り方によっては、設計そのものを見直したほうがいいってこともあるよ。
0945名前は開発中のものです。2009/09/14(月) 14:27:55ID:4kpR/zmH
> 攻撃したときには、攻撃対象のメンバ関数を呼び出し、相手のメンバである体力を減らすようにすればいいんでしょうか?
で良いよ
0946名前は開発中のものです。2009/09/14(月) 15:48:45ID:346GA2uE
コードを簡略化するためにレスが遅くって申し訳ありません。
>>943>>944
すいませんでした。今後気をつけます。コードは以下の通りです。
>>945
ありがとうございます。
#include <iostream>
using namespace std;

int main(){
class hito{
public://試験用のため全てpublic
int hp;
int kougeki;
int damege(int kou){
hp -= kou / 2 ; //ダメージはkogekiの1/2とする
cout<<"bの攻撃\n"<<"aは"<<kou/2<<"のダメージ\n残りhp"<<hp;
return 0;} } ;
hito a,b;//aとbを作成、メンバの初期化
a.hp=100;
a.kougeki=50;
b.hp=80;
b.kougeki=60;
//bがaに攻撃
a.damege(b.kougeki);

return 0 ;}
0947名前は開発中のものです。2009/09/14(月) 17:02:58ID:B4VFmRWD
インデントの問題もあるし
>>1のリンクにあるうpろだ使えばいいじゃなーい
30行より多い方が意図も表現しやすいでしょ?
0948名前は開発中のものです。2009/09/14(月) 18:01:50ID:346GA2uE
>>947
ttp://gamdev3.hp.infoseek.co.jp/cgi-bin/up/No_0463zip.html
になります。よろしくお願いします
ここから作り直すと前より断然よくなりそうなので(といってもテスト段階なのですが)
残念ながら前のは消してしまいました
0949名前は開発中のものです。2009/09/14(月) 18:31:05ID:4kpR/zmH
とりあえず、自分の考える変更点。

// 攻撃力だけ渡すのではなく、攻撃者自体を渡す。
int hito::damege(const hito &attacker){

// bがaに攻撃とコメントを書くらいなら、コードをそのようにする。
int hito::attack(hito &target){

// ダメージの計算を関数にして、後から編集しやすいようにする。
int calc_damage(int kou) { return kou / 2; }

// ダメージの計算を複雑にしても使えるように、攻撃側と守備側を引数とする。
int calc_damage(const hito &attaker, const hito &defender)
{ return std::max(0, attaker.kougeki - defender.bougyo); } // たとえば(攻撃力)-(防御力)、もし負ならゼロ。
0950名前は開発中のものです。2009/09/14(月) 19:32:05ID:7s3djR7R
あるゲームのレベルエディタの和訳解説サイトを作ってるのですが、いまいち静的メッシュ(Static Mesh)の
静的の意味するものがわかりません。ここの板の人なら分かるかなーと思って書き込んでます。。。
動き情報がない意味だって安直に言われておりますが、要はアニメーション情報がない、形とテクスチャだけの
シンプルな3Dモデリングデータのことを指しているのでしょうか(-_-)
0951名前は開発中のものです。2009/09/14(月) 19:33:30ID:4kpR/zmH
ttp://en.wikipedia.org/wiki/Static_mesh
ではなくて?
0952名前は開発中のものです。2009/09/14(月) 20:03:12ID:7s3djR7R
>>951英語綴りで調べれば良かったかぁ><;解決しました
ありがとうございます。。。大体あってるってことかな
0953名前は開発中のものです。2009/09/15(火) 07:08:42ID:TVGKkCOT
>>949
ありがとうございます!!
一気に進んでしまいました!!
0954名前は開発中のものです。2009/09/16(水) 20:47:37ID:+4Kkj9SL
C++のゲーム中に日本語を画面に表示させたいのですが
1.全文字を一文字ずつ画像にして、テキストデータから座標参照して描画
2.画面に表示させる分ずつ画像にして張り替え
3.その場で1文字ずつ画像化していく処理を組む

の3つ位が思いつくのですが、
普通どうやって描画するのが一般的でしょうか。
また、リアルタイム更新のゲームの場合、どういった方法が一番負担が少ないでしょうか?
0955名前は開発中のものです。2009/09/16(水) 21:10:37ID:Y6Uf0xCL
C++は関係ないだろ
DirectXでってこと?
動的生成なり外部画像読み込みなり、
あらかじめ用意された文字テクスチャから切り貼りすればいいんじゃね?
0956名前は開発中のものです。2009/09/16(水) 21:17:26ID:G7IsRuAA
Managedじゃないよって言いたいんじゃない?
まぁ回答は一緒だけど。
0957名前は開発中のものです。2009/09/16(水) 21:24:54ID:XwTzMWIF
>>954
そもそも文字を使わないのが一番良い
負担の少ない方法を取れば、いくらでも文字が表示できるわけではない
0958名前は開発中のものです。2009/09/16(水) 21:42:27ID:7KSrOIMQ
>>954
著作権と描画負荷の問題がある。
・フォントデータをゲームと一緒に配布したければ、そのフォントデータの著作権者に許可を取る必要がある。
・毎フレームフォントそのものを描画するのは重い。
DirectXならゲーム起動後、OSのフォントをテクスチャー等に書き込んで、
そのテクスチャーを毎フレーム描画するのが無難。
それ以外の環境なら、その環境に合わせた方法でw
0959名前は開発中のものです。2009/09/16(水) 23:03:00ID:C9xlZ3Ct
>>954
Irrlichtの多言語モジュールで実装されてる方法だと、
初めて表示する文字は動的に描画して内部にプール、
次以降はプールしたテクスチャを描画、というキャッシングをしてる
0960名前は開発中のものです。2009/09/17(木) 00:45:16ID:emRRZGAA
>>955-957
ありがとうございます。

>>959
難しそうですがそういう便利な機能も有るのですね。

>>958
>DirectXならゲーム起動後、OSのフォントをテクスチャー等に書き込んで、
>そのテクスチャーを毎フレーム描画するのが無難。
回答ありがとうございます。
そのその文字を画像化する手法で、
特に数が膨大になる漢字をどう管理すれば良いのか見当が付かないのですが、
・漢字などの管理方法のあらまし
・その方法に使う関数や仕組み
を大雑把に教えては頂けないでしょうか。
そういう書籍を探してみた事も有ったのですが、なかなか見つからず・・
0961名前は開発中のものです。2009/09/17(木) 01:07:52ID:xTTgRv45
今は適当なサイズのテクスチャーを用意して、
そのテクスチャーの左上から順に、
メニュー用の文字列単位で領域を割り当てて書き込んでる。
面倒くさいので文字の重複上等だし、使い切ったらそれ以上は無視。
でメニュー更新の時には、また左上から割り当て。

そんなに大量に表示したことは無いけど、
テクスチャーを一枚用意すれば、
メニュー用の文字を同時に表示できるんじゃないかな?

目一杯表示したいなら、
・最大サイズのテクスチャーを調べておく。
・同、確保。
・一枚で足りなければ複数のテクスチャーを管理。
かな?
0962名前は開発中のものです。2009/09/17(木) 01:09:09ID:xTTgRv45
う〜ん。テクスチャーそのものには左上って観念は無かったかもww
まぁそういう事です。
0963名前は開発中のものです。2009/09/17(木) 12:28:24ID:kBlBLO8b
>>961 962
大まかに解った気がします。ありがとうございます。
0964名前は開発中のものです。2009/09/17(木) 12:43:08ID:/tnMtFxy
>>958
>・漢字などの管理方法のあらまし
>・その方法に使う関数や仕組み

というほどおおげさなもんじゃないが

1)そのシステム内に登場しうる文字数だけの(第二水準までの非漢字含めて8000だっけか?ここでは仮に8000としようか)構造体配列を作る
2)与えられた文字コードを1-8000の一意の整数に変換する関数を自作
3)該当構造体にアクセスして、
 a.描く/見るべきテクスチャのポインタ
b.X座標
c.Y座標
 をセットするなりゲットするなりお好きなように

でいいと思う
0965名前は開発中のものです。2009/09/17(木) 19:19:54ID:kBlBLO8b
>>964
ほぼ作り方は想像が付きました。ありがとうございます。

しかし、文字コードから管理ナンバーを見つける方法が
switch構文で8000通り並べる方法しか思い付かないのですが、
もっと負担が少ない方法など有ったりしますでしょうか・・?
レス数が950を超えています。1000を超えると書き込みができなくなります。