※回答する人も、質問する人も必ず読んでください
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する香具師 】
・ どんな事で躓いているのか明確にしる。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書け。
探検
Windowsゲームプログラミング 質問スレ
■ このスレッドは過去ログ倉庫に格納されています
1うゆ ◆vvvK3Fcqdg
2008/11/06(木) 21:28:45ID:lNn2skuQ314名前は開発中のものです。
2009/06/07(日) 17:03:36ID:oeT3VEAp 社会(笑)
315名前は開発中のものです。
2009/06/07(日) 18:07:55ID:M6h6jWTy そりゃクレクレ厨は痛い目に遭うだろうねw
316名前は開発中のものです。
2009/06/08(月) 17:05:24ID:mawEHegr 社会があまねく有益な意見で満たされて居たら、さぞかし過ごしやすかろうなあ
317名前は開発中のものです。
2009/06/09(火) 09:47:49ID:ruRVuuZj 有益な意見には耳を塞ぐくせに
何言ってんだ
何言ってんだ
318名前は開発中のものです。
2009/06/26(金) 22:36:27ID:x76xIHaA マイケルの夢は空へ消えた
つまり
◎マイネル
○ドリジャ
▲デスカ
だなw
つまり
◎マイネル
○ドリジャ
▲デスカ
だなw
319名前は開発中のものです。
2009/06/28(日) 22:39:34ID:3N82CdXt C++でブロック崩しを作っているのですが、玉の種類を増やそうと思っています
玉の制御はスクリプトで書こうと思っているのですが、
pythonかluaのどちらかだとしたら、どちらがいいと思いますか?
参考にしたいので意見をおしえてください
玉の制御はスクリプトで書こうと思っているのですが、
pythonかluaのどちらかだとしたら、どちらがいいと思いますか?
参考にしたいので意見をおしえてください
320名前は開発中のものです。
2009/06/28(日) 23:36:19ID:hGHmXBpJ どちらもだめ
制御はC++が向いている
制御はC++が向いている
321名前は開発中のものです。
2009/07/10(金) 16:03:53ID:GcVAWp8q http://www.dotup.org/uploda/www.dotup.org221278.7z.html
スクリーン全体を書き換えるやり方だと無駄が大きいので、キャラクターが前にいた場所だけ書き換えるやり方に変更した。なぜか、知らないが、時々残像ができる。治す方法があったら教えてほしい。
プラットフォーム:XNA 3.0
・drawの処理
if (is_scrolled)
{
m.drawAll(g, view_point.X, view_point.Y, 0, 0, m.WidthOnScreen(g), m.HeightOnScreen(g));
is_scrolled = false;
}
else
{
//スクリーン上の座標を求める
Point p = m.getPointOnScreenAsMap(g, new Point(player.oldx, player.oldy));
//24*32dotのキャラクターに対応するため
m.drawAll(g, player.oldx, player.oldy, p.X, p.Y, player.width + 1, player.height);
}
スクリーン全体を書き換えるやり方だと無駄が大きいので、キャラクターが前にいた場所だけ書き換えるやり方に変更した。なぜか、知らないが、時々残像ができる。治す方法があったら教えてほしい。
プラットフォーム:XNA 3.0
・drawの処理
if (is_scrolled)
{
m.drawAll(g, view_point.X, view_point.Y, 0, 0, m.WidthOnScreen(g), m.HeightOnScreen(g));
is_scrolled = false;
}
else
{
//スクリーン上の座標を求める
Point p = m.getPointOnScreenAsMap(g, new Point(player.oldx, player.oldy));
//24*32dotのキャラクターに対応するため
m.drawAll(g, player.oldx, player.oldy, p.X, p.Y, player.width + 1, player.height);
}
322toya
2009/07/12(日) 01:04:32ID:+auraSRZ seisho53pe-ji
323名前は開発中のものです。
2009/07/12(日) 10:59:23ID:yE1osiWd ファイル無いと言われたわ
324名前は開発中のものです。
2009/07/12(日) 23:06:56ID:Pm94PkQG325名前は開発中のものです。
2009/07/13(月) 18:38:14ID:IC1GLBGZ うーん、突っ込むところ多いけど、、、
とりあえずぶつかった時のundoがx,yを戻してるけど
移動時はxだけ、yだけ保存だから戻すときずれて残像になってるね
ほかにもあるみたいだけど、、、これから帰宅なのでまた・・・
関数のコメントは // じゃなくて /// がお勧め
とりあえずぶつかった時のundoがx,yを戻してるけど
移動時はxだけ、yだけ保存だから戻すときずれて残像になってるね
ほかにもあるみたいだけど、、、これから帰宅なのでまた・・・
関数のコメントは // じゃなくて /// がお勧め
326名前は開発中のものです。
2009/07/13(月) 20:38:23ID:rYbn9Phm >>325
理由はなに? > //->///
理由はなに? > //->///
327名前は開発中のものです。
2009/07/13(月) 20:54:40ID:r/cCOFUb //より///の方が気恥ずかしさと健気さがより際立つ
328名前は開発中のものです。
2009/07/13(月) 20:59:01ID:rjiSz6yn (//ω//)→(/*/ω/*/)
329名前は開発中のものです。
2009/07/13(月) 23:04:03ID:m7y/L96o てか、最強のプログラム言語ってぶっちゃけどれよ
330名前は開発中のものです。
2009/07/13(月) 23:19:08ID:NIAmNvGo 最強とか聞いちゃう人は黙ってC#使うのが最強なんじゃないかな
331名前は開発中のものです。
2009/07/13(月) 23:59:24ID:E7cdGbOK 最強論に対極は付き物、高級言語の対極にあるハンドアセンブルを極めてはどうか
332名前は開発中のものです。
2009/07/14(火) 00:11:31ID:pOq3rm7P それは確かに最強だ。
333名前は開発中のものです。
2009/07/14(火) 09:16:51ID:4Xpi43sp いっそハードを極めてはどうか
334名前は開発中のものです。
2009/07/14(火) 10:11:20ID:n67BwWQX335名前は開発中のものです。
2009/07/14(火) 19:29:22ID:A7Jso/3Q IDE
336名前は開発中のものです。
2009/07/14(火) 19:30:39ID:A7Jso/3Q IDEなら何でも自動に追加されると思うなよ
337名前は開発中のものです。
2009/07/14(火) 20:20:15ID:7qnK4jbf VisualStudioと書くと突っ込まれそうだったから
無難な言葉を使ったが
結局何言っても同じなんだよな
ただ口はさみたいだけ
無難な言葉を使ったが
結局何言っても同じなんだよな
ただ口はさみたいだけ
338名前は開発中のものです。
2009/07/14(火) 20:24:08ID:7qnK4jbf 一応言っておくけど質問した人が
何使っているかは把握した上での
レスだからね
何使っているかは把握した上での
レスだからね
339名前は開発中のものです。
2009/07/14(火) 20:29:42ID:p3cJHfZl340名前は開発中のものです。
2009/07/14(火) 23:16:39ID:msfsUkAz341名前は開発中のものです。
2009/07/15(水) 03:33:48ID:oAaV9htY >>340
lisp嫌いじゃないけど、最強というには、人によってコードがバラバラすぎてなぁ・・・・。
やっぱし、今時はTeam開発をしっかりと前提にできるものが良いと思う。
よって、C++
C++もテンプレ入り乱れまくりやなんやすると、途端に霧の中に為ってしまうけど・・・・。
lisp嫌いじゃないけど、最強というには、人によってコードがバラバラすぎてなぁ・・・・。
やっぱし、今時はTeam開発をしっかりと前提にできるものが良いと思う。
よって、C++
C++もテンプレ入り乱れまくりやなんやすると、途端に霧の中に為ってしまうけど・・・・。
342名前は開発中のものです。
2009/07/15(水) 08:49:05ID:wvQDgYgC 最強はマシン語だろ。
343名前は開発中のものです。
2009/07/15(水) 12:29:04ID:ozTsOauR 「最強のプログラム言語」とか言っちゃってる奴はまず日本語を勉強してこいよ
344名前は開発中のものです。
2009/07/15(水) 20:47:11ID:vgHuQMIa C++なんて無思想ごちゃまぜ言語じゃないか
言語にコーディング規約的なものまで求めるなら
JavaやC#が最強
言語にコーディング規約的なものまで求めるなら
JavaやC#が最強
345名前は開発中のものです。
2009/07/17(金) 10:39:57ID:WnY7CWjL qwertyuioasdfghzxcvb
346名前は開発中のものです。
2009/08/16(日) 09:50:39ID:mUJcX4L/ HelloWorldのソースこんぱいるするだけでとまどったな
347名前は開発中のものです。
2009/08/16(日) 19:14:24ID:55Gu4o4r 初めはそんなもんでしょ
コンパイラの使い方も併せて学ぶ段階だし
コンパイラの使い方も併せて学ぶ段階だし
348名前は開発中のものです。
2009/08/18(火) 19:55:07ID:GrHz78T5 95時代に作った自作ゲームをVista対応化させようとしているのですが、
たとえばゲーム成績のランキングをそのPCの全アカウントで共有するためには
ゲームを管理者実行させるほかに手はないのでしょうか?
たとえばゲーム成績のランキングをそのPCの全アカウントで共有するためには
ゲームを管理者実行させるほかに手はないのでしょうか?
349名前は開発中のものです。
2009/08/18(火) 20:49:11ID:Jhv90Vd4 >>348
ランキングデータの属性を誰でも読み書き可にすればいいんじゃないの?
ランキングデータの属性を誰でも読み書き可にすればいいんじゃないの?
350名前は開発中のものです。
2009/08/18(火) 21:03:05ID:CP6QXV5y C:\Users\Public\
に作ればいいんじゃね
やったことないので推測だけど
に作ればいいんじゃね
やったことないので推測だけど
351名前は開発中のものです。
2009/08/18(火) 21:55:10ID:lURobZwZ サービスプログラムを作れ
352名前は開発中のものです。
2009/08/18(火) 22:09:00ID:GrHz78T5353名前は開発中のものです。
2009/08/19(水) 02:30:02ID:y+Txo86j 放物線を描こうとしてるんだが、斜め上にうまく打ち出せない。詳しい人がいたら教えてほしい。
public struct NextpointParam
{
public double vx, vy, x, y, dx, dy, sx, sy,e, m;
}
const double g = 9.8,rotSpeed = 3;
double dt;
//ループ前に実行する
public NextpointParam calcArrivalTime(NextpointParam cmd, int rot)
{
dt = cmd.vx / 120.0;
double rad = rot * Math.PI / 180;
double subx = Math.Abs(cmd.dx - cmd.sx),suby = Math.Abs(cmd.dy - cmd.sy);
if (cmd.dx != cmd.sx)
{
double t = -(2 * subx * Math.Sin(rad)) / (Math.Cos(rad) * g * dt) + (2 * suby / (g * dt));
t = Math.Sqrt(Math.Abs(t));
cmd.vx = subx / t;
cmd.vy = cmd.vx / Math.Cos(rad) * Math.Sin(rad);
}
return cmd;
}
//ループごとに実行する
public NextpointParam calcElliptical(NextpointParam cmd)
{
double vx = cmd.dx - cmd.sx > 0 ? cmd.vx : -cmd.vx;
cmd.vy += g * dt;
cmd.x += vx;
cmd.y += cmd.vy;
return cmd;
}
public struct NextpointParam
{
public double vx, vy, x, y, dx, dy, sx, sy,e, m;
}
const double g = 9.8,rotSpeed = 3;
double dt;
//ループ前に実行する
public NextpointParam calcArrivalTime(NextpointParam cmd, int rot)
{
dt = cmd.vx / 120.0;
double rad = rot * Math.PI / 180;
double subx = Math.Abs(cmd.dx - cmd.sx),suby = Math.Abs(cmd.dy - cmd.sy);
if (cmd.dx != cmd.sx)
{
double t = -(2 * subx * Math.Sin(rad)) / (Math.Cos(rad) * g * dt) + (2 * suby / (g * dt));
t = Math.Sqrt(Math.Abs(t));
cmd.vx = subx / t;
cmd.vy = cmd.vx / Math.Cos(rad) * Math.Sin(rad);
}
return cmd;
}
//ループごとに実行する
public NextpointParam calcElliptical(NextpointParam cmd)
{
double vx = cmd.dx - cmd.sx > 0 ? cmd.vx : -cmd.vx;
cmd.vy += g * dt;
cmd.x += vx;
cmd.y += cmd.vy;
return cmd;
}
354353
2009/08/19(水) 02:31:20ID:y+Txo86j 実行環境:C#3.0
355名前は開発中のものです。
2009/08/19(水) 10:25:19ID:zkIhyE9m >>353
vx,vyは速度だと思うが、dt = cmd.vx / 120.0;ってのは何?
120ってどこから出てきた数字?
sx,syからdx,dyに向かって放物線を描く弾をrotの角度で撃ちたいってことでいいんだよね?
それって解無しの場合があるが、その処理が全く入ってないんじゃないか?
sx,syから見てdx,dyがa度の位置にある場合、発射角がa度以下では絶対に届かない。
発射角がちょうどa度だと初速は∞になる。
初期条件の与え方に問題があるかと。
着弾点を指定したいなら、普通は角度は初期条件で与えない。
vx,vyは速度だと思うが、dt = cmd.vx / 120.0;ってのは何?
120ってどこから出てきた数字?
sx,syからdx,dyに向かって放物線を描く弾をrotの角度で撃ちたいってことでいいんだよね?
それって解無しの場合があるが、その処理が全く入ってないんじゃないか?
sx,syから見てdx,dyがa度の位置にある場合、発射角がa度以下では絶対に届かない。
発射角がちょうどa度だと初速は∞になる。
初期条件の与え方に問題があるかと。
着弾点を指定したいなら、普通は角度は初期条件で与えない。
356名前は開発中のものです。
2009/08/19(水) 19:57:30ID:y+Txo86j http://hakuhin.hp.infoseek.co.jp/main/as/shot.html#SHOT_02_01
こちらのソースではうまく動いてたのですが、C#に移植するとうまく動かないとは・・・、
>>355
dtは微分です。
>初期条件の与え方に問題があるかと。
>着弾点を指定したいなら、普通は角度は初期条件で与えない。
どういう風にすればいいのでしょうか?
こっちの方面には疎いので教えてほしいです。
こちらのソースではうまく動いてたのですが、C#に移植するとうまく動かないとは・・・、
>>355
dtは微分です。
>初期条件の与え方に問題があるかと。
>着弾点を指定したいなら、普通は角度は初期条件で与えない。
どういう風にすればいいのでしょうか?
こっちの方面には疎いので教えてほしいです。
357名前は開発中のものです。
2009/08/20(木) 00:34:17ID:hfiYF6j1 単純にURLの奴と比較すると
double subx = Math.Abs(cmd.dx - cmd.sx),suby = Math.Abs(cmd.dy - cmd.sy);
⇒double subx = cmd.dx - cmd.sx ,suby = cmd.dy - cmd.sy;
あと
double vx = cmd.dx - cmd.sx > 0 ? cmd.vx : -cmd.vx;
が要るのか謎
まぁ普通は>>355が言うように角度は与えないな。
普通は速度一定で角度をatan使って計算する。
double subx = Math.Abs(cmd.dx - cmd.sx),suby = Math.Abs(cmd.dy - cmd.sy);
⇒double subx = cmd.dx - cmd.sx ,suby = cmd.dy - cmd.sy;
あと
double vx = cmd.dx - cmd.sx > 0 ? cmd.vx : -cmd.vx;
が要るのか謎
まぁ普通は>>355が言うように角度は与えないな。
普通は速度一定で角度をatan使って計算する。
358356
2009/08/20(木) 21:23:01ID:IHNCk0SU359名前は開発中のものです。
2009/08/21(金) 10:48:09ID:DvszpD1q t = (dx-sx)/cosα*(初速) を
(dy-sy)=sinα*(初速)t - gt^2 に代入してαを求める
(dy-sy)=sinα*(初速)t - gt^2 に代入してαを求める
360名前は開発中のものです。
2009/08/21(金) 12:52:07ID:hppXED8L (dy-sy)=sinα*(初速)t - gt^2/2だった
361名前は開発中のものです。
2009/08/21(金) 19:22:48ID:7MXGbqnZ >>359
αということはsinαとcosαを求めればいいの?
式を変形してみたんだが、左辺のコサインが消えない・・・
(dy-dy) = sinα*((dx-sx)/cosα) - g * (dx-sx)^2/cosα^2/2
(dy-dy) = sinα*((dx-sx)/cosα) - g * (dx-sx)^2/2cos^2α
2cos^2α * (dy-dy) = cosα * sinα* (dx-sx) - g * (dx-sx)^2
αということはsinαとcosαを求めればいいの?
式を変形してみたんだが、左辺のコサインが消えない・・・
(dy-dy) = sinα*((dx-sx)/cosα) - g * (dx-sx)^2/cosα^2/2
(dy-dy) = sinα*((dx-sx)/cosα) - g * (dx-sx)^2/2cos^2α
2cos^2α * (dy-dy) = cosα * sinα* (dx-sx) - g * (dx-sx)^2
362名前は開発中のものです。
2009/08/21(金) 23:49:07ID:e3g3OiNI 一発で出ないでしょ
逐次計算で初期角度をatn((dy-sy)/(dx-sx))にして
x方向とy方向の到着時間を比較して、それが近くなるまで繰り返し
逐次計算で初期角度をatn((dy-sy)/(dx-sx))にして
x方向とy方向の到着時間を比較して、それが近くなるまで繰り返し
363名前は開発中のものです。
2009/08/22(土) 02:49:05ID:RxygmHfQ やってみたがうまくいかない・・・。
public NextpointParam calcArrivalTime(NextpointParam cmd)
{
dt = cmd.vx / 120.0;
double rot = Math.Atan(cmd.dy - cmd.sy/cmd.dx - cmd.sx);
if (cmd.dy == cmd.sy)
return cmd;
double tx, ty;
do
{
rot++;
tx = (cmd.dx - cmd.sx) / Math.Cos(rot);
ty = 4 * Math.Pow(Math.Sin(rot), 2) - 4 * g * -2 * (cmd.dy - cmd.sy);
ty = Math.Sqrt(ty) * 2 * Math.Sin(10) / 2 / g;
} while (Math.Abs(tx - ty) > 0.01);
double t = -(2 * (cmd.dx - cmd.sx) * Math.Sin(rot)) / (Math.Cos(rot) * g * dt) + (2 * (cmd.dy - cmd.sy) / (g * dt));
t = Math.Sqrt(Math.Abs(t));
cmd.vx = (cmd.dx - cmd.sx) / t;
cmd.vy = (cmd.dy - cmd.sy) / Math.Cos(rot) * Math.Sin(rot);
return cmd;
}
public NextpointParam calcArrivalTime(NextpointParam cmd)
{
dt = cmd.vx / 120.0;
double rot = Math.Atan(cmd.dy - cmd.sy/cmd.dx - cmd.sx);
if (cmd.dy == cmd.sy)
return cmd;
double tx, ty;
do
{
rot++;
tx = (cmd.dx - cmd.sx) / Math.Cos(rot);
ty = 4 * Math.Pow(Math.Sin(rot), 2) - 4 * g * -2 * (cmd.dy - cmd.sy);
ty = Math.Sqrt(ty) * 2 * Math.Sin(10) / 2 / g;
} while (Math.Abs(tx - ty) > 0.01);
double t = -(2 * (cmd.dx - cmd.sx) * Math.Sin(rot)) / (Math.Cos(rot) * g * dt) + (2 * (cmd.dy - cmd.sy) / (g * dt));
t = Math.Sqrt(Math.Abs(t));
cmd.vx = (cmd.dx - cmd.sx) / t;
cmd.vy = (cmd.dy - cmd.sy) / Math.Cos(rot) * Math.Sin(rot);
return cmd;
}
364名前は開発中のものです。
2009/08/22(土) 02:51:09ID:RxygmHfQ 訂正
× rot++
○ rot += 1 * Math.PI / 180
× rot++
○ rot += 1 * Math.PI / 180
365名前は開発中のものです。
2009/08/22(土) 05:25:00ID:JiYVKMm8 1 * は意味あるのか
366名前は開発中のものです。
2009/08/22(土) 07:28:00ID:v9eiapHS そういう年頃なのさ
367名前は開発中のものです。
2009/08/22(土) 19:32:58ID:UJPlGrDF 必ず1が係数となっていることに気づかなければlogXの部分積分はできないんだよ!!!
368名前は開発中のものです。
2009/08/22(土) 19:34:43ID:p3yP0Up8 発射位置(x0,y0)と目標位置(x1,y1)が同じ高さ(つまりy0==y1)の場合なら
仰角rは
r = asin((x1 - x0) * g / (v * v)) / 2
だから
t = 0;
r = asin((x1 - x0) * g / (v * v)) / 2;
loop:
t += dt;
x = x0 + v * cos(r) * t;
y = y0 + v * sin(r) * t - g * t * t / 2;
goto loop;
みたいな感じで現在位置(x,y)が求められる
tは時間、dtは進んだ時間、vは初速度、gは重力加速度
asinの定義域は-1から1だから、それ以外は解なし(初速が足りない)
仰角rは
r = asin((x1 - x0) * g / (v * v)) / 2
だから
t = 0;
r = asin((x1 - x0) * g / (v * v)) / 2;
loop:
t += dt;
x = x0 + v * cos(r) * t;
y = y0 + v * sin(r) * t - g * t * t / 2;
goto loop;
みたいな感じで現在位置(x,y)が求められる
tは時間、dtは進んだ時間、vは初速度、gは重力加速度
asinの定義域は-1から1だから、それ以外は解なし(初速が足りない)
369名前は開発中のものです。
2009/08/22(土) 21:04:38ID:RxygmHfQ370名前は開発中のものです。
2009/08/22(土) 23:07:35ID:p3yP0Up8 それじゃあ面倒だが>>359方式で…途中の式は省く
1 / cos(r)^2 = 1 + tan(r)^2
を使えばtan(r)の2次式に変形できる
a * tan(r)^2 + b * tan(r) + c = 0
とすると
b = x1 - x0;
a = -g * b * b / (2 * v * v);
c = y0 - y1 + a;
/* d は判別式。d < 0 なら解なし */
d = b * b - 4 * a * c;
/* 解の公式でtan(r)を求める */
tan_r = (-b + sqrt(d)) / (2 * a);
//tan_r = (-b - sqrt(d)) / (2 * a); どちらの解も目標位置を通る
r = atan(tan_r);
loop:
t += dt;
x = x0 + v * cos(r) * t;
y = y0 + v * sin(r) * t - g * t * t / 2;
goto loop;
一応動いたけど左向きに発射するときは初速度をマイナスにしないとダメっぽい
1 / cos(r)^2 = 1 + tan(r)^2
を使えばtan(r)の2次式に変形できる
a * tan(r)^2 + b * tan(r) + c = 0
とすると
b = x1 - x0;
a = -g * b * b / (2 * v * v);
c = y0 - y1 + a;
/* d は判別式。d < 0 なら解なし */
d = b * b - 4 * a * c;
/* 解の公式でtan(r)を求める */
tan_r = (-b + sqrt(d)) / (2 * a);
//tan_r = (-b - sqrt(d)) / (2 * a); どちらの解も目標位置を通る
r = atan(tan_r);
loop:
t += dt;
x = x0 + v * cos(r) * t;
y = y0 + v * sin(r) * t - g * t * t / 2;
goto loop;
一応動いたけど左向きに発射するときは初速度をマイナスにしないとダメっぽい
371名前は開発中のものです。
2009/08/24(月) 19:01:06ID:IPXhfjSk372名前は開発中のものです。
2009/08/24(月) 19:09:58ID:711xndDg 何の脈略もなく宣伝行為に及ぶのはいったい何なの?
373名前は開発中のものです。
2009/08/24(月) 21:39:10ID:ir6nHlVB 素朴な宣伝がまだ有効だと思っている、頭の硬直化したおっさん。
つか、この板が軽く馬鹿にされてて吹いた。
http://slashdot.jp/askslashdot/comments.pl?sid=463936&threshold=0&commentsort=3&mode=thread&pid=1627366#1627603
最近の奴にとっては、この板は「作ろうスレを立てる板」って認識なのかね。
つか、この板が軽く馬鹿にされてて吹いた。
http://slashdot.jp/askslashdot/comments.pl?sid=463936&threshold=0&commentsort=3&mode=thread&pid=1627366#1627603
最近の奴にとっては、この板は「作ろうスレを立てる板」って認識なのかね。
374名前は開発中のものです。
2009/08/24(月) 21:39:27ID:ir6nHlVB すまん、スレ間違えた。
375名前は開発中のものです。
2009/08/25(火) 19:10:21ID:UObdHxkO ドラクエ8-9だとキャラクタのポリゴンに黒い輪郭線が付いているじゃん
あれどうやってるかわかる人いる?
あれどうやってるかわかる人いる?
376名前は開発中のものです。
2009/08/25(火) 22:41:10ID:AOgNxinP 同じモデルを黒く塗りつぶしてちょっと大きくして面カリングを逆にする
377名前は開発中のものです。
2009/08/27(木) 00:10:49ID:4dHRqDCZ 深度バッファを描画して隣接するピクセルとの深度値の差が一定以上なら黒く塗りつぶす
法線を描画して隣接するピクセルとの法線の向きが一定以上の角度で黒く塗りつぶす
オブジェクトをそれぞれ別の色で塗りつぶして描画して隣接するピクセルの色が異なっていたら黒く塗りつぶす
これらを組み合わせるのが一番きれい
法線を描画して隣接するピクセルとの法線の向きが一定以上の角度で黒く塗りつぶす
オブジェクトをそれぞれ別の色で塗りつぶして描画して隣接するピクセルの色が異なっていたら黒く塗りつぶす
これらを組み合わせるのが一番きれい
378名前は開発中のものです。
2009/08/27(木) 16:45:06ID:TkpNRAkw379名前は開発中のものです。
2009/08/27(木) 23:51:51ID:+fcJCniV >>375
色んな手段があるけど、描画結果から想像するとこれだと思う。
モデル読み込み時にメッシュが他のメッシュに接続しているかどうかを求めておいて、
次の条件が1つでも当てはまったときメッシュ辺を描画する。
・接続するメッシュが無い ※接続が裏表になっている、接続するメッシュが複数ある場合もこの扱い
・接続するメッシュが視点から見ての裏表になっている
描画例(Javaアプレット)
ttp://www5b.biglobe.ne.jp/~clap/applet3/MagicAction/AppletMotion7Viewer.html
色んな手段があるけど、描画結果から想像するとこれだと思う。
モデル読み込み時にメッシュが他のメッシュに接続しているかどうかを求めておいて、
次の条件が1つでも当てはまったときメッシュ辺を描画する。
・接続するメッシュが無い ※接続が裏表になっている、接続するメッシュが複数ある場合もこの扱い
・接続するメッシュが視点から見ての裏表になっている
描画例(Javaアプレット)
ttp://www5b.biglobe.ne.jp/~clap/applet3/MagicAction/AppletMotion7Viewer.html
380名前は開発中のものです。
2009/08/28(金) 03:33:06ID:HsGKMciu >>370
実装してみたのですが、放物線を描かないみたいです。
vx = 100;
dt = cmd.vx / 120.0;
b = cmd.dx - cmd.sx;
a = -g * b * b / (2 * cmd.vx * cmd.vx);
c = sy - dy + a;
double d = b * b - 4 * a * c; //判別式
double tan_r = (-b + Math.Sqrt(d)) / (2 * a);
r = Math.Atan(tan_r);
:loop
t += dt;
x += sx + vx * Math.Cos(r) * t;
y += sy + vx * Math.Sin(r) * t - g * t * cmd.t / 2;
goto loop
実装してみたのですが、放物線を描かないみたいです。
vx = 100;
dt = cmd.vx / 120.0;
b = cmd.dx - cmd.sx;
a = -g * b * b / (2 * cmd.vx * cmd.vx);
c = sy - dy + a;
double d = b * b - 4 * a * c; //判別式
double tan_r = (-b + Math.Sqrt(d)) / (2 * a);
r = Math.Atan(tan_r);
:loop
t += dt;
x += sx + vx * Math.Cos(r) * t;
y += sy + vx * Math.Sin(r) * t - g * t * cmd.t / 2;
goto loop
381名前は開発中のものです。
2009/08/28(金) 15:02:48ID:DmqjfMSC C言語のindex関数、rindex関数に相当するWin32APIは何でしょうか?
382名前は開発中のものです。
2009/08/28(金) 16:10:33ID:dkA1HT2S >>381
strchr、strrchrではだめなのか
strchr、strrchrではだめなのか
383名前は開発中のものです。
2009/08/28(金) 16:13:07ID:DmqjfMSC384名前は開発中のものです。
2009/08/28(金) 16:18:49ID:fGO+3/fF >>381
StrChr、StrRChr
StrChr、StrRChr
385名前は開発中のものです。
2009/08/28(金) 16:22:17ID:fGO+3/fF TCHARなら_tcs系使えばいいだけだろwww
_tcschr、_tcsrchr
_tcschr、_tcsrchr
386名前は開発中のものです。
2009/08/28(金) 23:23:03ID:DvI+Lg5w >>380
どういう軌道になったの
直線にみえるなら正しい可能性がある
(銃の弾道のように初速度が十分に速いとほぼ直線になる)
この場合、2次方程式のもう1つの解を使えば、
銃で空を撃って落ちてきた弾があたるような軌道になるはず
ゲームなので適当にパラメータをいじってイメージにあった軌道にすればいい
それでも動かないなら、すまんが原因はわからん
どういう軌道になったの
直線にみえるなら正しい可能性がある
(銃の弾道のように初速度が十分に速いとほぼ直線になる)
この場合、2次方程式のもう1つの解を使えば、
銃で空を撃って落ちてきた弾があたるような軌道になるはず
ゲームなので適当にパラメータをいじってイメージにあった軌道にすればいい
それでも動かないなら、すまんが原因はわからん
387名前は開発中のものです。
2009/08/29(土) 00:10:27ID:kY5tJbv2 Windows7
Directx SDK November2008
の環境でDirectX SDKのDirectX9のサンプルを試しているのですが
サンプルブラウザでインストールしたEXEでは起動しますが、
Visual Studio2008EE SP1でリビルドすると
Debugランタイムでは
コンピューターに d3dx9d.dll がないため、プログラムを開始できません。
この問題を解決するには、プログラムを再インストールしてみてください。
のエラーが出ます。
Releaseランタイムでは
The Direct3D device has a non-zero reference count, meaning
some objects were not released.
のエラーが出ます。
これを解決するにはどうするのですか?
Directx SDK November2008
の環境でDirectX SDKのDirectX9のサンプルを試しているのですが
サンプルブラウザでインストールしたEXEでは起動しますが、
Visual Studio2008EE SP1でリビルドすると
Debugランタイムでは
コンピューターに d3dx9d.dll がないため、プログラムを開始できません。
この問題を解決するには、プログラムを再インストールしてみてください。
のエラーが出ます。
Releaseランタイムでは
The Direct3D device has a non-zero reference count, meaning
some objects were not released.
のエラーが出ます。
これを解決するにはどうするのですか?
388名前は開発中のものです。
2009/08/29(土) 00:41:26ID:ekhY5LT7 VisualStudioの「ツール」-「オプション」-「プロジェクトおよびソリューション」-「VC++ディレクトリ」で
「ディレクトリを表示するプロジェクト」に「ライブラリファイル」を選択してd3dx9d.dllのあるディレクトリを追加する
(例、C:\Program Files\Microsoft DirectX SDK (November 2008)\Lib\x86)
「プロジェクト」-「プロパティ」-「構成プロパティ」-「リンカ」-「入力」で
「追加の依存ファイル」にd3dx9d.dllを追加する
「ディレクトリを表示するプロジェクト」に「ライブラリファイル」を選択してd3dx9d.dllのあるディレクトリを追加する
(例、C:\Program Files\Microsoft DirectX SDK (November 2008)\Lib\x86)
「プロジェクト」-「プロパティ」-「構成プロパティ」-「リンカ」-「入力」で
「追加の依存ファイル」にd3dx9d.dllを追加する
389名前は開発中のものです。
2009/08/29(土) 00:44:38ID:im1B0JiC 7でもd3dx9d.dllのエラーは残ったままか。
390名前は開発中のものです。
2009/08/29(土) 00:46:04ID:ekhY5LT7 ごめん、libじゃなくてdllなのか
dllがある場所が分かってるならパスを通せば動くと思うよ
dllがある場所が分かってるならパスを通せば動くと思うよ
391名前は開発中のものです。
2009/08/29(土) 00:53:25ID:kY5tJbv2392名前は開発中のものです。
2009/08/29(土) 01:06:36ID:kY5tJbv2 directx sdkのフォルダにありました。
そしてそれをsystem32のフォルダに突っ込んだら解決しました。
そしてそれをsystem32のフォルダに突っ込んだら解決しました。
393名前は開発中のものです。
2009/08/29(土) 02:16:55ID:ihAb3rV7394名前は開発中のものです。
2009/08/29(土) 16:07:12ID:dF9sCpgQ 初歩的質問なんですが
プレイヤーの位置やミサイル座標などの変数は普通グローバル変数にするもんなんですか?
関数をかいてるとうまくいかないので悩んでいます。
プレイヤーの位置やミサイル座標などの変数は普通グローバル変数にするもんなんですか?
関数をかいてるとうまくいかないので悩んでいます。
395名前は開発中のものです。
2009/08/29(土) 16:11:20ID:KWkdqwG6 書き方なんてどうでもいい。
余計なことを考えている暇があったら完成させることを優先しろ。
余計なことを考えている暇があったら完成させることを優先しろ。
396名前は開発中のものです。
2009/08/29(土) 16:39:21ID:J4wr3SeP >>395が正しいよ。
本当はそれは設計が拙いんだけど、
設計だけ上手くなっても屁の突っ張りにもならない。
アマチュアゲームプログラミングの世界は、
面白いものを作れる奴が一番偉く、
とりあえず完成まで持って行けるやつが次に偉く、
遊べるレベルまで作れる奴が三番目に偉い。
そういう世界。
そんな歪んだ状況になるくらい、ちょっとサンプル動かして作れるつもりの奴、
作れるつもりで参加して途中で投げ出す奴、そういう奴が多すぎるんだ。
だからこそ、プログラミングの上手さよりも、まずは一通りの完成を心がけるべき。
技術は後から付いてくる。
本当はそれは設計が拙いんだけど、
設計だけ上手くなっても屁の突っ張りにもならない。
アマチュアゲームプログラミングの世界は、
面白いものを作れる奴が一番偉く、
とりあえず完成まで持って行けるやつが次に偉く、
遊べるレベルまで作れる奴が三番目に偉い。
そういう世界。
そんな歪んだ状況になるくらい、ちょっとサンプル動かして作れるつもりの奴、
作れるつもりで参加して途中で投げ出す奴、そういう奴が多すぎるんだ。
だからこそ、プログラミングの上手さよりも、まずは一通りの完成を心がけるべき。
技術は後から付いてくる。
397名前は開発中のものです。
2009/08/29(土) 18:52:48ID:z18fO2ms 完成が見えたら後は無駄な作業が待っているだけなんだから、切り上げて次の事に
手を出した方が効率がいいじゃないか。
手を出した方が効率がいいじゃないか。
398名前は開発中のものです。
2009/08/29(土) 22:13:10ID:vrpydYWV399名前は開発中のものです。
2009/08/29(土) 23:44:52ID:z18fO2ms まて、嘘を教えるな。
グローバル変数にしてバグ発生を減らすべきだろ。
グローバル変数にしてバグ発生を減らすべきだろ。
400名前は開発中のものです。
2009/08/30(日) 00:12:41ID:Vp+tSpyX グローバル変数にしてバグ発生を減らす。 とは、はじめて聞いたな
401名前は開発中のものです。
2009/08/30(日) 00:43:29ID:Ipqtkf/M いや、馬鹿に取っては正しいと思うよ。
変に複雑化させるよりも、自分の能力で制御できる範囲に
複雑性を抑えておく必要があるから。
変に複雑化させるよりも、自分の能力で制御できる範囲に
複雑性を抑えておく必要があるから。
2009/08/30(日) 08:19:54ID:sFh4aBMU
一人で作っているのなら、作りたいように作ればいい。
こうしなければいけないなんて方法はないし、
お互いの開発技法を論じても、毎度発生する、
ただの押し付け合いにしかならない。
こうしなければいけないなんて方法はないし、
お互いの開発技法を論じても、毎度発生する、
ただの押し付け合いにしかならない。
2009/08/30(日) 08:31:44ID:Vp+tSpyX
2009/08/30(日) 10:32:50ID:sTPPAqK6
他人の不幸がどうでもよくないというなら
君が「グローバル変数のどこがどう悪くて他にどういう方法がいいのか」を
懇切丁寧に教えてあげればいいんじゃないかな。
君が「グローバル変数のどこがどう悪くて他にどういう方法がいいのか」を
懇切丁寧に教えてあげればいいんじゃないかな。
2009/08/30(日) 12:10:52ID:Ljdw77HH
>394
そういう時は、とりあえずグローバル変数で組んでみて、問題点が出てきたりしたら変えればいい。
そうやって、一つ一つ九州で豚骨ラーメンを食べる。
そういう時は、とりあえずグローバル変数で組んでみて、問題点が出てきたりしたら変えればいい。
そうやって、一つ一つ九州で豚骨ラーメンを食べる。
2009/08/30(日) 13:07:04ID:4N+M4wcS
自分は関数にstatic宣言した変数(構造体)を
ポインタで返して使うかな。
どこからでもアクセスできるのは変わらないけど、
各関数で前もってその関数を呼び出す必要があるので、
その変数はグローバルアクセス可能であり
書き換えに注意するという心構えを持てる。
ポインタで返して使うかな。
どこからでもアクセスできるのは変わらないけど、
各関数で前もってその関数を呼び出す必要があるので、
その変数はグローバルアクセス可能であり
書き換えに注意するという心構えを持てる。
407名前は開発中のものです。
2009/09/03(木) 23:49:56ID:T5vV7TnQ グローバル変数を使わないにしてもmain関数で変数宣言して使い回ししてたら似たようなもんだしな
クラス使えないなら何でもいいから一つ作って、その先にあるものを勉強していくべきだと思う
グローバル変数は使うべきじゃないなんて誰でも気づくし、
ムリに使い続けほどセンスない奴はさっさとリタイヤしていくから心配しなくてもいいと思う
まぁ職場にセンスない奴がいて焦る気持ちは分からんでもない。俺も現役の頃はそうだった
クラス使えないなら何でもいいから一つ作って、その先にあるものを勉強していくべきだと思う
グローバル変数は使うべきじゃないなんて誰でも気づくし、
ムリに使い続けほどセンスない奴はさっさとリタイヤしていくから心配しなくてもいいと思う
まぁ職場にセンスない奴がいて焦る気持ちは分からんでもない。俺も現役の頃はそうだった
408名前は開発中のものです。
2009/09/04(金) 08:08:36ID:9GRbyIPY ベルレ法を使って物体を移動させたいんですが直線運動でなく回転運動をさせたい場合どのようなプログラムになるんでしょうか?
409名前は開発中のものです。
2009/09/11(金) 19:32:49ID:tdiXH7FQ var px:int = player.x / 40;
var py:int = player.y / 40;
//playerの移動
if (left == true) {
if (map[px - 1][py] == 0) {
player.x -= 4;
}
}else>右上下に続く
1マス40ピクセル、15x15の二次元配列でマップを書いているんですが
上のプログラムだと壁からひとつ右のマスに4ピクセル入っただけで壁があることになるのですが
どうすれば上手いこと壁にぶつかれるでしょうか?教えてください。
var py:int = player.y / 40;
//playerの移動
if (left == true) {
if (map[px - 1][py] == 0) {
player.x -= 4;
}
}else>右上下に続く
1マス40ピクセル、15x15の二次元配列でマップを書いているんですが
上のプログラムだと壁からひとつ右のマスに4ピクセル入っただけで壁があることになるのですが
どうすれば上手いこと壁にぶつかれるでしょうか?教えてください。
410名前は開発中のものです。
2009/09/11(金) 20:08:12ID:82Pb8qAz 40ピクセルの大きさのマスを4ピクセルずつ移動するって事は
壁の判定は、ちょうどマスに合っている位置から動き出そうとする瞬間のみにするとかどうよ。
つまり player.x % 40 == 0 の時のみ左右の壁チェックをするとか。
具体的には……
if ( player.x % 40 != 0 ||
map[px - 1][py] == 0 ) {
player.x -= 4;
}
かな?
壁の判定は、ちょうどマスに合っている位置から動き出そうとする瞬間のみにするとかどうよ。
つまり player.x % 40 == 0 の時のみ左右の壁チェックをするとか。
具体的には……
if ( player.x % 40 != 0 ||
map[px - 1][py] == 0 ) {
player.x -= 4;
}
かな?
411名前は開発中のものです。
2009/09/11(金) 20:23:15ID:c5vNUe99var px:int = player.x / 40;
var py:int = player.y / 40;
//playerの移動
if (left == true) {
player.x -= 4;
if (map[px][py] != 0) {
player.x=(px+1)*40;
}
}else>右上下に続く
こんな感じでどうかしら
412名前は開発中のものです。
2009/09/11(金) 20:25:24ID:c5vNUe99//playerの移動
if (left == true) {
player.x -= 4;
if (map[(int)(player.x/40)][(int)(player.y/40)] != 0) {
player.x=(px+1)*40;
}
}else>右上下に続く
すまん訂正
413409
2009/09/11(金) 21:54:54ID:tdiXH7FQ >>410-412
ご回答ありがとうございます。
両方のプログラムで当たるのを確認しました。
412さんのpx+1だと一マス文右に戻ってしまうのでpxのみで済ませてみました。
ありがとうございました。
ご回答ありがとうございます。
両方のプログラムで当たるのを確認しました。
412さんのpx+1だと一マス文右に戻ってしまうのでpxのみで済ませてみました。
ありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★3 [ニョキニョキ★]
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★4 [ニョキニョキ★]
- 日本と中国を結ぶ12航空路線で全便欠航 中国人に最も人気の海外旅行先は日本から韓国に ★2 [ぐれ★]
- 【東京・足立の車暴走】赤信号無視か 危険運転致死傷疑いも視野に捜査 逮捕された職業不詳の男性(37)は精神疾患で通院歴も ★3 [ぐれ★]
- 【音楽】「なんでこんなバカが国のトップなの?」 若者に人気のバンド「GEZAN」のマヒトゥ・ザ・ピーポーが高市総理に苦言 [シャチ★]
- 防衛費増額「賛成」62・8% 「反対」32・2%を大きく上回る 賛成「18~29歳で8割」世代差あらわ 産経FNN合同世論調査 ★3 [尺アジ★]
- 【実況】博衣こよりのえちえち朝こよ🧪★2
- 【実況】博衣こよりのえちえち朝こよ🧪
- 【悲報】小野田紀美さん、宇宙人みたいな服を着てしまう…また、そのことを突っ込まれブチ切れ中www [856698234]
- 習近平「台湾はアメリカ領」😲 [422186189]
- お前らっていつもここにいるよな
- 【📦】Amazonブラックフライデー、まだまだ良い物盛り沢山な2日目(火曜日)突入!!!
