某所に盛大に誤爆してしまったのは内緒
乙!
乙であります!
ビット演算知ってるけど、取っつきにくくて、やったことなかった! ビット演算楽しすぎwwwww つか、DXライブラリって知らない間に3D機能ついてたのね 2Dの頃、触ってたけど、まったく分からんかったわ! 今は、普通にわかる様になって少し感動
公式掲示板荒らされてる・・・
こわっ!
うわ……
うわー ここで暴れてた基地害かな
11 :
名前は開発中のものです。 :2011/08/19(金) 00:21:20.16 ID:h2Awk5XP
クラスが一つのファイルに1つ存在するものなら、ヘッダーファイルとソースファイルのセットと 同じような役割果たしてんじゃないか? C++では構造体の中に関数も入れられるし、プログラミングの本質的なところは Cと何も変わらないし、つまりCとC++の差はほとんどなかったということになる クラスを使うか使わないか、ただそれだけだった
ほんの入口に立っただけで何ドヤ顔してるんだ
ヘッダーファイルとソースファイルのセットをモジュールとして考えられない人のためにクラスが作られた
14 :
aaaa :2011/08/19(金) 00:32:07.76 ID:Jfggb3xO
aaaa
ようやく規制解除されたわ
巧さんも大変だな
管理人さんが動いたのか。ほんと大変だ
現行ログ全滅か
なにがあったんだ?
20 :
名前は開発中のものです。 :2011/08/19(金) 09:49:50.23 ID:INMF53vv
過去ログってとこクリックしたら見れるみたいだけど、 そこにはないスレもあったのかな
というか過去ログも減ってないか? 調整中なのかな
つかわざわざあんな分かり辛い書き方するの意味あんの
自分でも質問、回答保存しとかないとな、何が起こるかわからんね
そもそもの存在を知らなかった
存在も知らないってのは流石にもったいない 流し読みするだけでも有用な情報がかなり転がってるぞ。あの掲示板
管理人が組んでくれた独自関数とか乗ってたりするしな
DXライブラリは2Dゲームに使うのにかなり評判いいけど3Dはどうなんだろう。 DXライブラリで作られたフル3Dのゲームを見たことがないんだけども制作してる方いるかな? それともやっぱり他ライブラリが優勢ですかね。
ニコニコとかなら、いくつか
その話題秋田
3Dゲーム作るのにもかなり使いやすいよ 他のライブラリは余計な機能がゴタゴタついてたり、数値の指定がライブラリの独自仕様になってたりするけど、 DXライブラリは余計な機能がないし、座標がイメージしやすいから、2Dの機能を使いこなせてるレベルなら同じ感覚で3Dもいける
糞機能しかないけど 制限の大きさがそれはそれで楽しめる RPGツクールでアクションつくるようなもん
荒らしが本家アク禁されて戻ってきたのか
もう少し3Dに興味がわく関数追加してほしいと思う 今のままなら3D使わなくても2Dだけでいいやってなる
メタセコイアーーーーーーーーー
Seleneだっけ?あっちを使えばいいんじゃね 君には選ぶ自由がある
DrawBoxで描いた四角を透過したいんだけど、 SetDrawBlendModeを使うと描いた四角以外の部分も色が変わってしまう。 DrawBoxで描いた四角の部分だけを透過する方法はないですか?
DrawBoxで描く前にSetDrawBlendModeで透過させて、描いたあとに同じくSetDrawBlendModeで透過解除させる。
>>38 使い方の問題だけでしたか。
ありがとう。
描画モード変更系は永続だからな
仕様として標準値を決めておいて、もし変えたら終わったあとに戻すのがよいよ
画像クラスに透明度も突っ込んじゃうと楽よね。
透明度というか、描画関連情報を全部突っ込むと便利だな
DrawBoxをラッピングしてalphaを引数で与えればいい オーバーロードで引数無しの場合は0xffを与えればいい
45 :
名前は開発中のものです。 :2011/08/21(日) 00:29:39.73 ID:gki3mA7k
皆マスク関数とか使ってるの? 俺たまにマスク使いたくなるけど、リファレンツに出力がどうのこうの って書いてあるから躊躇してしまう
便利なのかもしれないが使う機会はないな。 画面分割はやったことあるけど、矩形だったからSetDrawAreaで充分だったし。
RPGで敵をEnemyクラスとして扱おうとしています。 初期化処理において、 龍神録プログラミングのその11,エクセルを使って敵の出現データを作ってみよう、 を参考にして敵のIDに応じた各データメンバをcsvファイルから読み込ませようとしています。 他にもっと便利で修正しやすいよ、という方法ありましたらお教えください。
それ以上を求めるなら自分で専用のツール作るしかないよ
最近見つけてあんまり試してないけどSQLite+PupSQLiteとか面白そうだよ
RapidXMLとか?
敵にID振るのもいいけど敵PTのIDも作ったほうがいいんじゃ 敵が常に1体ならそれでいいだろうけど
俺の場合は、敵編隊は、敵を発射する透明な敵オブジェクトでやってるなー これなら敵として設置するだけで編隊を出してくれるから、同じようにステージに配置しやすい
それってSTGの話?
>>54 はSTGの話だな。見た感じ
>>53 敵データと敵パーティーデータって普通は別扱いでやらね?
>>52 「原理原則」や「机上の空論」を正論と思って賞賛してよいのは中学二年生まで
普通がどうかは知らんが敵も敵編隊も弾も自機もエフェクトも全部同じ扱い、IDだけ変えてる ファクトリメソッド使えるのならこのほうが楽
RPGの話なのに何でSTGの話持ち出すのかイミフなんだが
いつの間にかSTGの話にw
おーすまない、けどRPGでも基本変わらん エンカウントもイベント戦闘もその中での敵配置も同じ扱いでやったほうが楽
>>56 敵が複数登場するようなゲームなら、
いくつかの敵IDの情報を持った敵パーティIDで抽選を行って、
その後、敵IDに応じたデータを読みこんでいけばいいんじゃないかなー
って思ったんだ
ああ、RPGってのを見落としてたw
>>62 ああ、俺が言いたかったのもそういうことw
65 :
名前は開発中のものです。 :2011/08/23(火) 01:09:17.09 ID:5Swg8Sk+
なんか俺素人すぎてif文が大量にあるから嫌になるな 多分完成した頃には重くて、容量でかいのができあがるんだろうな
if文のコストは実は大したことない 乗算除算やループの方がずっと重い 実行ファイルの容量なんか気にする必要ないだろw
スレどころか板違いだけど、if文を自動生成するプログラムを見たときは衝撃が走ったぜ…
じゃあソースにあるループ文を全てアンロールするプログラムを
69 :
名前は開発中のものです。 :2011/08/23(火) 11:55:39.56 ID:5Swg8Sk+
前なんかこのスレの風潮でif文は糞みたいな流れがあったぞ if文の条件を多くするってのは、条件一つにつきif文+1って感じなのか?
当たり判定のやつ? あれも実際は効果あるか怪しそうだけど
>>69 このスレで糞糞言う奴の言葉とか全くあてにならんよ
if文の問題点はコードの見通しが悪くなることと仕様変更時に面倒くさいこと
利点は言うまでもないけど早く組めること
利点と問題点を理解して自分にあったスタイルで組めばいいと思う
DrawGraphでの描画速度に限界を感じてきました。 そこでDrawPrimitive2D及びDrawPrimitiveIndexed2Dを使えば 速くなるのでは無いかと考えたのですが、使い方が探しても 見つからなくて困っています。 これらの関数でテクスチャを表示する方法をどなたかご教授 いただけないでしょうか。
俺知ってるけどスレ違いだから教えない
ライブラリ変えるかDirectX直接叩いた方がいいような気がしないでもない
76 :
72 :2011/08/23(火) 15:11:36.26 ID:LpKAIWaD
>>74 DXライブラリは概ね使いやすくて非常に気に入ってるので、あと描画速度を
もう少し何とかできればという感じなのですよね。
>>75 ありがとうございます。
構造体のメンバも同じですし、DirectXの情報を追えばなんとかなりそうですね。
頑張ってみます!
てかDrawGraphで重いって一体どういう状況なんだろう 弾幕STGで、弾毎に頂点カラーで色を決めてるとかそういう感じ……? ブレンドカラーの変更処理ってデフォだとエラーチェックが入るからフレーム毎に1000回くらいで重くなるし
>>77 マップチップの描画処理です。
640*480に16*16のチップを3レイヤー分敷き詰めるとチップ無し
のマスもあるので平均して1500くらいの回数に。
で、内蔵グラフィックボードだと60fpsを割ったり割らなかったり。
一応透過pngをLoadDivGraphで読み込んだものを描画してるので
SetDrawBlendModeとかはしてないです。
マップチップ画像のサイズは?
>>79 4096*768でARGB32の2.52MBのpngファイルです。
1500ねぇ。オンボだと確かに微妙な数字だな
試しに256*256とかにしてみたら高速にならんかね
マップチップだったのか マップチップの最適な描画法ってある気がするんだけどなー
全部16*16でやるんじゃなくて、形が決まってるものは大きいサイズで描画するとか あとバッファをうまく利用するとか 何とか描画回数を減らすように工夫するのがまず必要だと思う 全部16*16ってのはかなり非効率的だし
85 :
名前は開発中のものです。 :2011/08/23(火) 16:03:28.86 ID:5Swg8Sk+
俺は全然描画に対して不便感じたことないけどな 重かったのは俺が、ミスって毎ゲームループごとにLoadGraphしてた時だった
例えば、草原や床のようなフィルする機会の多いチップは2*2,4*4のような大きいサイズを作っておく ソースから2*2のような形をそのまま持ってくる場合はその都度Derivationする カリングする(上のレイヤによって完全に塗りつぶされる場合は描画しない) など
>>82 LoadDivGraphの速度は遅くなるけど、ハンドル取得後の描画には
影響しないんじゃないかと思ってましたがどうなんでしょう。
>>84 ですよね。大きな画像を作ってそれに最初にマップチップを全部
描画しておいて、その大きな画像を描画するというのも考えたの
ですが、なにぶんゲーム中に一部のチップだけ差し替えたりという
要素があるのでできれば全チップ舐めて描画したいなと。
でもよく考えるとチップ差し替え時に大きな画像の方にそのチップ
だけ上描ききすれば良いですね。
俺も同じ事やった事あるな。 640*480で16*16のマップチップを3枚重ねるやつ。 透過pngじゃなかったけど結構負荷がかかった記憶がある。 んで、諦めて一番裏の背景は諦めて一枚絵にしてしまったり、 オプションで二枚目の背景も消せるようにしたりしたなぁ。 まだDXライブラリ使い始めの頃だったけど。 描画の前に重なり具合を調べて、見えなくなる部分は描画しないとかいう手もありかもしれない。
>>87 画像サイズはVRAMとメインメモリでスワップが発生してるかどうかが問題かな
計算してみたら4096*768の32bitカラーで12MBの消費だから、それだけではスワップはしないと思うけど
DXライブラリは内部的に同じテクスチャならある程度まとめ書きしてくれなかったっけ? 最大テクスチャサイズは2048x2048だっけな、オンボなら1024x1024ぐらいに抑えたほうがいいだろうけど 元画像を幾つかに分割してソート掛けときゃ気持ちぐらいは速くなるかもね
>>90 そういえばそうだっけ
大きい画像は内部的に分割されるからまとめ描きがきかなくなる(と思う)ことを忘れてた
92 :
72 :2011/08/23(火) 16:17:17.68 ID:LpKAIWaD
なるほど、元画像の大きさが影響する可能性もあるんですね。 ちょっと1024*1024あたりに抑えたので試してみます。 あとやはり画像をまとめて1枚にしてしまおうかとも。 幸いにもアニメーションするマップチップは無いので。
1024でもでかいと思うけどな
でっかい描画可能テクスチャを用意して、シーン切替時にマップ全部描画して、 マップ移動時はその中から描画したいとこだけを描画するってどうだろう アニメーションするチップがあるなら工夫必要だけど、これが最速な気がする
低スペックPCなんか切り捨てればええんや
>>94 フィールドみたいにサイズがでかすぎるとVRAMから溢れそう
描画可能テクスチャに1画面分描画して、スクロールが発生する時に
スクロール先の部分を描画可能テクスチャに1ライン描画するとかどうだろう
プライマリサーフェスに転送する場合はxオフセットとyオフセットを設定すれば、
描画可能テクスチャ1枚で足りるし、描画時に4転送で済む
それスクロールするときに描画可能テクスチャ?を全描画しなおさないといけないんじゃないの? オフセットだけだとはみ出すよね俺間違ってる?
>>97 うーん、説明しづらいから分かりにくくてすまんw
スクロールするときにスクロールアウトする部分に1ライン描画するって言う意味
そうすると描画可能テクスチャは頂点がスクロールした方向に1ラインずれる
つまり、最初の状態で0〜100を1回描画だとすると、5ラインスクロールしたら5〜100+0〜4の2回描画になるって具合
この場合オフセットは5ライン目
スクロールによるずれがx方向とy方向で生じるから、通常は都合4回の描画になる
実際にはスクロールする時のために上下左右に1ライン分のマージンが必要だけど
つまり、描画可能テクスチャの初期状態が 00,01,02,03,04,05 10,11,12,13,14,15 20,21,22,23,24,25 30,31,32,33,34,35 40,41,42,43,44,45 50,51,52,53,54,55 で右にスクロールすると、描画可能テクスチャは左1ラインがスクロールアウトするから上書きして 06,01,02,03,04,05 16,11,12,13,14,15 26,21,22,23,24,25 36,31,32,33,34,35 46,41,42,43,44,45 56,51,52,53,54,55 って形になる。バックバッファに転送するときは最初に01~55を左詰めで転送し、次に06~56を転送
へえ。勉強になったわサンクソ
なんかファミコンっぽいw バグると移動中に描画オフセットが効かなくてそのままマップが変わって行くのが見えちゃうみたいなw
ファミコン言うなwwwww ただ難点は、描画可能テクスチャを使うってことなんだよね 3.00になって公開関数になった(っけ?)から前よりは安定してるんだろうけど、 2.xx系列だと隠し関数扱いだったからなー 動作の安定性が問題
レイヤーが3つあるってことは画面サイズ*3枚分のバッファが必要で、画面3枚分の画面描画をするんだよな 16*16で描画する場合は描画回数は増えるだろうけど全体では1画面分くらいしか描画しなくていいわけだからどっちの方がいいんだろ 一番手前のレイヤーとかほとんど透過色でほとんど描画しないんじゃないのか てかMakeScreenで作ったバッファに透過色設定とかできたっけ
α付きPNGは、必要な箇所のみに絞って使ったほうが良いような気がする
105 :
名前は開発中のものです。 :2011/08/23(火) 23:30:59.29 ID:5Swg8Sk+
話題は変わってしまうけど質問 DrawGraphとかの座標の設定は、int x, int y ってなってるけど、 doubleの値を代入したりするとやっぱりバグるのか? 三角関数とか使って座標の計算とかしてるとどうしてもdoubleの値がでてきてしまうんだが
>>105 自動的にintにキャストされる
float値を使いたい場合はDrawGraphFでおk
使い分けはまぁ色々試してみるといいかと
少し説明が不親切だったか 描画モードがBILINEARの時にfloatでDrawすると各描画点の座標をfloatで計算してくれる 1pixel未満の単位で描画できるけど、描画画像がボケるから使い分けが必要 NEARESTの時にfloatでのDrawはやったことないから分からない
今の2Dゲームってスクロールした時に描画してるんじゃないと思うけどなあ 技術的には挑戦してみたいけど
>>108 まぁ性能が低い場合の工夫だからね
ユーザー環境にばらつきがあって下限が低いPCゲーだとファミコンみたいな工夫も必要なのかと
110 :
名前は開発中のものです。 :2011/08/24(水) 11:46:00.65 ID:AJ4GFjC0
>>106 そうだったか
doubleからint型に変換されるとバグる時あるけど、バグるときとバグらない時の
違いってなんなのかね
>>110 全然関係ないところでバグってるって可能性が一番高い
あとint型は+20億〜-20億程度が保持できる値の範囲だから、キャスト前の値がそれを外れてるとバグる
他に良くある誤りとしては、printfで%d指定してるのにdoubleやfloat突っ込むと変な値が出るとか
reinterpret_castしてるとか……は、流石に無いな。
int型やdouble型をまぜこぜに計算した結果、なんか想定とズレた事になることはたまにある……。
そりゃ浮動小数点って近似値でしかないからな 丸め誤差が蓄積してintにしたときに大きくずれることはよくある
ある数を別のある数で割って、同じ値で掛けると思いもよらない所で別の数値が出る、っていう例がなんかあったな
ゲームなら普通浮動小数点モデルをfastに設定するだろうから80bitは使われないしまた違ってくるな 最近偶数丸めの四捨五入とか負の値の切り上げ切捨ては 理解してないと整数にしたときに違ってくるのはある
fastは不安すぎて使えない
ゲームの場合、浮動小数点演算は速度よりも精度の方が重要な気がする 高度な物理演算でもさせるのなら別だけど、物理演算なら何か物理エンジン持ってきた方が手っ取り早いだろうし
120 :
名前は開発中のものです。 :2011/08/25(木) 00:25:28.37 ID:5/LIEyCj
構造体のメンバがめっさ増えてしまったよ 心が痛むけど便利だから仕方ない
>>119 フリーでシェアウェアにも使える3Dの物理エンジンってあるかな
ODEとか?
Windows版ならPhysXも普通に商用無料だけど
Havok?
3Dのポリゴンはfloatじゃないと怒ってくるよねw
>>122 調べてみるサンクス
>>123 PhysXってゲフォ使ってないとダメとかそういう制限ないの?
>>124 Havokはシェアウェアに制限があったと思う
bullet physicsでいんじゃね かなり重いが
>>127 GTA4なんかにも使われてるんだな
これももうちょい調べてみる
Newton Game Dynamics
>>130 そうなんだ
数年前にnVidia以外のGPUを検知するとPhysXの機能が停止されるようになったとか見た記憶があったから
自動的に選択肢から外してたけど、いつの間にか解消されてたのね
>>131 何か勘違いしてるみたいだけどPhysXはGPU限定じゃないぞ?
GeForceならCPUより速くなるだけで
普通にCPUのみで常用出来るしUnityやUDKはPhysXがデフォ
>>132 なるほど、勉強になった
思ってる通り完全に勘違いしてたわ恥ずかしい限りで・・・
134 :
名前は開発中のものです。 :2011/08/26(金) 03:17:13.81 ID:V5GLTgJY
DXlibで作ったゲームをより多くの人にプレイしてもらう一番の方法って何だろう
どうやって宣伝するかの話になるから一筋縄ではいかない問題だな
公式ページに宣伝する場所あるけど、そこの数見るとやはりグラフィックじゃないか ・・・あそこ東方多いなー
>>110 doubleとintじゃメモリ長違うからな(double-8バイト、int-4バイト)
代入の時に(int)のようなキャスト文を記述するのがプログラムの基本だと思うけど
自動キャストにあまり期待しないほうがいいのでは
久しぶりにライブラリ更新したら、フォントサイズがのきなみデカくなってしまった。 3.05aの時にフォントが小さくなる不具合が修正されたとあったので、 この不具合を受けていたんだろうな。
画像の透明度が上手く反映されない マジ糞
お前の技術が糞なだけ
142 :
名前は開発中のものです。 :2011/08/30(火) 00:57:40.02 ID:dYGP1w70
DXいじり始めて少したった今、始めたばかりの頃のコードが糞すぎることに 気付いて直したいんだけど、これを直すとかなりの部分を直さなければならなくなる どうしようか悩みどころだ
何か完成目標があるのなら必要な部分だけ直しつつ進めることを勧める そんなに大作志向のものでは無いのなら、適当に区切りをつけて終了するのがいいかもしれない
進めば進むほど直したくなる部分が増えるから問題が起こらないのであれば触らないほうがいい 糞すぎてもいいからそのまま完成させ、その答えは次回作る時に回す
ネームスペースを分けて併用する 古いコードは触らず、新しく書く部分は新しいライブラリを使う
そういうことに走り出したら完成しない
結構根本的なところが適当に作っちゃってたからな、本当に反省ものだわ〜 そもそも一つ実装するのに複数同じコード書かなきゃいけないのは、エレガントじゃなかった 始めた頃は、同じの書くだけか、とか思ってたんだが 意気込んで色々作ったから、結構大作にする予定だったけど 今回は、ある程度区切りがついたら終了しないにしても、次の作品に取りかかろうと思う
>>146 に同意だが、根本となると後々不便になること多いからねぇ
>>147 素材を流用して次を大作にすればいいのさ
俺も同じようなケースに陥ったが新しくフレームワーク書いてその上に全部移植したよ
綺麗なブラー(リニア&放射)かけてみたいんだけど、シェーダを勉強するしかないかな。 2Dゲーム前提で、今作ってるゲームが完成するまでは、あんまり勉強に時間を割けられない。
シェーダよりは重くなるが、描画可能画像に全ての画像を書き込んだ後、 その画像を半透明にずらしながら数枚置けばそういうことが出来る 軽くやりたいならシェーダを学べばいい
加算合成のブラーならシェーダ使わず軽めに綺麗にできるんだけどなー 別の描画可能テクスチャにブラー掛けたいものを加算描画して、毎フレームクリアせずに減算で少しだけ全体を暗くする そのテクスチャを画面に加算で合成すればおk
154 :
名前は開発中のものです。 :2011/08/30(火) 22:09:15.00 ID:bDw8yGHB
>>142 オレは最初の勉強しながら書いた糞コードは途中で全部書き直した。
コードも短くなって綺麗になり、バグも直ったよ。
直しとけ
そしてコード直しの無限ループに陥っていつまでたっても完成しないんですね 分かります
素材作りが面倒くさすぎる 特に選択画面とかメニュー周りのレイアウト考えて作るの嫌だわ
慣れだ
どっかのニュースでGoogle+風のアイコンやUIのフリー素材とかあったからそういうの使えばいいんじゃね
スクロールとかめんどいよね
レイアウトは色んなゲームからパクればいいよ どうせどれも似たようなもんだ
編成画面、一発でビルド成功した 夢精しちゃった
夢落ちかw
夢精吹いたwww
初心者的質問ですまないがMV1LoadModelFromMemってどういう使い方すればいいんだ? メモリに読み込んでも展開する時のロード時間がMV1LoadModelとほとんど変わらない マルチスレッドによるローディングのお供かと思ったがやっぱり他と競合するからなぁ
使ったことないから適当抜かすけど、 メモリ上に読み込んで編集したものを読み込んで使ったりするんじゃないの。
メタセコのモデルデータとかテキスト形式だしなー でも実際はメモリからファイルとして読み込む関数はただひと通り用意してあるだけなんじゃないの? 独自アーカイブとか使いたい人居るでしょ
暗号化とか考えだすとまずファイル名指定系は使えなくなる
データを予め圧縮しておいてそれをメモリに展開してから読み込む 〜FromMem関係はだいたいそんな使い方をしてる
ありがとう、自分には当分縁がない機能だということは分かった メモリをいじくって管理できる人はすごいなぁ
DXライブラリとは関係ない話題ですみませんが、 皆さんはバージョン管理ってどうされてますか? 自分はバージョン管理ツールとか使えないので、テキストにコピーして日付とコメント入れてますw
世の中には、雑談スレとか質問スレってのがあるんだけどな。 自分は最近Dropboxを導入したので、そっちに任せてる。 勝手に履歴も取ってくれるし。
Dropbox転送速度おせぇ…容量2GBしかないじゃん
バックアップ目的なら、最低限ソースファイルのディレクトリだけ同期すればいいじゃない
>>174 ごめん、訂正します
すげぇ便利、うんこ漏れた
別の物dropすんなw
夏休み終わったら驚くほど平和なスレになったなぁ
ほんと、びっくりだよ
夏休みって勢いだけで開発したくなるもんだからな 夏休み終わったら開発メンバーが夢から覚めていなくなっていくもんだ
あるあるw というか夏休み中盤あたり(と思われる時期)から荒らしの勢いが弱くなったよな つまり、その頃から避けがたい現実の壁に直面し始めたってことかw
まだ夏休みなんだけど
大学生は夏休みだろうな 夏厨の大半はリア厨リア工だろ 厨工は既に夏休み終わってる
俺数年間夏休みのまんまなんだけど
四季ないの?
確かに俺は大学生だが、就活する気ないしそもそも間違えた大学いってしまった 卒業した後何しようか
>>185 上海アリスに対抗してムンバイアリスプロジェクトでも立ち上げろ!
>>170 何が凄いの?当たり前の事じゃないのか?
C/C++言語をやる以上メモリ管理とかメモリの仕組みを理解するのは常識でしょ
ファイルアクセスはテキストだけか、バイナリデータをどう扱うんだよ
何のためにポインタを勉強するのだかレベル低すぎだ
差詰め、ポスト夏厨ってところか
テキスト扱えたらいろいろできますけど
>>188 がレベル高すぎて吹いた、俺の常識では理解できん
ポインタで勉強したことは、関数でも変数でもなんでもメモリに値が割り振られるってことだけだった ポインタはそのアドレスの番号ってだけだった そして、それ以上でもそれ以下でもなかった
>>191-192 >>188 の言い方は悪いが言ってることは事実だよ。
なんとなく抵抗あるんだろうけど、諦めずに挑戦してみれば捗るぞって言いたいだけだと思う。
>>194 いや、事実がどうとかそんな難しい話が出てるわけじゃないから・・・
プログラム言語の最低限の常識は持ってるみたいだけど、日本語の常識は無いみたいね、ってこと
メモリという言葉に過剰反応して 墓穴を掘った人がいると聞いて 飛んできました
夏に湧いてた語りたがりや子供と同じ匂いがする
なんだろう、こうして全体を眺めていると>193が光って見える
コンパイル時までは型情報もあるから正しくは無いな
(ドヤッ
フフーフ
実際ポインタなんて関数ポインタと構造体配列にしか使わなくね? しかも構造体の構造体にはポインタ使えないから、ゲーム制作でそこまで重要とは思えない 実際にメモリのアドレスとか意識して使う場面なんてないでしょ
メモリのアドレスを意識して使う場面は無いがポインタを使う場面なら腐るほどあるぞ ユニット同士の参照持たせたり、シーンやアクターへの参照持たせたり スマポならアクターや敵・弾・エフェクトの実体をスマポのコンテナに入れる(ポリモーフィズム) シーンもシーンのスーパークラス継承して実装するだろうし
正直俺のコードはポインタまみれ 可読性は悪いのかも知らんが、自分一人で作る場合にはポインタ上手く使った方が保守性が高まるのよね
というか一つ一つを切り離した保守性の高いコードを書こうと思ったらポインタ使うしか無いだけだろ
ポインタやC++の機能は、使うと便利で効率的だけど、使わなくてもそこそこの物が作れる。 同人STGサークルで最高峰の一つと言っていいBLUE&WHITEの作品なんて、 旧来のBASICとほぼ同じ仕様の言語(構造体すら無い)で作られてるんだぜ・・・ メモリ管理やポインタやクラスの活用が重要なのは確か。 でも、「それを知らなきゃ駄目、何もできない」みたいに言ってしまうと反感を買うんだろうな。
動的確保禁止の仕事もあるからな
fortranはfortran90までポインタ無かったが アポロ11号の月着陸船を制御したらしい。
LTCG有効にしてライブラリ作り直したらリンクに10分以上かかるようになったというチラ裏
俺は可読性こそ命だと思うな おかげで半年以上開いてないプロジェクトすぐ理解できたわ
本人が読むなら、普通に組んでりゃ時間たっても普通に理解できると思うけど・・・
ポインタは可読性はあまり良くないな やたらカッコ増えるし、正直使うべきだとは分かっていても少し気が引けてしまう
ポインタで括弧が増える状況がいまいち想像つかん 値をインクリメントする場合くらいしか思いつかないんだが
カッコってまさか *(hogehoge->hoge) みたいな書き方してるとか?
DXライブラリのすごい所は、普通のライブラリにある「ポインタを使わされる」場面がほとんどないことだよな
他のライブラリ見てるとポインタだらけだ
おかげで自作プログラムじゃ
>>204 の用途にしか使ってない
>>214 ポインタ使った方が可読性良くなると思うが
関数間での二つ以上の値の受け渡しどうしてんの?いちいち構造体の値渡し使ってるの?
全部グローバル変数なんだろう
クラス化してるから、各関数の引数としては出てこないとか
>>220 可読性低下してんじゃん
それとも全てのグローバル変数の用途を一年別のコード弄ってても忘れないくらい記憶力いいのか
>>221 クラス使うならクラス使うでポインタ使わずにインスタンスの受け渡しどうすんの
ポインタ使った方が可読性は高まると思う
あとC++の場合、クラス使ってカプセル化するならむしろポインタ必須だろ
>>222 も書いてるけど
>>219 時と場合によるけど、俺はその関数で何回も使う場合は普通にポインタ使ってるよ
ちょっと使いたいだけの場合は、構造体の型で関数作る。関数の引数増やすとちょっときたないし
>>216 いや、配列でhogehoge[n].hogeを(hogehoge+n)->hogeって書くとなんか見にくくなった気がする
2次元配列ならなおさら
>>224 いやわざわざ配列をポインタに直す必要なんて全く無いだろ……
仮に必要がある場合でも、俺はローカルで HOGE *hage = &(hogehoge+n)->hoge; で置き換えてしまうかな まあコードの内容にもよるけど、見にくくなるくらい登場頻度が高いならね
どうせポインタの使い方が分かってないのなら先にjavaやC#でのポインタレスプログラミングを勉強した方が CやC++で組むときにもきれいで安全なコードに落ち着く気がする まぁリファレンス使うのにポインタ使うのと同じ知識は必要だけどね
どう学習するのがいいんだろうねー ポインタレスでメモリ空間の感覚が身に付くかなあ まあいきなりポインタ使おうとしたら危険があるってのは間違いないけど
メモリ操作の感覚が掴めてから本当にポインタが理解できるようになるんだろ それに、ポインタとかは勉強しようと思って学んでも全然わからない 普通にプログラム組んでれば、いつかどうしてもポインタが必要な状況がくる そうしたら電球ぴっかんこしてすんなり理解できるようになるから、それまでは無理に身につけようとしなくてもいいよ
メモリ空間とか意識すべきじゃないってのが昨今の考え方だからな メモリ管理なんてほとんどの言語ではガベコレ任せでOKだし C++では低レベル層以外では生ポインタもnewも禁止って規約作ってるところもある
ゲーム作るならガベコレ任せじゃなあ ガベコレのタイミングと割り当てる時間まで全部制御できるならいいけど
ゲームプログラミングの館で紹介されてるようなポインタの使い方以外に どんな使い方が主流だったりするの?
自分の無能をドヤ顔で語られてもな
ゲームプログラミングの館は最近みてないからわからないが、 俺の場合は頻繁にソートしなくちゃいけない構造体の配列とかをポインタにすることでメモリコピー量を軽減して高速にソートできたり、 オブジェクトから別オブジェクトの状態を監視するために使ったりする 例えば、STGで敵が倒したらその敵が出した弾だけ消したい場合、 弾に自分を出した敵オブジェクトへのポインタを持たせといて、HPが0になったりしたのをチェックさせたりとかできる
STGで敵が、じゃない STGで敵を ね
ゲームデータを利用するときなんかポインタをよく使うな STGだったら敵の耐久値や得点を格納した構造体やクラスとか 敵インスタンスのそれぞれには値を持たせないでゲームデータを指させる 用途は色々だけど、スマートに組もうと思ったらポインタが出てくることが多い気がする
>>222-223 失敬、あらかじめ別の場所で指定してるから、
実際の昨日呼び出しとしての関数にはポインタが出てこないのかも、というジョークのつもりだった
ポインタくらいさくっと勉強すればいいのに・・・
ポインタを無駄に難しく感じる人が多いのはCの教本が悪いんだよな
>>224 みたいな発想ってポインタを配列の添字替わりに使うっていうお決まりのサンプルが原因だろうし
C++みたいにクラスのインスタンスアドレスの格納用ってところから入ったほうが実用的で分かりやすい
>>239 あれじゃ使い道分からんよなあ
俺も最初は「で?っていう」状態だったぞ
俺は、「ある構造体を別の関数から手軽に変更できる」から入ったから、 むしろ配列アクセスがポインタ演算の省略記法だって知った時驚いたよ。そして確かにそうだなとも思った
メモリの番地じゃないのか
配列とか構造体を関数の引数にしたときに Call by referenceにしかできないとか、 二次元配列を、ポインタをインクリメントするだけで 舐めてしまえるとか、 Cをアセンブリにいかに簡単に落とし込みやすくできるか。 アセンブリの性質がもろに出てるんですよね。
>>241 何それ、kwsk
俺も同じ道を辿りたい
win7にしたんだけどvc++6.0しか持ってなくて dxライブラリを使うとdirectxをインストールしなくても directxで開発できてしまうんだな ありがたい 簡単にサンプルをビルド実行できた
DirectXはすでにインストールされている DirectX SDKのこと言ってるのかな
vc6は古すぎるんでできれば新しいコンパイラに替えたほうがいいよ express editionでよければ無料で使える
自分もかなり長期間VC6を使ってたから愛着はあるぜ。 より高機能で複雑化してるから、道具に使われてる感はしちゃうけど、 IntelliSenseがかなり賢くなってるから、それだけでも導入の価値はあるぜ。
ポインタの何が難しいのか、そっちのが分からん
>>249 ググれ
ポインタの難しさから勉強してこい
そこまで面倒みきれん
ポインタなんて簡単だと言ってるんじゃないの。
だな ポインタなんて難しいことは全くない 難しく感じるのは、教本が悪くて用途が分からないからってだけ
確かに「ポインタなんて何に使えばいいの?」って言われてもこっちが理解できなかったりする そんな立場に立ったことないし 必要そうな事(俺の場合ゲームに)を順次覚えていったらこんな感じ
そういうところが齟齬の原因なんだろうね。 これはどうしようもない事だと思うよ。 その「理解できない」事が解ってるのに、理解しないまま そういう人達に対して教えようとするからおかしな事になる。
プログラミングって論理思考のセンスが問われるからな センスが無いと「なんで分からないんだ」ってようなところで躓く
ポインタ理解出来ない=センスがない ってことじゃないと思うがなー
誰もそんなこと言ってねえよ・・・ 別の人間が書いてる内容を無理矢理繋げんな
おっとそれはごめんね
自分の場合。 セーブ実装したいな… ↓ となるとファイル読み書きが必要だよな。 ↓ 難しいと評判のポインタを使うのか! ↓ あれ、難しくなかったぞ。拍子抜け。
Cで1年ゲーム作ってる人よりもjavaを1週間だけ勉強した人の方が簡単にポインタを理解できたりするからな 結局教え方がマズイというか学び方がマズイというか ポインタそのものの難度とは別のところに問題があるのは確実
リソースの管理とか言語に依存しない抽象的な概念は他の高級言語やった人の方が理解してそうだな
頻繁にデータ(構造体)を受け渡ししたり、速度を気にしないうちは ポインタを使うメリットがよく分からないからなんじゃないかな 俺もゲームの速度を気にするようになり、関数ポインタや ローカルのポインタ変数を使うようになって、ようやくポインタの 便利さが分かったよ 必要な人だけ使えばいいと思う ポインタ使わずゲームが作れるならそれで問題ないだろうし
全部スマポでやればいいよ
スマポよりナマポ欲しい
スマタでいいからしてほしい
龍神ryの講座のソースを見て「ポインタなくても困らない」と大声で言う人の気持ちがわかった気がした 何もかもグローバルの配列を使うような世界で育てば確かに困ったことないだろうなぁ
グローバルかどうかはあまり関係ないような・・・
ポインタって要するにアセンブラのインデックスレジスタなんだよね
あそこは初心者というよりHSPとかBASICを経由してきた人と相性が良さそう はじめてゲームプログラミングをするって人には正直見せたくない
メモリ消去したのにアドレスを消さないぷろぐらまに価値はないんだよ
俺初心者だけど龍神は参考にしてないよ、ゲームプログラミングの館の方だけ見た それに龍神は筆者自身オススメしてない 特にゲームプログラミング設計の項は、あ〜こうやって作っていくのか、ってのが良くわかった それにポインタの使い方も書いてあるしね
ゲームならではの考え方ってやつね
機械語やっているとポインタの概念理解しやすいよ。
概念は理解できるけど、記述とかややこしいわ。 BCと(BC)でいいじゃん。 あと、+1したはずなのに変数のサイズによって+される幅が違ったってのもむかついたw
それにむかつく理由がわからん ポインタとポインタの間のバイトを指したい場合とかないだろw
なくはないだろうけど、現行の仕様の方がずっと便利
変数のサイズによって+される幅が違うから、ありがたいんじゃないか。 でも共用体で union A { int x; struct B{ char y[4]; } xx; } *a; とかすれば a->x a->xx.y[2] てなかんじで間のバイトをいじれる。 確かめて無いので構文が正しいかは怪しいけど大意はわかってくれw 通信のプロトコルスタックいじるときなんか、数値として見たいか バイト列として見たいか変わることがあるので、たまにやる。 リトルエンディアンが煩いが。
char*にキャストで良いだろエンディアン問題はそのままだけど 逆に利用する事で共通コードが書けるとも言う
テンプレートと相性がいい
仰る通り。char*のほうが、いろいろできるのは確か。 でもまあ、趣味の問題かな。 個人的には、char*にキャストは安全ではないという信仰があるので。
安全じゃないっていうか基本やるべきじゃない技法だね voidポインタとかと同じで、取れない(気付けない)バグの温床になりうる
>>276 もちろん現行の方が便利なのはわかる。
ただ、アセンブラはバイト単位で全部自分が管理するというところが
面倒でもあり面白くもある部分だ、という意識があったから
その意識をそのままポインタにあてはめようとして、勝手にいじられたからイラっときただけw
標準仕様がお前の感覚に合ってなかったからって一々イラッときてんじゃねえよ 言語変える度に脳卒中でも起こしてんじゃねーの?
あーなんかモチベの浮き沈みが大きい 安定してコツコツ作り続けられる人はすげーっす
モチベねぇ 日常の一部になってるからモチベもへったくれも無いからなーw それでも作ってて楽しい部分とめんどくさい部分はあるけど まずは頑張ってユーザーの声が聞けるくらいのものを作ることかな
いや、そういうのはいいです
>>287 がモチベを保てない理由が何となく分かった気がする
作業項目を細かく分けて紙に列挙する 実装完了したら横線で項目を消す 横線を引く度にささやかな達成感が味わえる
100項目のうち10項目を消化したら、なぜか残りが105項目になっているんですね とってもよく分かります
俺はそういう時は、ゲーム内のいい感じのシーンを思い浮かべてみるんだが 3Dで作ったほうが明らかに見栄えがいいということはわかりきっているから、 結局は、今時2Dゲームとか作ってる自分が馬鹿らしくなって、気が滅入るネガティブスパイラル
下手な3Dよりも良くできた2Dの方がずっと見映えがいいけどな あと3Dだと余計な制約のせいでゲーム性が劣る場合が非常に多い
明らかに見栄えがいい3Dモデルが作れでもしない限り、分かりきった結果にしかならないかと イラストとフィギュア比べるように別ジャンルを比較しても意味が無いのでは?
言葉足らずだったけど、ゲーム性の話は3Dの利点を活かせない場合ってことな
デフォルメされた非現実の世界に浸りたいのに現実を忠実に再現した3Dの世界なんか疲れるだけ 物理エンジンを使用した時点でそれはゲームではなくシミュレーター
そういうのはそれなりの物を作りつくしてから言った方がかっこいいぞ
ユーザー視点の話なのに、何で製作者視点の話になるんだ
ここがゲーム作製者の板だからだけどなにか?
いや、ユーザー視点での話をしてるのにいきなり製作者視点とか空気読めないなってことなんだが しかも理屈もよく分からんし
ふーん、理屈がわからんとな。それは失礼したな。文章そのままなので特にひねりは何もないぞ。 意味が分からないならそれはそれでよいんじゃないの?
>>295 1行目と2行目って、別の話に見えるんだが
絶対に3D(2D)でないといけないという理由が無い限り 製作が楽だと思う方で作ったらいいじゃない アイデア出し、画像素材作成、デバッグ、作曲(音楽選択)、 バランス調整など、やることは山ほどあるんだ 手を抜ける所は手を抜いて別の所に力を入れた方がいい 新しいことにチャレンジするのは良いことだと思うけど 製作が苦手な方で作ろうとして時間がかかって挫折するのが 一番もったいないからさ
楽とかそういう話じゃなくね。目的の為に手段を選んでるだけ。 3Dでしか表現できないことも、2Dでしか表現できないこともたくさんあるじゃない。
つーか人のゲームにあれこれ言う前に自分のゲーム作った方がよくね?
○○じゃないと出来ないからとか○○のが楽だからとか・・・ 大事なのは○○でやりたいからって気持ちだろ
気持ちでゲームが完成するなら苦労しない
やりたいことが定まってない状態でゲームが完成するなら苦労しない
誰もやりたいことが定まってないなんて言ってないけど?
ゲーム制作始めたばかりの頃は、ゲームを作ること自体が楽しくて、 作りたいものがなくても完成できてたのにな……
誰も気持ちでゲームが完成するなんて言ってないけど?
>>310 気持ちが大事とか言ってんじゃん
気持ちばかりで現実見てないといつまでも完成しませんよ、って意味だけど?
っていうか、鸚鵡返ししか脳が無いの?
話の流れ読めてないうえに勝手に読み違えて極論展開させてるんだからもういいよw 2Dにするか3Dにするかの判断をするのにどっちでやりたいかで決めろって話なのに
>>311 なんでお前はそんなに喧嘩腰になってんの?
つーか気持ちが大事=気持ちが全てって意味だと思ってんの?
うわあ、何か自演始めちゃってる人いるよ 夏はもう終わったのに
極論も何も、
>>305 はそれ以外に解釈できない
お前が言いたいのは「気持ちが大事」ただそれだけだからな
やりたいことを気持ちで決めてりゃ自分の手に余って大概エターナる
ま、実際に完成に漕ぎ着けたことが無い人間の意見なんだろうけどな
馬鹿晒してないでゲームの技術的な話題しようぜ!
精神論ほど救えないものはないな
利用する、便利じゃん
今自分が作ってるゲームが面白いと思えないんだけど まじ終わってる
>>318 いや。
最後は自分との戦いになるぞ。なんだってそうだ。
どっかで晒してみれ 面白いのか面白くないのか分からんのだと製作も手に付かないだろ それで面白くないって反応が返ってきたら適当に完成させて次を作り始めればいい
>>316 そりゃ読解力ないから変な解釈しか出来ないんだろ
>やりたいことを気持ちで決めてりゃ
こんな矛盾した文章書いちゃうくらいだし
夏だなぁ・・・って言いたくなるなw もう残暑も過ぎたのに
夏が許されるのは8月いっぱいだろ
3Dで作りたいなら3Dで作るべきだし、2Dで作りたいなら2Dで作るべき どっちもDXライブラリで扱うのは大して難しいことじゃないんだから 自分がイメージしてる完成形(やりたいと思った方)でやればいい なんでこうも煽られてるのかよく分からんけど これってそんなに噛み付きたくなる内容だったのかな
分からないならそれでいいんじゃね? お前以外の誰も困らん
夏の荒らしが過ぎればそれでよし
単に、こんな所で「ゲーム制作論」的考えを押し付けられても意味ないんだから勝手にやるべきってだけだろ?
>>330 そうそう、まさにそんな感じ
やりたい方でやれってだけなのになあ
〜べき、とか言っちゃう奴が何を言ってるのやら
ID:K1QSswX4
ID:3RRD63Se
この二人の連携はすごいな
自演って発想が最初に浮かぶのは自分が自演してるからなんだろうか
最初のレスの意図はまさに
>>330 だったんだけど
勝手に変な解釈されて、噛み付かれて、それは違うよって返したらお前は荒らしだって言われて・・・
踏んだり蹴ったりすぎて笑えてきたよ、もう退いとくから煽って荒らさないでね
>>322 それがいいんだろうけどな
ここで晒す気は全く起きないのはなぜだろう
普通にHP作ったりしたほうがいいのかな?
個人的には、途中で公開するのは一時的にモチベーションが下がるからお勧めしない。 評判が良ければ、ある程度満足感得られちゃうし、その評判がプレッシャーになって手が進まなくなる。 評判が悪ければ、言うまでもない。 矛盾するようだが「○○まで出来たら公開しよう」と決めて、 「ここはもっとこうしよう。いや折角公開するならここももっと改良しよう」 とやってる時が一番モチベーション高くなるな。 無責任な事を言うなら、ほんとに晒してくれて、言いたい放題言わせてくれたら嬉しいけどね。
精神論馬鹿にしてるような人がいるけど、最終的にはやっぱ精神論だぞ 趣味でゲーム作ってて頓挫する理由で一番よく聞くのって「飽きた」じゃん
や、趣味だから飽きて頓挫するも自由、ってことかも
>>337 その「飽きた」って状態にしないための方法論が大切なのであって、
「飽きなければいい」なんて精神論は意味ないよ。
完成までやるとなると必ず単調な作業的な仕事が出てくるからな 仕事だったら面倒な部分は下請け丸投げとかできるんだろうけど
飽きたら止めればいいじゃん
選んでるんじゃなくて3Dなんてハードル高くて作れないからだよ。言わせんな恥ずかしい。
精神論をバカにしている奴は、 今まで何かにつけ集中して挑戦したことが無い奴なんだろうな。 技術も重要だが、結局最後はどこまで粘れるかの精神論だぜ。
344 :
名前は開発中のものです。 :2011/09/11(日) 20:02:35.53 ID:iII2b8W2
やればできるなんて、実際やったことの無い奴の妄想か実力のあるやつの詭弁だよ。
あげやがったなw 俺が言いたいのは、 野郎としてもなかなか出来ないが、 少なくともやろうとし続けないと出来ないってことなんだ
精神論や方法論よりも成功体験の積み重ねの方が重要と感じる 小さいゲームでいいからまず一つ完成させろってよく言われるのはそういうのも含んでのことだし 製作途中の辛さとかは完成時の快感を知ってないと耐えるのが厳しい気がする
DXライブラリに関係する話をしようぜ・・・ それかさ、「DXライブラリ使用者のゲーム製作論スレ」を立てるとか・・・
うだうだ言ってないでゲーム作ればいいのに
DXライブラリそっちのけでなに言ってんだとは思うが、
精神力で云々ってのは、やっぱり無理してるわけで、
仕事でそれをやってしまうと俺みたいに鬱で何年も苦しむことになる。
理想は、楽しい気分でアウトプット。
>>346 のいうように成功体験ってのは大きい人には大きいと思う。
後は、自分へのご褒美()とか、個々人で探すしかないと思うが。
ストイックに精神力でやって楽しくなれる人はある程度はいると思うが、
皆が皆じゃない。まあ、そういうやり方は押し付けるな、ってコトだな。
付け加えれば、本当の最後には逃げるのも必要。
趣味で鬱になったら目も当てられない。
ごめん、リロードせず長々書いて
>>347 が見えなかった。
自分は何を作りたいのか? ビジョンがはっきりしていれば後は手段を選ぶだけだと思う。
俺はこのままだと膨大な時間を無駄にしたことになってしまう そうならないためにも最後まで完成させて、評価してもらえるように頑張るしかない
作品がなかなか完成しないせいで素材制作の腕だけ上がってしまった
やっぱりお前らあれか? ゲームにキャラクターいないとやっていけない感じか?
トークンという意味でなら必須と考える。 広義のアブストラクトゲームではないもの、という意味なら確かにその傾向はあるかも。
難しい単語をうんたら これしきも知らないレベルが多いからDXLibはうんたら そんな知識あってもゲームがうんたら 夏がうんたら あらかじめやっておきました。
>>356 それは思ったけど日本語に訳したら余計に分からなくなった
tes
なんか作るの飽きてしまった Unity行ってくる
360 :
名前は開発中のものです。 :2011/09/17(土) 23:36:25.61 ID:qOn1u84m
α付きPNGをLoadGraphしたものに対して、指定された座標の透明度を 取得したい場合はどうやるべきですか? GetColorでいけないかと思ったけどRGBしか取れないし……
そういう時のソフトイメージ
362 :
360 :2011/09/17(土) 23:47:58.06 ID:qOn1u84m
>>361 GetPixelSoftImage_Unsafe_ARGB8 ってやつですか!
速攻で回答ありがとう。やってみます。
3.06a来てる 画像同士のブレンドと、画像へのフィルタ処理の追加か ガウスフィルタあたりは使いどころが多そう
あとはモノトーンあたりも良さそうだな。 まだdxlib.hしか見てないけど
オーバーライドって処理速度遅いんですか? 結局switchで分岐した方がゲームプログラミングでは良いんですかね
そんな変わらんだろ
基本的に画像描画より遅い処理は無いと思え 毎フレーム数百数千newするなら別だが
ディスクアクセス>描画処理>メモリコピー・確保>演算 こんな感じか
例えば全部のステージで共通して使う変数はグローバルにした方が余計なメモリ消費しなくて済むのか? 毎回同じ用途の変数使うのに宣言してたら、ステージが2ケタにもなると無駄が多いような気がするんだが・・・
メモリがもったいないって複数のステージで同時に遊ぶの? それとも短いコード作りたいの?
変数のメモリはスコープ抜けると解放されるから同じ用途とか気にする必要ない 更に言えばPCゲームで今時変数の百個や千個気にする必要は全く無い int型1000個で4kbyteだぞ お前のPCメモリ幾つだ
同時に遊ぶわけじゃないけど、もったいないと思うのは 変数を使い捨てにしたくないという節約心かもしれない 変数の宣言は、DX初期化前に行ってるんだけど、これってスコープとかあるのか? グローバルにstatic付けてる
なんか根本的なところを理解してないんじゃないか?
言語とかゲーム製作入門の話は別のスレでやろうぜ・・・・
for()とか使い捨てもいいところ
>二つのグラフィックを特殊効果付きで合成する GraphBlend 系の関数を追加。 >グラフィックに対して特殊効果を与える GraphFilter 系の関数を追加。 ではこのあたりについて語ってくれい!
正直ライブラリそのものについては語ることがない。 仕様に関する質問なら公式に投げるし。
それをいっちゃおしまいよ
GraphBlend系関数、作者さん文章で説明するの諦めてるよねこれ サンプル実行してみると、確かに文で説明するのは面倒そうではあるけど
俺のゲーム設計は間違っているのかもしれない しかし、実行した時は目的の挙動をしてくれるから問題ない
atan2()の引数のxとyを yとxにしてしまった。 気づいたのはトライandエラーで その返り値で正常な動作をするような関数を大量に作ったあとだった。
このスレは全員DXライブラリユーザーなので助かる
最新のDXライブラリはすごいなぁ
関数呼び出すのと、for文の繰り返しが多くなるのは、どっちが処理速度遅くなる?
中身によるとしか言えない 基本的にどっちもコスト自体は無視していいくらい小さい 問題は中に書いている処理
今
>>383 見て驚いた
ライブラリの描画とwinapiの両立ってどうやってるんだ?
今までの不細工なコードをほとんど書きなおした まじ疲れたぜ
変数の中身が違うと関連処理もかわるので 「探して判断して書き直す」のが特にだるい
デバッグでwarningを非表示にしてerrorだけ表示することってできるの?
それはビルド時の話なのか
そうです 警告が多すぎてエラーが見にくいです
VSならプロパティの警告レベルをoffにすればいい もっとも警告を大量に出すようなプログラムを組むこと自体が間違いなのだが
>>392 そういうのはコンパイラのオプションで無効化するものじゃないの?
warningは本来0であるべき どうしても無理なものは逐一消す
でも古いライブラリを組み込んだりとかどうしようもない時もあるからな……
#pragma使えば特定の警告消せるよ
ありがとう ほとんどの警告がdoubleからintへの変換と、指定されたストレージクラスはこのコンテキストでは使えません とかいうやつだけど
registerとか使うときに出る警告なのか、はじめて見た
registerなんてレジスタ数の少ないx86系じゃ、どうせコンパイラは 良きに計らってはくれないんだろうな、とおもって使わんからなー。 でもx64だとレジスタ数も少しは増えるから、 将来的には意識していく意味もあるのかも。
>>398 YourFuncIntArg( (int)your_double );
キャストしろよ
シェーダー関係かな
バグ直してたら、知らないうちに直ってしまった箇所があった こういうの怖い
半月くらい寝かせておくと直るよね
バグだから、寿命が来ると死ぬのかもね。
バグは放置すると作者環境だけで発生しなくなるから困る バグ報告は来るのに直せNEEEE
世にあるいろいろな環境の対応は、個人レベルでは大変すぎて死ねる。
値渡しに、値からポインタを使ったりすると直ったりもする それより爆発エフェクトとかで大量の画像を描画したらすぐにパンクしそう それが怖くてパラパラ使えないから、回転とか拡大縮小とかでごまかしてる
お前らjava使えよ
javaとか……
javaでDXライブラリ使えるのなら 別にjavaでもいんだけどねん
Javaは止めろ、クラス化の大合唱がおこるぞ。 そんなの作者にメンテさせられん。
DXライブラリでやれることって、大体Javaが元から実装していることのような?
Javaの画像描画機能がこんなに多機能だった覚えはないが どの辺りのことを言っている?
Javaって画像の透過色指定描画もできなくね 透過させたい人はpngに透過情報持たせて描画してねみたいな
VMとかinterprinterじゃなければJAVAでもいい。
それじゃjavaの意味ないw だったらC++でいいじゃんね てかC#もjavaとおんなじようなもんなんじゃなかったっけ?
LLVMつかえばおk
C#、javaはJITですね。実行時コンパイル。 とはいえjavaは(C#は知らん)、もともとがスタック志向のVMなので、 たとえばx86とか個々のCPU最適化とかには向いてなさそう。 JIT出来るんだったら、せめてできたネイティブコードをキャッシュして 二回目以降のコンパイルを無しにしてくれりゃいいのにね。 起動が遅いのは結構イラつく。
C#にはngenがあるじゃん
javaってフラッシュゲーのためにあるようなもん
javaとjavascっておんなじものだよね きっとo(^▽^)o
結構ゲームいいとこまで出来てきたんだけど、音楽と効果音が全く駄目 だから今のところ全部無音だわ 効果音はまだいいとして、音楽ってフリー素材も限られてるしどうすれば? 自分で作れるようになるには時間がかなり必要になりそう
音楽が限られてるとかどうせ探してる範囲が無料素材だろ 少しくらい金出せ 腐るほどある
無料素材すら探し足りてないだろどうせw
DXライブラリ製のゲームのBGMって、ほどんどが煉獄庭園だよな…… 他にもSHWとかSLOSとかFuttaとかPurplePlanetとかトランキトキシン氷晶とかいろいろあるだろうに SAM Free Musicは閉鎖しちゃったぽいなー
さりげなく色々紹介してくれてありがとうw 煉獄庭園は曲多いし、色々パターン揃ってて望みの曲が必ずと言っていいほど見つかるしで ゲーム内でのBGMの雰囲気を統一しやすいし、なにより規約がゆるいしで使いやすいんだよな。 (俺のゲームの為に作られたんじゃねーかってくらい雰囲気ばっちりのが何曲かあったしw) 今製作中のはフリー曲使えないけど、次に使える作品作る時はまた煉獄庭園と考えてる。
ペイするならnashでも使うとか
最終的には自分で作れるようになりたいけどな
子供用の安いキーボード買って、よく使うコードを覚えて 鼻歌で思いついたメロディーつけたら、ある程度は聞ける音楽になった
クラシック曲も悪くないぞ
本当だ、煉獄庭園使える曲かなりあった ありがとう
他のゲームとよくかぶるのが欠点
有料の素材も結構被るけどな。 音辞典とか。 いいな!と思う音って大体被る。
かぶるの恐れてちゃフリー素材なんて使えないよ。 むしろ、「ボクが一番この素材を上手く使えるんだ……」くらいのつもりじゃなきゃ。
やっぱりゲームを最初から一人で全部作るのは難しいんだな さすがに音楽作りまでやろうと思わない いや、できればしたいけどさすがにそこまで時間を割けない
みんなどういうゲーム作ってんの? 平面全方位シューティングならできた。 ロックオン、誘導ミサイル、味方機、感知ボム、ボスはできた 外部テキストファイルから読み込む進行設定のファイル操作関数がよく分からないけど
ちょっと前は4人対戦の出来るTPS作ってた
シムシティ系の作ろうかなと思って勉強中
てか敵味方のAIがクソすぎて 機体の後ろ取られて即死ぬか、無限ループするかのどっちかなんだけど
あ439のことね 特にシューティング系はAIがどれくらいの精度で照準を合わせてくるか考えるのが難しい
俺のも糞だけど・・・ 普通に正面で撃ちあうようにすれば、自然と強いほうが勝つからそれでいいのかなって 弾を避けるとか、そういう人間味のあるAIは作ってない てか無限ループってどんな組み方してんだよ
自機と敵機の旋回速度が同じで、ぐるぐる追いかけっこするって意味じゃないの。
一騎当千型のシューティングじゃなくて、ドッグファイト的なシューティングなのか。 ある程度以上のAIは正直どうにもならないから、 戦力のバランスを崩したり、地形等を決め打ちで利用したり、勝利条件を変えてしまうのも良いと思うよ。
自機と敵機の旋回性能に差を付ければいいんじゃねえの
それやるとただの理不尽ゲーに見えると思うけど
同じ考えしてるから同じ動作なんだろう 「理由がないなら左を選ぶ」「アクセルon/offだけでブレーキ踏まない」などの癖をバラバラに付けてみるとか
つーか最適化するだけでクソゲーになるならそもそも対戦ゲーとしてもクソゲー まずゲームシステムを見直すべき
>>451 トランプのスピードってゲームみたいなもんだ
適当に弱くしないとゲームにならない
まあCPUにTASさん並の動きされると困るのはわかるが
>>439 ちょっとやらせてくれよ
URLとか貼ってくれ
1回でいいからやらしてほんと1回やらしてくれたらもう言わないからこの通りお願い
ごめんね 実をいうとボスと感知ボムはないんだ
あたり判定と描画する画像と各種ステータスが違うだけでAIは同じ
BGMも効果音もPlaySoundMemで多重再生させてるけど 「敵にhit」的な効果音とかを連続でドコドコ鳴らすと、 その間のBGMがしょんぼりになるます。 オンボサウンドだからか・・・。 しかしサウンドカード挿してる人とかあんま居ないよなー。うー。
単純に全体の波形が限界だから 東方とか有名所のゲームでも、同じ効果音が重なって再生される場合は、 一度先に鳴らしてたのを停止してから新しい音を鳴らしてるし、そっちの方がいいと思うんだけどな
>>459 なるほど!
やってみます。ありがとうございます。
>しかしサウンドカード挿してる人とかあんま居ないよなー。うー そうなのか。 サウンドカードなんて挿して当たり前だと思ってた。 慣れとは恐ろしい……。 全方位STGは、次に作ろうと思ってたジャンルだけど おっかけっこでグルグルとかのシミュレーター系は考えてなかったわぁ。 それはそれでおもしろそうだな。
今日初めてDXライブラリ使ってみたのですが ウィンドウに画像1個表示するだけのテストプラグラムを書いてみたら exeのサイズが1.4MBもある…サイズを減らす方法は無いのでしょうか? DxLib.hを覗いてみると DX_NON_PNGREAD 等のような ライブラリリンクを避ける用と思われる記述が見られたので 試しにdefineしてみたらLNK2001が発生してしまいダメでした これらを有効にしてダイエットさせるにはDXライブラリ自体をビルドする必要があるのでしょうか?
UPXとか使うといいよ リンクエラーを自己解決できないならそれ以上は無理
UPX試したけどエラーでダメだったな 俺は
画像のサイズが1.4MBくらいあったりして
俺のゲームが2MBちょうどだから軽量版で1.4MBなんじゃないの?
1.4MBで、何の問題があるんだろう? DxLibで組込は無いだろ。
うちのDxライブラリを使ったゲームライブラリ単体で
Releaseで1.4MBぐらいだった。
今の時代にexeサイズなんて気にする必要あるのか疑問
>>439 AIとか考えるの面倒なら、
その場で学習していくタイプにすればいい。
ある程度曖昧さを残す必要もあるけど。
#defineによる機能切り替えは、構チェックしにくい箇所だと思うんよ。 自分も一度だけ報告したことがあるとは言え、全体的な使用報告の数も少なそうだしさ。
>>469 その場で学習して行くタイプ??
それぞれのAIをフラグ処理すればいいってこと?
初歩的な質問なんだけど、画像ハンドルを代入した側でDeleteGraph使ったら 代入もとの方のハンドルも消去されるもんなの? 構造的にはこんな感じなんだけど・・・ int Playerimg = LoadGraph("Player.png"); int handle; handle = Playerimg; DeleteGraph(handle); これでPlayerimgの方まで消えてしまう
ハンドルはあくまで番号だからな。ハンドルに画像データが入ってるわけじゃない。 Player.pngを扱うためのグラフィックハンドルがたとえば5で返ってきたとして DleteGraphで5を削除すれば、Player.pngは消えるだろう。
474 :
462 :2011/10/06(木) 10:03:05.51 ID:KU5aw30Y
FDに入らない!とかいう時代でもないので Win32APIで同等の物を作ると100〜500KB程度で済むのでなんか気持ち悪い というだけで別に問題があるというわけではないですが… できれば長らく眠っているWin98デスクトップ上でも動作させたいのですが それはそれとして軽量版の使用も考慮にいれてみようと思います
ポインタって引数に渡す時はそれもポインタじゃないとだめ? void main(){ int status=1; kansu(&status); printf("%d"status); } void kansu(*status){ *status++; } これで正常な出力2を得られる? mainループはポインタとか使わないで綺麗にしたい
*status++; が優先順位的問題で、 (*status)++; だけど、それとこまかいtypo以外はOK。
こんだけ短いコードならコンパイラに怒られないコードに修正して自分で実行してみなよ
void mainに誰か突っ込めよ…
>>479 mainはOSにエラーコード返すのが原則
return使わないならexit(0)等が必要
というか一から勉強しなおせ
別に不具合になるわけでもないのに余計なタイピングする必要ないだろ馬鹿か
*status++;
*(status++);
次のアドレスの値。
>>475 の場合何の値が入るかわからん。
(*status)++;
アドレスがさしている値を+1する。
簡単にいうとこうかな。
優先度がわからなかったら括弧を多用していけばいい。
>>483 あとひとつ、確認なんだけどインクリメントだと、int分ズレるんだよね?
>>481 初心者向けの教本でも、void mainになってるのがチラホラあるという…
コンソールアプリでもないのにエラーコード返せとかw
>>484 そうだよ。
printfつかってアドレス表示できたと思うから
それで確認していけばいい。
void mainは、
むかし学校で習ったときこれで教わったわw
int mainにしたらreturn 0;書いてても怒られた記憶がある
本なんて買ったことないお。ゆるちて(´・ω・`)
決められた解答じゃないと怒られるのは、せいぜい小学生までにしてほしいなあ。 あと社会人(´・ω・`)
中学高校大学はァァァ
別にvoid mainでも動くだろうよ でもプログラミングは真面目に長くやってれば一つ一つのコードの整合性を気にするようになる 意味をちゃんと考えずにいつまでも書いてる奴は阿呆 少なくともvoid mainから始まってまともなコード書く奴とか見たこと無い 言っておくが宗教以前の話な
C#は普通にvoidだな
>>491 (´・ω・`)後半は完全に個人的な話やん
ポインタの動作確認の為の仮コードというのは分かっていても int kansu(int status){return status+1;} じゃいかんのかと言いたくなるコードだなw ここからどうやってポインタを渡さなきゃいけない関数に発展するのかさっぱり想像がつかん
>>491 煽るわけじゃないけど、voidじゃダメな理由、その意味や整合性を簡単でいいので説明してくれないかな。
要は現在ではコンパイラによっては対応しているが、本来はエラーがでるってことか。 それだけのことなのに何必死になってんのだか。
明確な規格違反を 「要は現在ではコンパイラによっては対応しているが、本来はエラーがでるってことか。」 とか言っちゃうあたり確かに阿呆だ
DXライブラリ使っててmainの戻り値が実用的になる場面なんて一瞬足りとも無いと思うナー
こういう奴が社内の変な慣習とかルールを頑なに強制して社内環境を悪くするんだ
>474 Windows98用のDirectX 9.0a は何処にもないと思うぞ。 もう持ってるならいいが、持ってないならDxLibは動かないぞ。
というか、有っても動くのかな? 疑問だが調べる気はないw
Windows98で動かすために DXライブラリの旧版をつかう。Ver 2.xx DirectX7を使う。
>>504 98の標準インストールは?Windows 98 (4.10.1998) + DirectX 5.1 (4.05.01.1998)
だよ、7もないぜw
俺の今制作中のゲーム糞ゲーすぎて萎えたから、次のゲームはじめる 次は育成ゲームだ
DXライブラリで半透明な部分のあるモデルを描画したい時、 × メタセコイヤのマテリアルのテクスチャ画像指定項目の「透明」 ○ 「_a」のついた画像 ○ 透過情報付きpng でおk?
おk
サンクス。 ところで、柄は無いが部分透明にしたいマテリアルを実現するのに 真っ白い画像「tekusucha.png」と透過色情報「tekusucha_a.png」を使うのはスマートじゃないっすよね 愛用のEDGEさんでは透過情報付きpngが出せないもので。
>>510 pngはセットにして_aつけても透過情報として扱われない(最新版はどうなのかわからんが)
それに、そんなことするならPictbearとかのほかのソフトでその画像を使って透過pngを作るほうがいい
edge2なら出せるんじゃね?
少なくとも俺が使ってるのは確かまだ最新版で、それではpngで実際できた。 しかし、やはりスマートじゃないからやめたいと思っていた。 pictbearなら透過色付きのpngが使えるんすね? やってみます。
edge2って有料っすよね
あ、png自体パレットでα値付きってできないんだ。やだなぁ……
パレットpngってもう使い道もあんまりないような・・
ああー俺はパレット依存症なのよねぇ…… つーかあらゆるグラフィックをドット絵でやってたからな。 手先が不器用で普通の絵が描けないっていうかドット絵は手先関係なく思考の通りにできるから好きっていうか。
別にフルカラーでもドット絵できるよ?
素人なのに48*48で描いたらものすごく時間がかかったでござる どのくらいのサイズで描いてる?
あ、まぁ確かにそうではあるが…… 1点1点色決めるのも俺には無理な話っていうか めんどくさがりだからか256色ですらほとんど使わないっていうか。
戦闘画面のキャラ絵は256×256。 フィールド画面のキャラ絵は32×32也
パレット画像ってのはパレットの色をゲーム中で動的に変えて色違いを楽に作る以外の使い道は無いんじゃないかな
いやぁ、フルカラーよりはファイルサイズサイズ小さいっしょ? 結局色がたくさんあっても使いこなせない人にとって、フルカラーにメリットはないのです、すみません
動的にってのも無理があるけど、 まあ格ゲーの色違い作るくらいだな
256*256・・・でけぇーwww もはやドットじゃなくてもいいのでは
>>523 大は小を兼ねるってことだよ
ドットで描いたものをフルカラーに変換すれば見た目は変わらずアルファだけ指定できるようになるでしょ
いや、だからドット絵以外描けないので苦肉の策でして申し訳ない
ドット絵=256色みたいな固定観念でもあるの?まあ別に問題なければいいんだけど
いやだから拘りでも何でもなくて能力的に無理なものは無理なので。 しかしフルカラーでしかαできないのならやっぱ「_a」でやった方がファイルサイズの合計で言えば少なくなるしそっちの方が良いみたい。 お騒がせしました。
何か勘違いしてたっぽいけど本人が納得したならまあいいか
色数が少ない方が楽だと思っている人と、多いほうが楽だと思っている人、 その両方がいるってことかな 画像サイズにしてもそう。
何がどういう風に勘違いなのかわからない。
>>508 の疑問も解決し
PNGはパレット式かつα付きの形式は存在せず
>>518 の言う通りドット絵とは自動変換ピクセル単位で操作し描く物でありパレットであるか否かは定義に非ず
どこら辺が間違ってるのか教えてほしいんですが。
「自動変換」のあとに「を除き」が抜けてました。揚げ足とられる気がしたので
面倒じゃなかったら.bmp+_a.bmpでいいんだけどさ なんで透過pngにしないのかな、そんな難しいだと思ってるのかな、ってこと
フルカラーアルファチャンネル付き32bitPNGありますよん
パレット式=インデックスカラーだろ フォトショにでも取り込んでRGBにして24bit+αで保存すれば良し
あとメモリ上にロードした時に画像は全て展開されるので、インデックスだろうがRGBだろうがメモリ上のサイズは同じ それどころかインデックスだと拡大縮小した時何故か存在しないはずの背景色が境界線に滲み出ることがあるので良くない
EDGE使ってるみたいだから256で描いてからフルカラーに変換するのが一手間かかるからやりたくないってだけのことじゃないのかな ちなみに無圧縮でなければフルカラーでも256と同じ色しか使ってないならファイルサイズあまり変わらないし 最近のグラボはインデックス付きテクスチャ使えなかったりするので結局ロード時にフルカラーか16bitに変換されてしまう
結局全てをedgeで済ませたかった。
しかしある表現のためにそれ自体に意味のない真っ白い画像を用意するのが非効率的であるとして、透過pngで実装したいと思った。
パレット式且つ透過pngなる形式は存在しない事がわかったので、フルカラーの性能をほとんど生かせない自分にとっては
ファイルサイズを優先し「_a」でやろうと思った。
これが勘違いだというのならそうなのでしょうね。
個人的には現段階では
>>538 の
>それどころかインデックスだと拡大縮小した時何故か存在しないはずの背景色が境界線に滲み出ることがあるので良くない
のみフルカラーのメリットだと思う。これは知らなかった。
非効率とか言いながらファイルサイズ優先しちゃってるところが勘違いかな
展開時に同じになるから何って話。 それはメリットをひとつ否定しているだけであってデメリットを指摘しているわけではないです。 展開前のファイルサイズは展開時のサイズつまりメモリ容量に比べて重要度は著しく低いとはいえ やはり小さいに越した事は無し。 とにかくそのわずかなメリットであっても、自分にとっては唯一の比較要素であって、 0.00001>0であるが如くインデックスカラーが勝るのです。俺の中では。
だから_aはpngだと出来なくてbmpになるからファイルサイズは大きくなるって
個人的には効率とはまさににファイルサイズと作業時間であり、 インデックスカラーはその両者において勝ると言いたいわけです。 とにかく俺にとっては使える色の多さというものは限りなく0に近いメリットしかないのです。
あと、特定の色を透明にする作業は一枚につき5秒くらいで終わる
いやだから
>>513 で言ってる通り実際pngでできたんだって。
DXライブラリのバージョンの問題でなくユーザーのDirectXのバージョン問題だというのならそれじゃあダメだけど。
そして言うまでもなく透過色の設定でなくグラデーションが目的。最初(
>>508 )に「半透明」と言いました。
>>546 できたのか
グラデーションとかでもできるけどな 10秒くらいになるけど
まあできるなら結局は自分が楽な方法が一番か
ID:zLldlMcCは支離滅裂すぎるんだよ。
結局俺らがなんて言っても何かと理由つけて拒否してるだけじゃん。
最終的にはドット絵レベルでファイルサイズとかみみっちいこと言い出すし、一体何様だよ。
>>543 アルファチャンネル付のpng画像使っといてできないとか言ってるんだろ。
ちょっとは考えろよ。
「特定の色を透明にする」という文章をどう好意的に解釈しても
「指定した色の部分の透過率をα1、それ以外の透過率をα2とする」という2種の透過率を扱うに留まるとしか思えない。
少なくとも俺は指定した色の部分の透過率を0、それ以外の透過率を任意のα(SetDrawBlendMode( int BlendMode , int Pal )によって指定)とする方法しか知らない。
それと、拒否も何も
>>538 の二行目以外ほんとメリット無いんだからしょうがないでしょ。
PNGのデータ構造を調べたところ自分が想定していたα値付きパレットができないとはっきり分かってしまったわけだし。
結局自己解決できたのに質問してしまった事についてはほんと申し訳ないです。
しかしその結論を理由と共に述べたにも関わらず勘違いしている等と言われ尚フルカラーpngにせよと言われた事に、
「いやだからそれは調査の結果個人的にはメリットが無かったのだ」と言う事すら許されず「何様」と言われるのは納得できない。
なんでPNGの仕様にアルファ値付きインデックスカラーが無いと思う? 必要ないからだよ
煽りじゃないんだが、文章が支離滅裂で、何を言いたいのかわからないから、それは何か勘違いしてるんだと思った 自分の得意な方法に拘るのはいいんだが、自分がその作業が楽だと思ってても、他の方法の方が一般的には効率がいい場合だってある その認識の違いで自分の拘りと非効率的だと言われてイラっと来てもそれは仕方ないんじゃないか
他に比較すべきメリットがあるのならファイルサイズ「みみっちい」というのは確かですが
他に比較すべきメリットが無い場合はそれこそが最大の比較要素であり、逆にそれを否定する理由は無いと思うんですけど。
何か間違ってる事言ってます? どこら辺が支離滅裂なんです?
質問者は質問と関係ない指摘に対しても反論する権利が無いのですか?
>>551 そんなことは、アルファ値付きインデックスカラーのPNGが存在しない事を知った時点で分かってます。
逆に何を以て俺がそれを分かっていないと思ったのかが疑問です。
はっきり言ってそのように判断されるような発言はどこにも無いと思っています。
>>552 だから拘りじゃなくて、できないものはできないって何度も言ってますよね?
「本当はできるのにできないと判断してしまっている」可能性もあるますが、
「過去に絵を描こうとしたができなかった」等の情報を元に判断した結果、
存在する可能性のある方法の所要時間の最小値の期待値+模索する時間が現状の方法より少ないと判断しました。
その判断が間違っていると思ったのならそれについての反論はありえると思います。
ここで自分が分かっていなかったのは
>>508 と
>>510 についてだけなのに、なぜ何もかも知らない愚か者のように言うのですか。
それが本当に心外なんです。
文章が間違っているというのなら具体例を挙げてください。でなければ本当に煽りでしか無いわけですが。
はっきり言って勝手に勘違いしてあーだこーだ言い始めたのはそっちだろと言いたいです。
繰り返しますが、最初の質問の必要性については本当に申し訳ないと思ってます。
落ち着け
文章云々以前に
>>532 で噛み付いてる時点で誰もID:zLldlMcCを正しいとは思わない
多少納得のいかない書き込みがあっても自分の質問の仕方が悪かったかも、と自省するぐらいが調度いいよ
ここまで全ての勘違い認定に対して、それはそちら側がこちらの言い分を誤解しているだけであると説明したと記憶してます。 そしてその際、訂正を行ったり情報の追加等は行わず、ただ文章を変えて反復してばかりだったとも記憶しています。 つまり元々の文章からも文面通りに受け取っていただければ誤解はありえなかったと思っています。 はっきり言って、こっちの発言を勝手に曲解されているような印象を持っています。 それでもこちらが悪いというのなら謝りますが。 ほんと、どの発言が間違っていると具体的に言ってくださいよ。 突然思ってもいなかった事に対する反論がなされていて実に不快です。
思っても居なかったどうでもいい事で食い下がられてこっちもびっくりだよ わかりやすく文章が書けなかったから勘違いが起きた、それだけでいいでしょ
とりあえず長文うざいから落ち着け
pngでもアルファチャンネルの読み込みができると言う事を知らなかった上に
>>513 を読み飛ばして勝手に勘違い認定しても相手の文章が分かりにくいのが原因ですか。
ほんと理解に苦しみます。
個人的には、レスが多い中で
>>513 を読み飛ばしてしまう事は仕方ないとはいえ、少なくとも相手のせいにするのはおかしいとしか思えないのですがね。
さっきから連投規制ばっかり出てるんでもうやめにしましょう。
支離滅裂だから勘違いしていると思った等という論理性も欠片も無い言い分で他人を否定するのが正しいと本当に思っているのでしょうか。
せめてそれだけもう一度考えてほしいと、最後に言わせていただきます。
お前の文章が支離滅裂で勘違いしたのはお前じゃないと思う
>ID:zLldlMcC 喧嘩やりたいなら他へいけよ 話の内容はともかく行動に関してはお前が完全に間違ってる
くだらなすぎてワロスw
>>532 PNGには32bitパレットてのが公式テスト画像にあった気がする
DXライブラリ側が対応してないだけじゃないか?
32bitパレットは無いが、パレットの色毎に透明度の指定は可能だよ。
ID:zLldlMcCは何が言いたいのかまったくわからん。 普通の人は与えられた選択肢の中からどれでもいいから選ぶだろ。 それをパレットに拘ったり、ファイルサイズに拘ったりするなら自分で考えて勝手にやってろって話だよ。 1.透過度付きパレット式png使う → そんなんできないし〜 2.描き終わったドット絵に、アルファチャンネル追加して透過度設定、フルカラーpngで保存しなおす → できないものはできないから〜 3.マスク用画像使う → ファイルサイズが〜 否定したいだけちゃうんかと。 んで最終的に「仕方ねーからファイルサイズでかくなるけど3でやるわー妥協だわー」って言ってれば 助言した人たちに何言われても仕方ないだろ。
あのさぁ、百歩譲って文章が分かりにくかったとしても
>「仕方ねーからファイルサイズでかくなるけど3でやるわー妥協だわー」
なんて、言ってる事と正反対に受け取られるのは意味わからないんですけど。
結局のところ3が一番小さい(というより1は存在せず2は3より大きくなる)とわかったから3にすると言ったのに。
http://homepage2.nifty.com/sophia0/png.html#IHDR このページの
カラー・タイプ:
0 = グレイスケール
2 = RGB
3 = パレット
4 = グレイスケール+アルファ
6 = RGB+アルファ
このイメージヘッダの構造の説明を見てもわかるとおり、
パレットビット(1)が1でアルファビット(4)が1なる
1+4=5 も 1+2+4=7 も存在しないの。だから1は無理なものは無理なんだっての。
そして2と3では3のほうがファイルサイズが小さいのだから、3を選んだ。
この選択のどこに問題があるの?
何が言いたいのかさっぱり分からん 用が済んだならさっさと出て行け
変なのが暴れてて邪魔すぎる
用が済んだのにグチグチと主張してもいない主張まで作りあげられて批判されて黙ってろっていう方が無理だろ。 だって情報の欠落が原因でそれを埋める際に誤解が発生するならまだしも はっきり明言している事について正反対に誤解するとかさすがにあり得なすぎるでしょ。
うざい消えろ
なんでそこまでファイルサイズにこだわるんだろ 全然意味のないところを最重視してるから、他の人とズレてしまうんだと思う
どんなに小さい比較要素でも他に比較要素が無ければ最優先事項になるって何度言えばわかるんですか? いい加減にしてよ。 俺だって消えたいのになんでいちいち回答済みの事を蒸し返すわけ?
顔真っ赤ワロスw
そりゃ真っ赤にもなるよ。 なんで極当然の事を言ってるだけのにいちいち批判されるかわからないんだけど。
終わったら消えろよ
>>565 そのページのtRNSチャンクの説明と原文含めてよく読め
その文章がどんな気持ちで書かれたかわからない、文面通りにしか受け取れないアスペなんだろ 自分の中だけのルールを当然だと思い込んで話すのは高機能自閉症の典型例だよ 自分の文章が支離滅裂だってことは、答えようとしてくれた人は一生懸命考えてくれたってことなのに、そこに感謝できないんだから
文面無視して言ってる事と正反対に受け取る人よりマシでしょ。 そんな人相手じゃあまともな会話なんてできっこない。 それとも「行間からこっちの感情を読み取ってよ><」なんてわがまま言うの? ルールも何も無いでしょ。例の結論を導く過程に間違いがあるのならじゃあそこを指摘すれば良いのに、 あらかじめこちらの背景事情を述べても無視してフルカラーにしろフルカラーにしろって押しつけてるのはどっちだよ。 それに、一生懸命考えてくれたとは到底思えないね。 勝手に誤解して的外れな事を言ったのを指摘されてこっちが悪い事にしようと努めているようにしか見えない。
親しい仲の人と何となく過ごしてる時は空気を読む事も必要だろうが、 物事の是非を話し合ってる時はむしろそういうのは排除して話すべきじゃないの? だからこそ俺は積極的にそうしたんだけど? あいまいな部分を無くして、相手の発言は文脈通りに受け取るように。
>>577 自分が誤解されるような言い方をしたのに対して反省はないの?
実際のお前のやり方が一般的には非効率的なのには変わりないんだ
自分では説明したつもりだろうけど、その背景事情もロクに説明できてないよ?
こっちが文面以外のこと想像してあげないと何がいいたいのかわからないレベルで言葉が足りてないよ?
必死すぎワロスw
だから具体的にど発言をどのように受け取って誤解したのか具体的に言えよ。 支離滅裂だからわかってないと思った、なんてお茶を濁したような言い方してる時点で 雰囲気だけで物事を見てたんだろ。 はっきり言ってそんな奴の思考をコントロールしろなんて無理。 予想の斜め上すぎる読解してくる奴に「誤解のないように話せよ」なんて言われても トリップからトリップキーを割り出せって言われてるようなもんだろ。
>>581 誰をお前をフォローしてない時点で自分の正当性に疑問を持てよ…
とにかくこのスレを荒らすのをやめろ、関係ない人間を巻き込んで迷惑を掛けているということを自覚しろ
久しぶりに新着レス大量だと思ったら変なの湧いてたのか
>>581 お前がアスペだからわかんないんだろ
お前以外はみんなどこに問題があったのかわかってると思うぞ?
ID:zLldlMcCの肩を持ってる人が居ないのがその証拠
アスペの人って何人か見たことあるけど、どいつもこんな感じなんだよなぁ……
気を遣って言ったことでも「そうじゃねぇ!お前頭おかしいだろ!」って怒り出すし
アドバイス求めてくる癖に、人のアドバイスを否定するばっかりなんだよな
ちゃんと論理的に話してくれるか、それができないのなら自分が勝手に誤解したという事を認めればここまで執着しねぇよ。 認めない癖に、かといって論理的な反論をしないからダメだって言ってんだろ
だからまず俺の認識のうちどれが間違ってるか言えよ。 言えもしないのに今度は人格否定とかするかわ意味わkんねぇんだよ。 そりゃ短気で、事実ならざる指摘をされたら言い返さずに居られないところは悪いところだと思ってるが かといってそうすること自体を、相手方は批判する権利は無い。 間違ってたのはそっちなのだから。 間違っていないというのなら再度、どの認識が間違ってたか具体的に言えよ。
もうまるっきり自分ルールの押し付けになってるな 自分の中だけで世界が閉じてる だから自閉症
どこがどういう風にアスペなんだよ。 議論が紛糾した時はむしろ一般的にアスペと呼ばれるような方向性に近づいた方が良いからそうしてるんだろうが。 こういうときに文脈通りに受け取り話す事を徹底しない方がおかしいんだっての。 でなければそれこそお前らのように相手の主張を勝手に捻じ曲げて反論しやすいようにして反論するという自己満足に発展するんだろうが。 そのような議論に正当性があると本当に思ってんのかよ。
議論の前の書き込み見てもわかるってば
とりあえず
>>584 がアスペルガー障害者というレッテルを貼り付けたいだけという事は理解できた
結局フルカラー画像を作る技術が無いってことでこの話終わったんじゃなかったの?
フルカラー使う技術がないって言ってるのにやたらフルカラーを勧められ アドバイス側の「勘違いしてるみたい」発言に遂にブチ切れ、以後粘着 たったこれだけの話、普通なら余計なお世話の一言で済むだけの話なのに
アドバイスをもらいに来たんじゃなくて自分のやり方を肯定してもらいに来たんだな
じゃあ俺がアスペってことでいいから終わりな いい加減スレチ
いや、俺がアスペだ
なんか新着レスが大量にあるな?と思ったら何だこの流れw トピック自体は興味深いんだが
このスレで煽りあいとか久しくなかった気がするんだが・・・ 結構くだらなかったり、初歩的な質問でも答えてくれる人がいたのにな 荒らしとか勘弁してほしい
×煽り合い ○アホが一人暴れて叱られてただけ
>>598 くだらない初歩的な質問に答えてあげた結果がこれだからな。
もう笑うしかないわな。
自分で考えろって冷たく突きつけるのも大事かも知れんわ。
>>599 そういうのを煽りというんだろ。
スルーしろよ。
>>434 煉獄庭園ずいぶん前から繋がらないんだけど
実は閉鎖はしていない?
>サーバが見つかりませんでした
>www.rengoku-teien.com という名前のサーバが見つかりませんでした。
Googleのキャッシュやスクリーンショットは見られるけど
IPアドレスで弾かれてるんだろうか
プロキシを試してみてもダメだった
個人サーバーで不安定だったりするんじゃないのかな。
そもそもIPアドレスひけないし実質上の閉鎖だろうな
フツーに繋がるけど モバイルで大元が圧縮鯖挟んでるとかじゃなくて?
606 :
602 :2011/10/09(日) 15:59:28.37 ID:iabkOQY6
>>603-605 やっぱ繋がる人と繋がらない人がいるのか…
ちなみにうちは関東でOCNのADSLです
俺も繋がらない。なんかDNSが解決できないとかいうHTTP105エラー出してくるね
HTTPにそんなエラーコードなかったわ 適当に言ってすまん とりあえずDNSがどうとかは言われた
サーバ移転中なんじゃないの? 繋がるヤツがいるならドメイン名の解決ができないだけっぽい
Server: nv-tf541.ocn.ad.jp Address: 222.146.35.138 *** nv-tf541.ocn.ad.jp can't find www.rengoku-teien.com: Non-existent domain Server: nv-kf541.ocn.ad.jp Address: 221.184.25.26 Non-authoritative answer: Name: rengoku-teien.com Address: 121.83.238.36 Aliases: www.rengoku-teien.com DNSがおかしいな
>>605 すまん。ろくに調べずに早とちりしてた。
www.rengoku-teien.com のネームサーバに問い合わせれば正常にIPアドレス引けるし、DNS周りが変な状態だな。
利用しているISPによって繋がる人と繋がらない人がいそう。
繋がらない人は C:\Windows\System32\drivers\etc\hosts に下の1行追加すれば見られるようになる。
121.83.238.36 www.rengoku-teien.com
Record expires on 07-Oct-2011. whoisしたらドメインが失効しているようだ
ついったによるとレンタルサーバー代金未納が原因らしいw
いつものことだな
煉獄庭園 繋がらん でググッたらここ出たがなんか妙なことなってんのな 久しぶりに聞こうと思ったら俺もサイト繋がんねえわ。 まあいい 今日聞くのは諦めよう
ふざけんなよ フリーゲームのサウンドモードにあるのだけ聞こうと思ったらBGMが流れない ゲーム自体何故か効果音しか出なくなってる なんだこれ呪いか
SWシンセのミュート解除しろ
>>616 おまえは呪われている。 呪いを解くには、いますぐPCを窓から投げるんだ。
SWシンセが何か分からん つかググってXリッパーってので抽出出来たから これで満足する じゃあさらばだ。これがなきゃ一生来なかっただろうゲーム制作板の住人達よ
全角文字が何故か3バイトになってるんだけど、なんでだろ?おかしい
マルチバイトなら全角3バイトはよくあるよ
そうなんだ、ありがと てっきり2バイトだけかと思ってたから焦ってしまった
3バイトとかますますわけわからなくなるな
UTF16使えば普段使うだいたいの文字は全部2バイトになってちょっと楽だよ!
早くもビシャモンを組み込んだ猛者が出たらしいね。ちょっと期待。
UTF-8なら3バイト
最初にCをやったんだけど、今ホームページ作ろうかと思い HTMLとかscriptとかやってるんだが、Cよりも簡易的というかやさしいな
少なくともこの時世では、Cは難しい言語の1つとしてカウントされるからなー。 しゃーない。
つーかCはプログラミング言語、HTMLはマークアップ言語、Javascriptはスクリプト言語 全部性質が違う
まあまあ、そんなつんけんしなさんな
べっ別につんけんなんかしてないわよッ
だが、やっぱり根本にあるのはCだな
stlがないのとポリモーフィズムがやりにくいのがなあ やっぱりC++がなんでもできて最強だと思うわ
いや、他の言語にもArrayとかあるし
635 :
名前は開発中のものです。 :2011/10/16(日) 22:51:01.71 ID:pqHWn5bE
工業高校2年生です DXライブラリでイライラ棒作りたいんですけど、 サンプルをつくっていただけないでしょうか?
どういう作り方をすればいいんでしょうかとかじゃないんだね()笑
わらた
>>633 JavaScriptは多重継承(多段階継承はもちろん)も実装できるぞ。
ハードウェア制御、実行速度、数理ライブラリ蓄積の面を除けばJavaScriptがガチで最強。
最近実装速度とかも大分強化されてるけどね セキュリティに関わる所は永遠に無理だが
>>635 小学生や中学生でも本買ったり、ネットで調べりゃ作れるだろ。
工業高校2年生なら自分で考えて作れるレベルじゃないんか。
向いてないからやめろとしか…。
いらいら棒とか楽しいか? どうせ作るならもっと面白いの作れよ
おもしろいイライラ棒もあるぞ 15分くらいは夢中で遊べる
何故だろう。いっそ清々しい気持ちになった。
今の子でもイライラ棒を知ってることにびっくりした 高2だと流石に炎のチャレンジャー見てた世代ってわけでもないだろ
最近だとブラウザゲームでたまに見かけるな
ウッチャンヘアピン→ギザギザ道→ナンチャンカーブ
炎のチャレンジャー懐かしいな 大学生だけど、すげー昔見てた覚えがある 今の子供(っていっても小学生)はDS一筋だよな、マンションの子供全員持ってるわ 高校生はわかりません
ゲームに詳しい子供であれば、実際のTVを見たことが無くても、 ゲームジャンルの1つとして普通に認識されてるのかもしれん。
カラスを操作するブラウザゲームがイライラ棒って感じだったな 壁に接触したら死ぬ上に、岩とか落ちてくるトラップあったりした
遅い弾を避けるだけの弾幕シューティングよく蔑称としてイライラ棒っていうけど、 弾幕シューティングって、弾が来ない位置とタイミングを見計らって位置取りしていくだけだから全く違うんだよな…… 狭い地形のある非弾幕横シューの方がよっぽどイライラ棒だった
そりゃまあ(地形−背景)=当たり判定の壁≒遅い弾幕だからね 手間を掛けずに地形作るにはいいやり方だよ
ごめんちょっとわけわかんない
「避けなくてはいけない」という意味で「弾幕」も「地形」も同じ。 もちろんプログラム的にも同じ。 だが、ゲーム製作で地形を用意しようとするとグラフィックからなにから全部用意しないといけないのに 弾幕なら弾を並べるだけ。 というのは昔からよく言われてる事。
俺が言いたいのは、 「イライラ棒」とは自分で能動的に道を進んで行かないと、イライラ棒じゃないよねってことだった 弾幕は目の前に来たものを避けるだけで済むから違うよね、ってこと
イリイラ棒も壁が動いたり回ったりしなかったか
見た目じゃなくてプレイ中の気分の問題だと思う 大量の低速弾が画面を埋め尽くしてそれにしばらく耐えるような弾幕は 凄くイライラ棒っぽい気分になる
657 :
名前は開発中のものです。 :2011/10/19(水) 20:00:46.88 ID:SKQ+CrPd
DXライブラリってゲフォ向けに最適化されてるの? HD5770が8600GTより遅くなることってあるのかな・・・
DirectX7で描画してるならあり得る
659 :
635 :2011/10/19(水) 21:18:16.65 ID:vvTal2Rb
作れよ
とはいっても弾膜シューは作りやすいから、個人制作の場合 多くの人がまず最初に取り組むと思われるジャンル
弾幕の2文字が付かなければ、同意してもいい
>>635 明日ヤングガンガン読み終わってから作ります
敵とその敵が撃つ弾があるとしたら、敵という構造体の中に本体と弾をいれるべきか? 俺がやってしまったのは、敵の配列と敵の弾の配列を全くの別物にしてしまった。 Enemy[10], EnemyShot[10][100]みたいな感じ だから弾の計算するときに必ず、敵の情報を引っ張ってこなければならなくなった これはやっぱりまずいか?
>>663 弾を区別しなきゃいけない理由が分からない
>>663 まずくはないけど結構気持ち悪いかも
俺なら紐付けが必要な場合、弾に敵オブジェクトへのポインタを持たせて、配列はEnemy[100]、Tama[1000]みたいにする
>>663 もしかしてシューティングじゃなくて誰が誰を撃ったという個別の情報が必要なゲーム?
敵の情報ってのはどんな情報か知らんけど、弾→敵を参照→敵側で弾を操作って感じにしてるってこと? 弾側で予め、まっすぐ飛ぶとか追尾型にするとか書いとけば敵の情報なんてなくても大丈夫じゃないかね。
敵を倒したら、その敵が撃った弾を消したいとかしたいんじゃない?
関連付けが薄すぎて、
>>665 の言うように気持ち悪いというか
別に区別しなくても出来てはいるんだが、設計上気になってしまって
敵が弾を持っている、という感じの設計の方がしっくりくると思った
俺は、「キャラ一体が撃てる弾は4発まで」という縛りのあるゲームを作った時は同じやり方したな。 今はキャラも弾もいっしょくたに扱ってる。 ぶつかればミスなのはどっちも同じだし。
>>669 >>663 と話が違うぞ。区別しなくてもできてるならどっちでもいいじゃん。
気持ち悪いから変えたいと思うなら、勝手に変えればいいだけで…。
まあ普通は敵の中に弾を入れとくと思うよ。
でも基本は当たり判定のときくらいしか外部で使わないし、
使用中の弾のポインタ配列でも作ってまとめるんだろうから結局変わらん。
>>671 敵が破壊された時に一緒に弾も消えるなら敵の中に弾を入れてもいいと思うが
破壊されても弾が残るなら別にした方がいいだろ
無効になった敵が有効な弾を持つのは気持ち悪い
>>663 class Enemy;
class EnemyShot {
Enemy *Parent;
};
これでOK
俺の場合、敵(親)→弾(子)にしたいのなら配列ではなくリストで繋ぐ
メモリ効率優先なら
>>665 のように弾(子)→敵(親)にする
>>674 敵1に、敵2および弾1-1へのポインタを持たせておき、
弾1-1には弾1-2を、弾1-2には1-3のポインタを持たせる感じ?
で、その親の分の弾が最後まで行ったら、敵2に移動すると。
676 :
662 :2011/10/21(金) 21:13:43.58 ID:vqRrJukR
ぷれすぼたんとぅすたーとのボタンが何か分からなくて行き詰ったんでゴミ箱にポイした
>>675 そんな感じ
実際は判別用のIDを持たせて敵も弾も一緒くたにして木構造にしちゃう
敵同士の親子関係とかもまとめて制御できて楽
>>673 これもリストってやつ?
このポインタからEnemyの情報が得られるのか
リストとか使い所あるのか?とか思ってたけど案外使うのか
異種リストつかってないのん? 便利なのに
リストって解説だけ読むと何の役に立つのかさっぱりわからんのだよな。 数字並べてどうするのかと。
そういうのは必要になった時理解できるのさ ポインタとかもだけど
概念の勉強1 → 概念の勉強2 → 概念の勉強3 → (しばらく放置) → 実際に使う現場 ポインタが分かりにくいと言われるのは、 この乖離によるものじゃないかなあと。
副作用のある、でもグローバル干渉をしない関数つくろうとすればいくらでもポインタ使うんだけどなあ この2つを同時に行う場面はそう少なくない
>>683 いや普通、ソートとかってさ、データベースで、データ本体があってキー項目があってキーにしたがってソートする、
って時に使うと思うんだが(それなら初見でも使い方が解る)
listの解説って、そういうとこの説明がすっぱり無いからさぁ……w
まぁ、使わなくとも力業で何とかなるからなぁ。 listは付けたり外したりが容易で、何でもくっつけられるぐらいに思ってたらいつか使い道が閃くんじゃね? ソートが分かり易いなら2分木について調べてみるといーよ。
listは、配列の途中への要素の追加・削除を高速にしたい場合に使うんじゃないかな……使ったことないけど それ以外だとlist使えば便利だっていうシーンは浮かぶけど、普通の配列でもゴリ押しできちゃうんだよなぁ
一応listはソート目的で使ってる。それこそ力技だけどw キャラIDの上限を65535と限定した上で ソートキー*65536 + キャラID の数値をlistに登録してソート後、順読みしてキャラIDを取り出すというやり方。
listを知らなかった頃に自分がどうやってSTG作ってたのか思い出せない…。 #define TAMA_MAX 500 Tama tama[TAMA_MAX]; とかにして、死んだ弾の配列番号に新しい発射弾を割り当ててたんだったかな…
使い出したら便利すぎて使わないで書くことが出来なくなるよな
最初はみんなソフトウェア原始人
>>680 リストじゃなくてただの参照保持だよ
というか連結リストのことだよね?皆std::listについて言ってるようだが
言い出しっぺとしては言語依存しない話をしてたつもりだがw まぁlistは名前の通りリストなんだからいいんじゃね? これがきっかけでSTLに興味が湧く人がいればそれはそれで良い事だし 一部ゲームプログラマがSTLに否定的なおかげで意味も理解せずにSTL拒否してる人が多いからねぇ
>>690 list知らなくて毎回頭から生死を判別して探してた
このスレ勉強になります
>>694 逆よ逆。
理解できないからSTL拒否してるだけ。
理解してしまったら涙がちょちょぎれるようになるって。
俺含めて周りでもそうだったし。
てか俺も別にstd::listに限った話は無いんだけど、ま、いっか
できるやつは自前でマップ作るけどな STLなんか使うより高速に動作する STL使うやつは甘え
そもそもの考え方が違う STLってのは誰がどのアルゴリズムを使っても同じようなコードになることを目指してる STLなんかよりも自作でそれ以上のモノを用意できる、じゃなくて STLで書けるものを自作で用意しちゃいけないって思想なの だからSTLはパフォーマンス第一の一部ゲームプログラマとは相性が悪い ただコンシューマ機ならともかくPC上のプログラムでは基礎ルーチンのパフォーマンスなんて STLの生産性や可読性に比べたら大したアドバンテージにはならんのよ
すみませんSTL理解できてません。すみません。
STLでたたき台を作ってから同じようなインターフェースの最適化されたやつをつくるもんさー
STLコンテナはアルゴリズムも含めないともったいないし カスタムアロケーターで効率あげることも出来る
で、実際STL使ってる人ってどのくらいいるの?
オブジェクトポインタの配列にVECTOR使ってます 固定長で使ってるからコンテナ特有のメリットは、クラスのソートが楽ってのしかないけど
vector list string くらいかな for_eachはstd::for_eachではなくマクロfor_each使ってる
mapとsetもよく使う
>>695 最大数が決まってるなら、ぶっちゃけ配列+空席を探す方法でも全く問題ないと思うんだ
TamaList.push_back(tama); で済む処理をわざわざ for(i=0;i<TAMA_MAX;i++){ if(flase==TamaArray[i].alive()){ TamaArray[i]=tama; break; } } みたいに書くのを問題ないと思える感覚が理解できん
その2つは等価じゃないと思うんだが
何をもって等価と判断するかの基準をまず示してくれ
そもそもarrayとlistの比較なんだから処理内容が等価じゃないのは当たり前の話だぞ
(条件的にはlistの方がはるかに効率的、だからこそ
>>695 はlistを知って勉強になったと書いたのだろう)
あとタブ入れ忘れてスマン
あ〜、「みたいに書くのを」ってところだけ見てコーディングレベルの話をしていると勘違いしたってところか
list使えば単純に要素を追加するだけで済む処理と
要素をプールしてある配列から空き要素を探して割り当てる必要がある処理(最大でMAX弾数分のループを回すことになる)
を比較して後者が全く問題がないと思える感覚が理解できない
これで納得行くかな?
>>709
まぁlistも割り当て時に内部で同じような事やってるわけだからそこまで噛み付く必要もないな あとCしか触ってない人には後者の方が分かりやすいのかもしれん
>>695 C++は覚えた方が楽な記述が山ほどあるけど、それがキリがないほどあるから
適当なところで見切りをつけたらいいと思うよ。
>>708 個人的には、自分で使うならlist、初心者に教えるなら配列の方が楽かなー?くらいの感覚ではあるんだが、
ちゃんとしたライブラリがあるならコード量はあんまり変わらん気がするw
Cと、C++は、前者の拡張が後者という気がするけど、 C++と、C++ + SLTはある意味別言語、という気がするんだよね。 理解できなくは無いんだけど。 boostにいたっては宇宙語かと。
>>715 boostは楽なんだけど、
両方ともテンプレート知らなかったらとっつきにくいかもね。
listか…… ソース見てないから、オブジェクトを削除した場合に削除されたオブジェクトが何処に行くのかが分からないから、 なかなか使う気になれないんだよな。というか、メモリーの虫食い現象が怖い。
デフォでは単にdeleteされてるだけだよ。 アロケータをカスタマイズするといいよ。
listっていうか動的配置全般の問題だわな 気になる人はアロケータ自作するんだろうけど
アロケータ自作したほうが不具合多いけどね よっぽどの理由がない限りSTL使った方がいい
オブジェクトの実態は固定の配列に オブジェクトへのポインタをSTLのコンテナに
ちょっと自分のやり方晒してみる
要求されるコンテナサイズの統計取って大きい方から1割を除外したときの最大サイズが収まる64の最小の倍数を基礎サイズにする
このサイズ以下については予めプールしたものから固定サイズ分割り当てる
実体がすべて同じサイズになるので再配置しなくても未使用領域が発生しない
それ以上については普通に割当
>>720 え??????
そういや自作アロケータって使ったことねーなあ。
自作アロケータははいろいろ考え始めると割と大変なのよ・・・
自分の場合はvectorでクラスを大量取得しておいてインデックスで管理してる。 で、削除したオブジェクトはインデックスリスト(vector形式)から除外して、 再取得した場合に削除リストからインデックスを取得して再利用してる。 昔はもっと面倒なやり方をしていたけどな。 GlobalAllocのGHNDフラグを多用してWindowsに処理を任せたり、 自前でガーベージコレクションを自作したりと、色々試した。 まあ、この辺りの処理は別の事に役立ててるけどな。
STLだけで別スレ立てた方が良くないかい?DXライブラリの話から随分外れてる気がするんだが。
独立スレというほどではないにしても、総合スレかデータ構造スレで話すべき話題だったな。確かに。
個人的には ゲーム作る為にプログラムやっていて且つDXライブラリを使っている人間 の観点で語って貰えることが多いのでここだと助かる。
>>722 そうやってドヤ顔で自作アロケータ自慢してくる奴腐るほどいるけど劣化STL劣化boost以外見たことないわ
バグ多いし
不具合が多いかどうかは、本人の能力次第なんであって 自作する事自体が悪いわけじゃないんじゃ。
>>730 その「本人の能力」と不釣り合いなアピールしている人が多い
という意味でしょ。
しゃーないっちゃしゃーない。
作ったものを見てもらいたいって気持ちは誰にでもあるからな。
実装もだけどカスタムアロケータが必要な規模のゲームてどういうのか参考までに知りたい
弾幕系は自前でやったほうが気持ち的にはいい。 しかし、new、deleteでもタイム計ると遅いけど 操作に支障が出るようなことは無い。 昔は自前で作ってたけど、いろいろと面倒なのでいまはそのまま使ってる。
>>731 >その「本人の能力」と不釣り合いなアピールしている人が多い
>という意味でしょ。
それは
>>729 の意味だろう。
730は元々の
>>720 について言っている。
それとも
>>720 も不釣合いなアピールについて言っているのか?
俺には720自身が以前自作したけどバグ多くて使い物になりませんでした、と言ってるようにしか読めなかったが。
俺は722じゃないが、722の720に対する「え???」と同じ感想を持った。理由は730の通り。 が、722が既に書いていたので俺は書かなかった。 で、729は720の補足だなんて言ってるが、とてもそうは読めない。単に後出しで722をけなしてるだけ。 だから改めて720の内容がおかしいんだよ。と730で言っている。
もういいですよ そんなこと明らかになってもだれもどうでもいい
通常レベルの思考を持ってれば、え???の後の思考をするから、え???で終わらないんですよ
739 :
722 :2011/10/24(月) 19:56:44.20 ID:niSNoLvS
技術晒すのはそれについて正負両面から評価してもらいたいのと
他の人がどうやってるのか知りたいから
具体的な数字出すのはより具体的な話をしたいから
概念的な話はゲーム作ってない人でも語れるからね、俺は実際に作ってる人の話が聞きたい
>>720 思いっきり言葉足らずだったかな
STLってアロケータの自作許容されてると思ってたんだけど俺の思い違い?
いや、STL含めたアロケータ自作について語ってるつもりだったのにSTL使えって書かれてたんで??????ってなった次第
デフォルトアロケータのこといってるのかと思ったら今度はboost持ち出してるしちょっと考えの軸が分からない
>>732 弾幕亜流
128〜4Mbyteまでのオブジェクトを最大同時10000程度制御する必要があり、且つ処理落ちしないように瞬間的な処理の集中を防ぐ必要がある
一応簡単に差し替え出来るようにしてあるんだけど、なぜかグラフィックがボトルネックになるはずのノートの方が処理が軽くなったように感じるらしい
まぁ実際プラシボでもいいんじゃないかと思ってる。所詮自己満足の世界だから
DxライブラリにLGPLライセンスを適用して配布することは可能でしょうか? 素朴な疑問でごめんなさい
743 :
741 :2011/10/24(月) 23:08:52.32 ID:5ZMwlQz5
>>742 LGPLでライセンスされたコードを再利用しているので・・・
配布する際にはLGPLでライセンスしなければいけないのかなと。
何を言わんとしてるのかおぼろげながら分かったが、エスパーしたくないわこれ
エスパー以前にLGPLをまったく理解できてないから論外だろう
他人の著作物に対して、著作権及びその他もろもろを主張できるわけないだろ…
747 :
741 :2011/10/25(火) 00:39:42.23 ID:iip0S10K
LGPLについて勉強してきます。 スレ汚ししてすいませんでした。
なんか皆色々作ってるようだけど、そのゲーム(完成品)ってどこにいけばプレイできるんだ? やらせてくれよ
身バレするからやだ。 DLsiteで売ってるどれかだから頑張って探してね
DXライブラリ公式の作品ページにあるよ
Vectorに載ってるよ
自分は、この板のどこかのスレに
うちもDLsiteにあるよ。
SetWindowSizeExtendRate()を使って画面を拡大表示させるときに環境によっては拡大された画面がぼやけてしまうのだが、皆はどのような対策を取ってる?
そもそもその機能を使わない 全部テクスチャに描いてそれを画面としてウィンドウのサイズで描画する
>>754 気にしない。
環境によってはって、それディスプレイの画素数とゲーム画面の解像度の食い違いによるぼやけじゃないの?
だとしたらどうしようもないのでは。
いや、画面拡大をした時、ニアレストネイバーで拡大されるかバイリニアで拡大されるかって環境依存なんよ
あれ?SetWindowSizeExtendRateってニアレスト固定じゃないのか
俺、SetWindowSizeExtendRateは倍々拡大しかできないのかと思い込んでたわw これ引数doubleだな……。
ああ、ニアレスト固定なのはSetEmulation320x240だったわ
761 :
754 :2011/10/26(水) 12:29:33.24 ID:QnNhHmLc
762 :
754 :2011/10/26(水) 12:31:22.57 ID:QnNhHmLc
二度もお礼ありがとうございます
重複カキコしちゃったorz
ここしばらく、最近話題のUnity3Dで遊んでたんだけど、
やっぱり2Dゲームが作りたくなって、DXライブラリに戻ってきたよ(`・ω・´)
>>764 スカイハーイ! とでも言っておけば二重のお礼でも大丈夫。たぶん。
どうしてもゲームが静的な感じになってしまうの もっと動的なシーン取り入れたい
>>766 自分が今まで聞いた中で、いいなあと思ったのは、
メニューだとか、ゲージだとか、スコアだとかを動きのある物にするだけで、雰囲気が変わるよって話だった。
それは確かに豪華っぽくなる。 けど上手くやらないとウザくなる。
動きあるものって、AEみたいなの使わなくても上手くできるのかね AEは高いからないとして、NiVEとかJavieとかのフリーソフト使ったりするってこと?
ハードコーディングで十分 まあ絵作りでフォトショは必要だが
ゲームのタイトル画面だったのだが マウスカーソルから多数の小さいパーティクルが吹き出してくる効果は 死ぬほどうざかった。おまけに重かった。
ウザさはともかくアニメーションで十分な事だな、 ゲーム本編で使えない小手先のテクニックとかメガデモぽいのは 海外製でエンディングだとか普通のアプリケーションのAbout画面でよく見るな あとFlash製ゲームは基本的に無駄なアニメーションが多い気もする
爆発のエフェクト作ると重くなる 32*32pxのヘボい爆発なのに、処理速度遅くってどうしようもなかった おかげで敵倒したら、消滅して終わりの虚しいゲームになってる
毎回ループ内で画像の読み込みやってるんじゃないだろうね?
その失敗は既に経験して克服したんだよ
普通に考えて、爆発エフェクト作ったくらいで遅くてゲームにならないんだったらDXライブラリ使うヤツなんていないだろ。 ならお前さんのプログラムになにか変なとこがあるんだよ。 「消滅して終わり」というように諦めてしまわず、自分でとことん調べるか、 それが行き詰ってどうしようもないなら、最小単位のサンプルプログラム組んでソースを晒して他人に教えを請うしかないだろ。
32x32とは言ってるが、それがパラパラ漫画とは限らないよな? 動画再生とか。
毎回ループ内でブレンドモード変更やってるんじゃないだろうね?
ブレンドモード変更ってそんな負荷かかるか?
SetDrawBlendModeのことなら全く掛からん
内部のエラーチェックのそれなりに重い 数百回呼ぶなら処理落ちの可能性になるくらいのレベル
ちょうど相談したいと思ってた事に近い話題が出てるw SetDrawBrightで輝度を変更する時、DXlib内部で「今現在の輝度」と「変更しようとしている輝度」を比較して 同じなら何もしない、みたいな処理をしているって感じの話を前に見た記憶があるんだけど、 それはつまり、画像表示情報1つ1つに輝度情報を持たせて、DrawGraph等で表示させる直前に 毎回SetDrawBrightを実行しても、処理的に大した負荷にはならないって事だよね? SetDrawBlendModeとかでも同じような事をやってるんだろうか?
やってる ソースコード版持ってきてSetDrawBlendModeの「定義へ移動」で一目瞭然
なんていうかFFみたいな、カッコいいオープニング作りたいわ だけどムビーメーカーとか使ったことないしね ゲームがまだ未完成なのにオープニング作るとか舐めてるしね
>>783 ありがとう。
てことは、画像情報データに輝度とブレンド情報を持たせて、毎回実行するのもアリって事かぁ。
尤も、滅多に使わないのならやらない方が結局いいんだろうけど。
>>784 動画編集ならVideoPadオススメ。
俺も最近知ったばかりだけど、超簡単にPVができて面白かった。FFみたいなのができるかどうかは知らん。
RPG作ってる。 当たり前のようにコントローラかキーボードで操作するものだと仮定して作ってきたが 実はマウスの方がいいかもしれんと思うようになった。 どうしようかな
両方対応しろ
システム次第だろうけど、マウスで全て操作だと逆に疲れるから 結局キーボードも対応しないといけなくなると思う。
エロゲーの話で悪いがランスクエストはターン制コマンドRPGだけどマウスだけでプレイしやすいなかなか良いUIだと思う 内容はともかく
どういうRPGか知らないけど、それだとアクション性がなくなっちゃうよ RPGの中にも少しはアクション性があると楽しい
いらねーよ
いつまでもドラクエ引きずってんなよ
自分の嗜好を押しつけんなや
DSウィザードリィがアクション要素入れたせいでクソ呼ばわりされたの知らんのか 「中途半端」が一番いけない
どんなゲームの作者にもアクション性入れろってメッセージ送りつけてそうだな
アクション性の苦手な人は、RPGはシミュ系を好む傾向がある。 当然、それらにまでアクション性を加味すると、そういう人達が避けるようになる。 逆にアクション好きだけどRPGみたいにだらだら続くのは嫌いな人もいるが、 RPGにアクション性加えた程度じゃ、そういう人達の興味を引く事はまず無理。 一つのゲームに色々詰め込むのは、結局デメリットしかない。
大体RPGって言っても見下ろし2DかWiz系かFalloutみたいなアクションRPGかで全然違うのに 一概にアクションとか言ってる時点で阿呆
やたら動きまくるシンボルエンカウントとかウザイだけにしか思えない シームレスなアクションとか3D物なら許す
FFのATBはRPGなのに緊張感のある戦闘が面白かった クロノトリガーもな テイルズシリーズのアクションRPGは言わずもがな、面白かった まあ、マウスの話題とは何も関係なくなったけど
アクション要素を含めてのゲームデザインのゲームならいいんだよ そうでないゲームに動的要素入れても……という話
>>799 それはお前の主観だろ
FFはATBが来てから操作が忙しくなって楽しめなくなったって人も居る
そもそもRPGってゲームとは思えない わざわざレベル上げしてあれゲームじゃなくて単なる作業じゃんw コマンドを選択するだけの簡単なお仕事ですじゃんw
それだけならまだしもイベントは攻略サイトみてクリアする品
お前らノベルゲーはゲームじゃない!とか言っちゃうのと同じ連中か ゲームを作るならゲームというものをイチから考えなおしてみることをオススメする
ここは開発板。 宗教とかイデオロギーは他所でやれ。
まあ、まったりゲーにするならマウスでいいんでないかい?
当たり判定難しすぎワロタ だが頑張る
画像の見た目まんまで衝突判定するプログラムが書きたい ソフトウェア画像を使うって方法だと衝突先のオブジェクトが特定できないという問題が…… 画像読み込むだけで当たり判定として認識されるゲーム制作ツールがあるけど、どうやってたんだろうなぁ
>>808 自分もあれと同じ事を実現しようと考えたけど、難しいな。
遅くてもいいなら比較的簡単だけど、実用的な速度でどうやって実装してるんだろう。
while文の前に自機の座標を更新するようにしていた… おかげで5時間ぐらい悩んでた… どうしてこうなった\(^o^)/
>>808 3Dなら簡単じゃね?
2Dでもそう難しくなくね?
画像を透過色除いて白黒にして中身塗りつぶしてbitmapで保存してごにょごにょしてcsvにする 32x32ならその範囲に入るかどうかまず判定して、さらに細かく当たってるか判定すれば良い
画像と画像の判定でも中心点か左上で2つの物体の距離をx,yとって その分ずらして論理演算していけばいい
矩形でまず普通に判定して、判定用に2値化した画像を使ってビット演算か何かでスマートに…
と思っていたが
>>812-813 が大体同じことを言わんとしてくれている予感
DxLibにProccessMessageがtrueになるようなメッセージを送る関数はありますか? DxLibEndで送るの時点で送ってくれるように予約する関数はあるみたいですが、 任意のタイミングで送りたいのです
メインウィンドウのハンドルを持ってきてWM_CLOSEを投げてやればいいだろ
わかりました 検討します
818 :
名前は開発中のものです。 :2011/11/06(日) 16:14:00.15 ID:eMKENUpO
ScreenFlip()を呼ぶと画面が書き換わるまで処理が止まると聞いて、 「ScreenFlip()を使えば自動的に60fps(モニタのリフレッシュレート)に制御されるんじゃね?」 と思い、下記のコードを実行してみたのですが、FPSが44前後しか出ません。 なぜこうなってしまうのか、どなたかご教示願えないでしょうか? #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { int stime; int cnt; ChangeWindowMode(TRUE); SetDrawScreen(DX_SCREEN_BACK); if(DxLib_Init() == -1) return -1; stime = GetNowCount(); for(cnt = 0; ProcessMessage()==0; cnt++){ ClearDrawScreen(); DrawFormatString(0, 0, 0xffffff, "FPS:%.1f", (1000.0*cnt/(GetNowCount()-stime)) ); ScreenFlip(); } DxLib_End(); return 0; }
FPSの計算方法がおかしいと思う ScreenFlipのウェイトが無視されてるし
>>818 SetDrawScreen(DX_SCREEN_BACK);
if(DxLib_Init() == -1) return -1;
これが逆と思われ
821 :
818 :2011/11/06(日) 17:36:13.26 ID:eMKENUpO
>>820 修正したら60fps出るようになりました。
ありがとうございます。
ゲームプログラミングの館のベジェ曲線の使い方がちょっと変わってね? 媒介変数を時間とするとカーブが緩いところは速く、 カーブがキツいところは遅くなるんだけど意図してやってんのかな
あそこはかなり作る助けになる良い館
もう常連さんが初心者にお勧めしてるみたいだし、 あれはあれでいいということにしておくわ
問題があると思うならそこをはっきり言わないと難癖と変わらんぞ
1. グローバル変数使い放題 2. C言語に拘るあまり汚いソースになっている ってのはあると思うが、それを考えても初心者にはあそこ一択だと思うけどね。 何よりゼロから始めてSTG一本作れるのが強い。 他にゼロから実用レベルのゲームが作れるまで説明してる所あるのか? ソースコードの効率化なんてその後に考えればいいし。
あそこは本当に初心者向けなんだよな。 すでに作れる人には色々と違和感があるだろうけど。 誰もが最初期に通ってきた道だと思うよ。
そんなに立派な技術を持ってるなら効率がよく洗練されたゲーム製作の解説サイトでも作ってくれよ 公式とあそこぐらいしか情報量のある解説サイトないし
それはない
DXライブラリ界隈はちっともノウハウが蓄積しないよな
>>830 もっとましな解説サイト知ってるなら教えてくれよ
それはあるな このスレみても本当に浅い部分での話題しかない 深い技術的な話題がない
そもそもプログラミングの話題自体ほとんど出ないじゃないかこのスレ
少し前まではプログラムの話自体スレ違いって止められてたし実践的な話題になりにくいのは当たり前
DxLibFanと公式BBSの過去ログあればほとんど事足りるからな 所詮描画ライブラリなので後はどちらかというとC++のノウハウだし
>>831 解説サイト作っても
>>824 みたいに言われるんだろうしな
実際にサイト作ってる人は偉いわ
wikiもないテンプレもないまとめサイトもない 知ったかが偉そうに否定だけしていく、それだけ
>>836 ゲーム作りだってそうだろ?
それなりのクオリティの物をつくる奴は淡々としているけど。
何も作らない奴は口だけ五月蠅い。
同じだよ。
よくある「漫画の描き方」とかのハウツー本を実際の漫画家が執筆する事はまずない。
Dxlibの関数については公式で事足りるからな。 わからないことがあれば公式掲示板で管理人さんや常連さんが的確な回答くれるし…。 ここで話すことって言ったらアップデートで○○対応されたねーとか、○○って関数バグ持ちじゃね?とかくらいじゃん。
イラストの描き方の本を出した絵描きは、メンヘラだったな……
DxLibで動画取り込みたいんだけど、アルファ情報がうまく反映されてない気がする まあ、動画側がアルファ情報持ってるかどうかが実はまだ怪しいんだが・・・ リファレンスにあるように_aもつけてみたけど、どんまいだった(そもそもそこは自動らしいし) DxLibってアルファ情報扱えるよな?
動画撮影に何使ってる? 自分の場合、グラッフィックドライバか何かがおかしいのか、 録画した動画ファイルを開こうとすると、Windowsが止まる…。
あれ? アルファ付き動画ってもう対応したの?
俺は、NiVEで簡単な動画作って使えるかなと思って、UtVideoコーデック で.aviで出力したからおそらく動画はアルファ持ってると思うけど 実際にPlayMovieToGraphとDrawGraphで動画再生すると、背景は黒くなってる つかやっぱり動画だとアルファに対応してないの?
アルファ付き動画には対応依頼が来てて、「対応考えます」ってのは掲示板で見た気がするけど、「対応しました!」ってのは見てないな だからまだなんだと思うよ
>>846 やっぱりか、ここ1週間くらいの努力が泡になりました
でも仕方ないね
さて、どうしようかな
アルファ付き動画って何やりたいの?
エフェクトに使えそうではあるんだよな。 NiVEは画像出力も出来たと思うけど、ちょっと面倒くさい
ゲームのエフェクトには重すぎるよ 連番画像でもメモリ占有するから避けられてるのに
まあマスク用の白黒の動画を用意すれば擬似的には出来るんじゃないの? マスク用の白い画像を用意して、先にマスク用画像を減算で描画。 その後に描画したい所以外を黒く塗りつぶした描画したい画像を加算で描画すればそれっぽく描画できる これを応用すれば動画を2つ重ねて出来るはず アルファ画像が使えないツールでゲーム作ってた頃よくやってた方法
俺もα付き画像なんて何に使うんだろうと思ってた。
スパロボみたいなカットインいれるくらい?
でもあの程度なら動画より普通に画像アニメさせたほうが楽だし早いしなぁ。
>>851 そういう工夫は大好きだw
使う機会ないけど。
文字のフェードインって可能? 色の指定でRGBA入りませんよね?
blendmode
>>853-854 SetDrawBlendMode()の解説によると DrawString も入ってるね
>>848 ステージの最初と最後に、Stage StartとかStage Clearとかのロゴをエフェクト付きで
入れたかった。
完全な動画としてなら動画再生でいいんだけど、ゲーム進行中にそのロゴ入れたかったから
アルファが必要だった
色々考えるとDXlibでは、アルファ付き動画再生が無理となると、エフェクトは基本連番になるわけだから
あまり複雑だったり、大きいサイズや時間的長さだと無理なんだな
みんなどうやってるの?
DxLibに限らずエフェクトは一枚絵を拡大縮小したり大量にばら撒いたりして作るのがセオリー 連番でも精々4〜5枚程度 ただしハードコーディングでやると大変なのでツールとかを作ったほうが良い この間DXLibに対応したBishamonとかはそのツール。出来たファイルをプログラム側で読み込んで動的に再生する
フツーに連結画像として扱えばいいんでないの? DXlibはかなり大きな画像サイズでも問題なく読み込めるぞ ムービー→連番画像→画像連結のソフトならいくらでもあるし もしソフトがαに対応してなくても透明色を予め決めておけばいいだけのこと
ムービーのほうがよっぽど作るの時間かかるし実行するのにも時間もかかりそうなもんだが。
専用ツールとしてのアドバンテージ以外は、 ゲーム用エフェクト生成ツールとやってることは大して変わらない気がするよ。
LoadMovieGraphで読んだ動画をDrawGraphする時って 内部でWindowsのスレッド1本作ってた気がする うろ覚えだけど
Bishamonとか高いな、手が届かない でもこいつがあれば俺のゲームもカッコよくなるだろうな >ムービー→連番画像→画像連結のソフト あるのか、だったらそれ探してまたパラパラでまた挑戦してみるわ
>>862 いい名前を聞いた
これで3万なら買おう
よくわからんがMMEやアフターエフェクトとは違うのか?
>>866 DirectX系以外でも使おうとすると、その分だけSDKを買わなきゃならないから、
いろんな環境で開発してる人は、ターゲットを絞った方が良さそうだけどねー。
>>864 元は数百万の業務用を、10万くらいで個人用に販売できないか調整してたみたいね。
で、蓋を開けたら3万〜とw
MMEとか言ってるのはどのこ住人だw MMEてMMD用のHLSLそのものだろw
こういうソフト買っても結局使いこなせずいつも平凡に作る俺
俺はGIMP卒業してフォトショ買ったからもう無理だな、ツールにそこまでつぎ込めない 次に買うのはAEかParticleIllusionのつもりなんだけどな、何年先になるやら 俺はフリーソフトで生きていくわ
金がないから自分で代用ツール作るわ そして安価で売って儲けたい
便利そうなのに類似ソフトはないのか
ツクールシリーズに非常に簡易なものならあるよ
BISHAMONに比べるとまだまだだけど、Effekseerなんてのもあるね。 少し前にDXライブラリに対応したって話を聞いた。
Sleneの作者もBISHAMONのパチモンらしきものを開発してたな
>>858 連番画像を連結できるソフトは結構あったんだけど、pngに対応してなかったり
対応しててもアルファに対応してなかったりと、結局のところいいのがなかった
仕方なくNiVEから連番をjpgで出して、jpgで連結した後、PSでUnMultiplyとかいうプラグインで
背景の黒取り除いたらなんとかなった
でもどんだけ遠回りしてんだ・・・
aviutlの拡張編集を使って動画から直接連番RGBAビットマップまでなら楽に落とし込めそう
>>876 俺はAzJoinImageってソフト使ってる
α付きpng対応してる
879 :
878 :2011/11/15(火) 05:49:49.54 ID:VctR7VN8
悪い、出力ファイル見たらα情報欠落してた カラーキーで抜いてたから気づかんかった
ゲーム作るの飽きたんで、絵のトレーニング積んできます
横スクロールアクション作るときに物理エンジン使ったりする? Box2DとかBulletとかあるみたいだが
2D横スクアクション程度作るのになんで物理エンジンが必要なのかわからんが、 そういうコンセプトのゲーム作りたいならいいんじゃね。
横スクロールアクションでは使ったこと無いなあ
Box2Dならそんな重くねーし使ってたが 大半の処理をKinematicでやったりセンサーとしてしか使ってなかったりで 結局はリアルさまったくないものになったな
>>804 面倒くさい処理を全部ぶん投げられるから楽ではあるんだけどなw
886 :
名前は開発中のものです。 :2011/11/20(日) 02:30:05.84 ID:ebcOYj+U
オープニングで動画再生したら、めっちゃ重いんですけど・・・ これじゃ始まっていきなりドン引きされるじゃねーか
エンディングで再生すればいいんだよ
天才あらわる
動画が高解像度だったり60fpsだったりとかしないよな……?
30fpsだし、解像度うんこだし、10秒くらいの動画なのに・・・ 連番に切り替えるのもありかもしれない
思いってカクつくって意味か?単にCPUフルに使うだけとかじゃないよな
連番画像じゃ余計無理だろ 1コマ当たり640*480*32bit = 1.2MByte 1.2MByte * 300 = 360MB分の画像をメモリ上にロードする気か?
オンラインのスコアランキングやりたいけど、自分でサーバー用意したりしなきゃできないのかな? そういうことは都合上できないんだけど。
別にVPSでも借りりゃいいじゃん
別にcgiでも置けばいいじゃん
896 :
名前は開発中のものです。 :2011/11/25(金) 17:16:42.26 ID:BAy23hAg
頻繁に使う変数はグローバル変数にし、常にメモリを確保しておいたほうがいいのでしょうか?
それとも必要な時ごとにメモリを開放したほうがいいのでしょうか
具体的には
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_input.html#R5N28 というページの以下のコードです
char Buf[ 256 ] ;はグローバル変数にするか、場面によっては使わないようにするかで迷っています。
グローバル変数のほうが絶対にいいとは思うのですが、
HPによってはグローバル変数は絶対悪だ、みたいなこともかいてあります
それそもとれは大規模な開発の場面であって、個人では問題ないのでしょうか
どちらがよいでしょうか
char Buf[ 256 ] ;
GetHitKeyStateAll( Buf ) ;
if( Buf[ KEY_INPUT_Z ] == 1 )
{
// Zキーが押されている
}
else
{
// Zキーは押されていない
}
グローバル変数は絶対悪だってのは一部の職業プログラマの宗教みたいなもんだから無視していいよ 自分の管理しやすい方でやればいい
898 :
名前は開発中のものです。 :2011/11/25(金) 17:39:12.68 ID:BAy23hAg
Bufの内容をいろんな関数で参照したいならグローバルや静的変数でいいよ 1関数内で収まるなら256バイト位ならスタック上のローカル変数で十分 その変数が必要ないソースから見えなきゃグローバル変数は絶対悪でもない
>>896 出来る限り変数のスコープは小さく保つべき。
同じ変数を使いまわすと今その変数に何の値が入ってるのか把握するのが難しくなり、思わぬバグを引き起こす。
特に初期化し忘れを防ぐために可能ならば宣言と同時に初期化値を代入するのが望ましい。
ちなみにメモリの確保と解放は確かに多少重くなるかもしれんが、
最近のコンパイラは最適化が優秀でそういうのは勝手にやってくれるため気にする必要は全く無い
将来的にキーコンフィグ(入力キー設定、キーバインド)の変更をしないならそれでもいいかもね 色々変更するかもしれないなら、コマンドクラスを作ったほうが保守性が高いんじゃないか?
グローバル変数作り過ぎると後で痛い目みるからほどほどにな… ソースは俺
頻繁に使うから〜というのは確かに正しいけど、 全体の何%だよ!って部分を少しだけ速くしたところで、見た目に変わることがないというのも、やっぱり正しいと思うよ。
グローバル変数管理ツールを作ればいいのさ
グローバル変数使うなってのは幾多のプログラマが痛い目にあった上で生まれた教訓 自分で問題点が分からないのなら実際にやってみた上で判断すればいいと思う 歴史に学ぶか経験に学ぶか、だな
>>896 キー入力の状態ならグローバルでいいと思う。
プログラム初心者だからこういう話すごい参考になる 配列に値を一括で入れたい場合って宣言のときしか無理だよね こういうのはグローバルにしてもいい? それともコンストラクタか何かでループで入れていった方がいい?
>>896 calss KeyStatus {
private:char Buf[ 256 ] ;
public:getHitKeyStateAll(){GetHitKeyStateAll( Buf ) ;} ;
public:char getKeyBuf(int key_input){return Buf[ key_input]; }
};
とりあえずこうしとけ、クラスはグローバルにしていいから
ちょっとテストさせてください
3つ教えてください。 よろしくお願いします。 (1) ウィンドウの右上の「×」や「Ctrl+Alt+Del」で強制終了した際に、「DxLib_End();」を実行するにはどうすればいいのでしょうか? このような場合は、「DxLib_End();」をしなくても良かったりしますか? 今のところは異常を見たことがありませんが。 (2) ウィンドウモードで起動して、ウィンドウを動かせるようにしたいのですが、どうすればいいですか? 「玉当てゲーム」のソースコードを読んでみているのですが、そういう設定を行う関数を呼んでいるところを見つけられないです。 関数か、ソースコードの行番号か、教えていただけませんか。 (3) 「SetWindowSize」という関数がヘッダにありました。 リファレンスには載っていません。使ってほしくない関数なのでしょうか?
911 :
910 :2011/11/25(金) 22:06:08.08 ID:OU9WDBg2
(2)の質問は、「ウィンドウを動かせるようにしたい」が訊ねたいところです。 言葉足らずですみません。
普通はBufは外部に公開せずに is_push_key(); みたいな関数経由で中でBufを見るかな
>>903 >見た目に変わることがないというのも、やっぱり正しいと思うよ。
見た目変わらないというのはそうかもしれないが、見た目以外は変わるのも正しい
以前にも言ったかもしれないが「そんな事しなくてもいまどきのPC性能なら問題ねーよ」と
よく言われるような事を実装したところ、確かに見た目は変わらなかったが
それまでうるさかったCPUファンが急に静かになった、ということがあった。
だから俺は「たとえ0.01%だろうと軽くするほうが正しい」と確信を持って主張する。
むしろ「やらなくても一緒だ」と主張する人達は実際に試して比較してもいないんだろうと思ってる。
(前述の件とは別件でそういう主張する人達に、実際に計測した結果を示して
それぞれの環境でも計測してくれるよう頼んだところ急に黙り込んだという事があった)
>>907 用途に因るがテーブルとして持ちたいならconst付ければOK
>>910 1. 終了時に何か特殊な動作をさせたいならそういう関数はあるがDxLib_End()を呼びたいだけなら気にする必要は無い
2. ウインドウを動かすって何?
ウインドウの位置を決める関数なら
// ウインドウモードのウインドウの位置を設定する( 枠も含めた左上座標 )
int SetWindowPosition( int x, int y ) ;
3. 説明省いてるだけで普通に使って良し
(1)このあたり? SetWindowUserCloseEnableFlag SetDxLibEndPostQuitMessageFlag
>>913 >だから俺は「たとえ0.01%だろうと軽くするほうが正しい」と確信を持って主張する。
その主張が出来るのはコンパイラ毎の最適化の内容を熟知してアセンブラ叩ける奴だけ
組み込みには正義だろうよ
普通の開発ではソースコードがやたら難読化して要らぬバグを引き起こす事がほとんど
918 :
917 :2011/11/25(金) 22:45:13.87 ID:8iac4M0d
うわああ リロードすればよかったorz
919 :
910 :2011/11/26(土) 01:00:02.64 ID:OK82FRmW
皆さんレスありがとうございます。910です。 >1. 終了時に何か特殊な動作をさせたいならそういう関数はあるがDxLib_End()を呼びたいだけなら気にする必要は無い そうでしたか。呼ばずに終了すると、何かとてつもないことになる、とどこかで見た気がしたのですが、妄想だったようです。 >SetWindowUserCloseEnableFlag >「×」を押すなどして強制終了されるときはProcessMessage()が-1を返すので、そこで分岐すればOKだった気がする。 おぉぉ!勉強になります。 >3. 説明省いてるだけで普通に使って良し ありがとうございます。リファレンスだけではなく、ヘッダも読むようにします。 (2)についてなのですが、私が作ったプログラムでは、タイトルバーをつかむことも、×を押すことも出来ない、というか、ウィンドウ内にマウスアイコンが入るとマウスアイコン表示が消えてしまいます。 何を言っているかわからないと指摘を受けたので、「DrawTriangle3D」のサンプルに対して、「ChangeWindowMode(TRUE);」を追記して試したところ、普通にウィンドウバーをつかむことができ、移動も×も出来ました。 どうも、おかしなことになっているようです。チェックしてみます。 ここはとても暖かいスレッドですね。また、どうぞよろしくお願いします。
>>913 そりゃ速度を改善する行為なんだから正しいさw
「やるだけ無駄」って言うやつや、実測値を見て黙るやつなんて、元からPG以外の人間なんじゃないの?
0,1%の改善を狙うよりも *先に* 他のところを高速化したほうが良いんじゃないの?とか、
ソースを難読化、定番から外れるような作り方をするだけのメリットがあるの?とかさ。
ただ、特に悪意があるわけじゃないんだけど、
冷静にツッコミを入れたり、事実のみを言ったりすると、敵対してると思われることはあるよね…。
CPUファンの回転が変わるレベルの負荷の違いが出るなら、効率に激しい違いがあったはずで ここで「たとえ0.01%だろうと軽くするほうが正しい」と結論が出るのは変だろw
>>921 それもそうだw
誰もが見逃してたけど、致命的な部分がその0.1%から見つかることもある、くらいか?
関係ないけどメーカー品のノートでCPU負荷が1桁%なのに常時60度近いのはどこかおかしいと思っていいんだろうか
埃詰まってんじゃね 二年くらい使うとよくあること
ウィンドウサイズ変更したらそれにバックバッファのサイズを合わせるような挙動させたいんだけど GetWindowCRect( &Rect ) ; if( Rect.bottom - Rect.top != WinY | Rect.right - Rect.left != WinX ) { WinX = Rect.right - Rect.left; WinY = Rect.bottom - Rect.top; SetGraphMode(WinX,WinY,32); } このコードだとウィンドウサイズが次々変化してしまうんだが 何がおかしいのか分からん
とりあえず、SetGraphModeはせずに それぞれの数値表示させてみればわかるんじゃないかな? 知らんからわからんが、GetWindowCRectのright,bottomって「右下の座標」を返すんだよな? だとしたら640*480なら639,479だったりするんじゃないのかな。
DXライブラリの関数は、「DxLib」という名前空間に入っているじゃないですか? 「namespace DxLib{}」 でも、「DxLib::」と書かなくても使えますよね? ヘッダのどの部分がそのようにしているのですか? と、ここまで書いてみて、ヘッダを眺めていたのですが、ファイルの最後の方に書いてある「using namespace DxLib ;」ですよね? おぉ、納得。 これは初心者がとっつきやすくするためでしょうか? 確かにc言語しか知らなかった私が、「DxLib::DxLib_Init()」とか書かれたら、盛大に挫折したと思います。 他に何か良い点があれば、せっかくなので教えて欲しいです。
>>927 ヘッダファイル読むと、結構世界が変わるんだよねー。
向こうでは、ちょっと厳しい言い方になってしまってすまない。
ご想像通り、DXライブラリは基本的にC++用のライブラリだが、
C言語だけの知識だけでも使えるような設計になっている。これは昔から変わっていないはず。
そういった設計思想に従い、最初は名前空間なんかも用意してなかったと思うんだけど、
作者さん自身も、VisualStudioのクラスビューが使い物にならないと感じていたらしい。
たぶん規模が大きくなると追加しにくくなるし、他にやりたい機能もあるだろうし、ということで後回しになってたんだろうね。
しかし、そこは仕事の早いことで有名なDXライブラリ作者さん。
BBSで名前空間の要望が出された直後、テスト版ライブラリにて実装してしまったという。
で、確か2.25cあたりから、名前空間が設定されるようになった。
using〜 がセットで記述されているのは、ライブラリとしての互換性を維持するためというのもある。
どうしよう FFTとかタクティクスオウガみたいな2.5Dのゲームのシステムを DXLibで作るのってとてつもなく難しそうなんだけど・・・
そうでもない だってFFTのアレは奥行きを考慮せずに3Dで描画してるだけだもの
素材を用意するのが大変なだけでコーディングは簡単だろうが ちょっとググればいろんな言語でサンプルコードまで出てくるのにDxLibに責任転嫁するとかもうね
いやそこまで言わんでもいいだろw 多分補助ライブラリなしでクォータビューをやるのが大変そうって意味だと思う
クォータービューってただの2Dじゃん。 2.5Dなんて考えるから難しそうに思えるだけ。 発想の転換ができてない。 ファミコンですらできてた事なんだからできないはずがない、と思って頭をひねればいい。
ついでに言うと、素材的にもクォータービューは易しい部類。 トップビューだと、上下横の3種の素材が必要だが クォータービューだと、斜め奥向き、斜め手前向きの2種だけで済む。 (無論8方向方式だと話は別だが)
斜め向きのドットって正面や真横と違って絵心ないと打てないけどな
ああ、それは確かに。 でもパース考えなくていい(というより考えちゃいけない)分 普通の絵よりは難易度下がるよね。
FFTは3D使ってるの? そういえばマップが回転できるし クオタービューだと思ってた
3D技術とか言っても結局は画面上のドット列に全部変換されちゃうんだから、 内部がどうなってるとかあんまり考える必要はないと思うよ
FFTはマップ(地形)だけがポリゴンで、後は全部2Dじゃないの?
>>939 ああ、複合してるのか
それは俺には無理っぽい
とりあえず、ポリゴンなしで作ってみるとしよう
サンクス
まあどうせ半端なサンプル作ってエタるだけだろうから 難しさを心配してもしゃーないだろ
ラクガキショータイムくらい割り切って作る手もある
ProcessMessageの使い方なのですが、 例えば、専用のスレッドを起動して、他のスレッドが通常継続中である限り、秒間60回程度動かす、といった使い方でもよいのですか? これからメッセージループについて資料を漁ろうと思いますが、いまいち意味がわからないです。
今のバージョンでやったことあるけど 描画でおかしい動作が見受けられたため 私は諦めました
ウィンドウメッセージをディスパッチするために使うだけだから 好きなようにしたらいい、メッセージが無けりゃたんに戻ってくるだけだし。
DXライブラリのProcessMessageは中でいろいろやってそうなイメージなのであんまりそういうふうには使いたくないなあ 中身ソース見てないから知らないけど
マルチスレッドで他の関数との連携がおかしいみたいだから本番ではやらない方がいいです ただし、一度やってみる価値はあります
948 :
943=910 :2011/11/28(月) 21:12:59.17 ID:9qyN3uEA
>>943 です。
>>910 でもあります。
皆さんレスありがとうございます。
とりあえず試しで、スレッドを追加して、秒間60回程度ProcessMessageしてみましたが、
Windowのタイトルをつかむことすら出来なかったりな状況は変わりませんでした。
画面の更新は出来るし、CPU使用率もほとんど上がってないのですが…。
画面更新してない停止状態のときは、別のウィンドウが上にくると、その色に塗りつぶされちゃいます。わけわかめ。
スレッド自体は10位起動しているが、描画をするしてるのは主に描画用の1スレッドだけなんだがなぁ…。
つд`)
マルチスレッドはだめだ!
いや、そんなばかな。あばばばば。
メッセージキューは各スレッドごとに作成される =ウィンドウを作成したスレッドでメッセージ処理をしないとならない Windowsの基本な
950 :
943=910 :2011/11/28(月) 21:51:22.62 ID:9qyN3uEA
でけたーよ! 当たり前なのかも知れないですけど、後進の役に立てばとおもい、スレ汚ししていきます。 @DxLib_Init() は、描画を行うスレッドでおこなう。DXライブラリのウィンドウはそのスレのもの。 (これは、Win32APIに詳しい人なら当たり前にわかることなのかも?) AProcessMessage() は、ウィンドウの持ち主=描画を行うスレ=DxLib_Init()をしたスレが行う必要がある。 (他のスレにやらせても、意味ないくさかった。) B描画を行う内容がなくても、最新の内容orすっからかん で描画(ScreenFlip()とか)しないと画面更新されないのね。 (そういうものだと言われれば納得だけど、自動で最新を維持してくれるのかと妄想してた。) C描画スレが管理している裏画面へ別スレッドに書き込みを委譲するのは試していない。 (けど、気になるからそのうちやるかも。) サーセンでした。ありがとうございました。
951 :
943=910 :2011/11/28(月) 22:05:25.03 ID:9qyN3uEA
>>949 どもです。
ということは、もしかして、
DxLib_Init()したスレで何とかしてMessageProcess()できれば、
描画スレとは別でもいいってことですかね。今度試してみよう、今日は疲れた。
>>951 うろ覚えだけど、それって公式の掲示板の過去ログになかった?
「スレッド」で検索して、、、わしも昔マルチスレッド+DX ライブラリのわなにはまった。
3dゲーム作りたくてUnityのjavascriptのコード勉強してたんだが なんか見たことないオブジェクトとプロパティが多すぎて、使いこなせるわけがない DXlibでも3dできるからこっちにしようか迷ってる
unityとDXライブラリじゃ大分違うぞ 前者はゲームエンジンだし
OpenGLでもDirectXでもBlenderでもPhysiXでもODEでもいいから 迷わずインスコして手を動かしてなんか作れ 言語を選ぶのはそれからだ
3dゲームはモデル自作するのが難易度高すぎる それさえ出来れば後はなんとかなるんだが
フリーでこれといった定番ツールがないのがつらいね そもそも選択肢がメタセコイアかブレンダーぐらいしかない 有料でも使えそうなのは高いのばかり
メタセコにはモーション生成機能がないから外部ツールが必要になるしな
まじか、俺と逆じゃないか メタセコで遊び半分で龍とか妖怪とか色々作れて、モデリングとか楽しいわとか思ってたのに いざこれをUnityで使うとなると、2Dゲームの様には行かなかった まあ、でもなんとなく分かってきた感じはあるからもう少し頑張ってみるわ つかUnityはスクリプトでクラス継承しすぎなんだよ、ボケ
メタセコでもプラグインを使ってFBX形式のファイルの編集・入出力はできるそうだよ。
モデリングとアニメーションぐらいならBlenderで十分すぎるけどな ちょっとしたゲームエンジンとか物理演算いれると難易度上がるし DXライブラリで利用しずらいけど
ウィンドウがアクティブじゃない状態でも画面の更新を行うようにするにはどうすればよいでしょうか? という質問をしようとして、ヘッダファイルを覗いたところ、SetAlwaysRunFlag()をみつけました。 本当にありがとうございました。 関数の戻り値なんですが、Get系じゃないものは、 正常:0 異常:0じゃない というくらいでOKですか? これもヘッダをかなり覚える必要があるのでしょうか?
覚える必要はない。調べる癖をつけよう。 大体は公式サイトにあるだろうし。
そういえばDXライブラリって関数名から直接解説ページに飛べるようなものがないよね あってもよさそうなんだが
公式サイトに関数リファレンスがあるじゃないか
DXlib使って得たノウハウというかスキルっていうのは、他のゲーム制作ライブラリとか エンジンとかで活かせるものなのかね?
なんで活かせないと思うんだ DXライブラリは描画だけしかしないし、他の環境に移ったときにも身につけた技術を活かせるのをウリにしてる 関数一つで描画できるからライブラリ色が薄い むしろ他ライブラリで身につけた技術ほど他に活かせない なぜならガッチガチに独自仕様で固めてるから。 描画するならこのクラスに命令飛ばせーだの角度は256が最大の独自形式で指定してな!だの
描画しかしないのはいいところだと思うけどたまに描画以外もして欲しくなる セーブデータ作りとか 自前だと破損調べるのとか面倒で
そんなの一度作ったら使い回せばええやん
セーブの破損チェックってなんのためにするの?
改変の検出なら簡単に実装できるチェックサムとかCRCでチェックでいいし 拡張子変えただけのZIPにして処理を丸投げでも十分すぎる
そういうのって必要なんだろうけど まず「俺のゲームのデータ改変してまで遊んでくれるやついねーだろうな」 という気持ちが先立つわ。
チェックサムの実装なんて超簡単だろーが。ちょっとは勉強しようず
某有名アクションゲームサークルでさえセーブデータはメモ帳で適当に値弄っただけで改変できるのに
別にチェックサムが難しいとは言ってねーべ。 チェックサムと聞くと昔雑誌のマシン語プログラムを バイナリエディタでせこせこ入れては暴走させて ちまちまチェックサム確認してた思い出が頭をよぎるだけで。
「セーブデータが簡単にいじれちゃうゲームは萎える」っていう人がもしいるなら必要かもしれないけど そういう人っているのかな?
「むしろ弄ってくれ」がスタンスなオイラはiniファイルにセーブ。 まあ、ハイスコアと隠しステージ出現フラグくらいしか無いけどな。 [Game] HighScore=10000 SecretLevel=1 Debug=0 こんな感じで。
>>976 自分がプレイ中のゲームで厨房が改造の話を始めたりすると俺は萎えるけど
そもそも起動中プロセスのメモリいじくれば何でもできちゃうからなー
四角をランダムに傾けたいのですが、どんな方法がありますか?
GetRand(360)と<math.h>をランダムに傾けたいのですがインクルードし、三角関数で頂点を求め・・・
というのは思いつきますが、かなり面倒です。
具体的には↓の動画(素人の実況なので、苦手な方はお手数ですがミュートをお願いします)
http://www.nicovideo.jp/watch/sm13480051 の6:17秒の標的をロックオンした時のエフェクトを作りたいと思っています。
>>979 面倒なら、画像として用意しておいて DrawRotaGraph しちゃえば?
>>980 あ、なるほど。こういう使い方ができるのですね
ありがとうございます
>>979 ランダムと言うよりは、四角形を回転させながら縮小させている気がする。
位置とタイミングがずれてるのが重なってるからそう見えてるだけで。
>>982 あ、ホントですね。こういうののほうがカッコイイのかなぁ
エフェクトは難しいですね
>>979 四角のグラフィックを用意して、DrawRotaGraphで回転させれば良い感じになりそう。
面倒って、一度関数化すればいいだけじゃ……?
>>979 正方形なんだからかなり面倒どころか一番単純じゃない?
現在三角関数がわからないから三角関数の理解が面倒臭いという意味かな?
ぶっちゃけ中心点からランダムなx方向、y方向の距離を取ってやって、
符号変えたりx方向とy方向を入れ替えてやったりすりゃ計算すらしないで正方形の頂点4つ作れるじゃん。
後エフェクトがかっこいいかどうかは少し突っ込みどころ。
キーがどれか押されていると関数を実行ということをしたいのですが、 コードが冗長になって困っています 現在は↓のような感じです。 /*キー押下状態の配列*/ char Buf[ 256 ] ; /*F8キーを押下 処理1*/ if( Buf[ KEY_INPUT_F8 ] == 1 ) { syori1(); } /*F7キーを押下 処理2*/ if( Buf[ KEY_INPUT_F7 ] == 1 ) { syori2(); } /*F6キーを・・・ これらをまとめたいのですが、何かいい方法はありますか? /*理想*/ if(・・・ Buf[ KEY_INPUT_F7 ] == 1 || Buf[ KEY_INPUT_F8 ] == 1 || Buf[ KEY_INPUT_F9 ] == 1 ・・・ ) { syorix(); } ・・・ Buf[ KEY_INPUT_F7 ] == 1 || Buf[ KEY_INPUT_F8 ] == 1 || Buf[ KEY_INPUT_F9 ] == 1 ・・・ の部分をまとめたいのです それとも syorix(Buf); と言う風に配列を渡し、関数を毎回実行するものなのでしょうか
関数ポインタ使えばなんとかなりそうじゃね?
>>988 ありがとうございます
関数ポインタ挑戦してまみす
理想とする処理だとsyori1とsyori2の優先順位や両方とも実行させるのかが曖昧じゃね? syorix(Buf)は最初の処理が関数化されただけかもしれないが結局は細かく分けると一番いい気がする 同じ優先度のキーコードと関数ポインタの構造体配列を作りループで回すと 斜めとか同時押し処理は面倒だけど綺麗にはなるのかも
別ファイルにおいてあるキー取得関数がうまく反応しません。 どうしたらいいでしょうか? Key[256]; int keyclip(){ char tkey[256]; GetHitKeyStateAll(tkey); for(int i=0;i<256;i++){ if(tkey[i]!=0){ Key[i]++; }else{ Key[i]=0; } } } int inputkey(char input){ return Key[input]; } ↑別ファイル 呼び出し if(inputkey(KEY_INPUT_W)%=2){} エラーで左側のオペランドが左辺値になってませんといわれます KEY_INPUT_Wの定義がD_DIK_Wとかいう文字列?なんですが、これは一体どうしたら
C言語の本を購入し、ファイル分割の項目を読み込む
何がしたいのかはよくわかんないけど エラーメッセージは %= の演算子は変数に対して使うものって言ってる
=消せ
イコール消したら治りました恥ずかしい
>>992 それはどういう・・・?
996 :
992 :
2011/12/02(金) 00:04:35.84 ID:GWHZ+HBj >>995 ごめん、= 見てなかっただから気にしないで