貴様ら!ブロック崩し作るので見てください
■ このスレッドは過去ログ倉庫に格納されています
0001ヒッキー@プログラミング
NGNG作りたくなりました。
Bitbltなど使う予定ですが、細かい技術がないので、
小出しにプログラムしようと思います。
(タマが動くだけとか、キーボードで自機を動かすだけとか)
オナーニスレだけどよろしくね。
0253249
NGNG前半とは別の発言のつもり・・・
>>249 Angleを小さくして毎サンプルかければカーブを描けるけど
それならDDAかな
>>251 直線発生だけじゃなくても、浮動小数点演算でも
差分方程式ならDDAって言うと思うけどなあ・・・
0254デフォルトの名無しさん
NGNG面白かった。リンク先でいろいろやってみたり(藁
ニュー速たってたのはしってるけど、スレ倉庫にもないって。
9月ごろのスレだし、、、
1のレスが面白そう。
0255デフォルトの名無しさん
NGNG作るなこんなもん〜(爆笑)
なんだかもう。
0256ヒッキー@プログラミング
NGNG昨日、近所の漏れのスレ覗いたんです。漏れのスレ。
そしたらなんか人がめちゃくちゃいっぱいで座れないんです。
で、よく見たらなんか吉野家コピペとか張ってあるんです。
もうね、アホかと。馬鹿かと。
お前らな、吉野家コピペ如きで普段来てない漏れのスレに来てんじゃねーよ、ボケが。
吉野家コピペだよ、吉野家コピペ。
なんか親子連れとかもいるし。一家4人で漏れのスレか。おめでてーな。
よーしパパもコピペ作っちゃうぞー、とか言ってるの。もう見てらんない。
お前らな、ブロック崩しのソースやるからコピペやめろと。
漏れのスレってのはな、もっと殺伐としてるべきなんだよ。
熟練プログラマな奴といつ喧嘩が始まってもおかしくない、
刺すか刺されるか、そんな雰囲気がいいんじゃねーか。女子供は、すっこんでろ。
で、やっと落ち着いたかと思ったら、隣の奴が、薬師丸ひろ子もらった、とか言ってるんです。
そこでまたぶち切れですよ。
あのな、薬師丸ひろ子もらったなんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、薬師丸ひろ子もらった、だ。
お前は本当に薬師丸ひろ子もらいたかったのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、薬師丸ひろ子もらったって言いたいだけちゃうんかと。
漏れのスレ通の俺から言わせてもらえば今、漏れのスレ通の間での最新流行はやっぱり、
Win32API、これだね。
VB、Win32API。これが通の頼み方。
Win32APIってのはWindows依存。そん代わり使いこなすとGUIバリバリ。これ。
で、それにVB、。これ最強。
しかしこれを頼むと次から熟練プログラマにマークされるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前らド素人は、HTMLでも書いてなさいってこった。
0257デフォルトの名無しさん
NGNG普段からこのスレには来てたり<252
まぁ、行数が多いから面倒なんだよな。読むのも。
なんか俺って荒らしみたいだな。何行も貼りつけて。
なんとなく「ちゆ」見に行ったんです。
そしたら、>吉野家コピペジェネレータ
があったんですね。実験に使ってみたり(藁
1さん、頑張れ!俺もなんか作ってみるよ、最近疲れ気味だが
ひまだ氏。
0258デフォルトの名無しさん
NGNGあと今 HTML と CSS , JavaScript かいてた。
どうせド素人だから……ブツブツ
#ギコぺダウソしたてでちょっとウキウキ(藁
0259デフォルトの名無しさん
NGNGで、薬師丸ヒロミが・・・なにか?
0260ヒッキー@プログラミング
NGNGごめんなさい、煽るつもりはなかったんです。
吉野家コピペジェネレータが面白かったので…。
何か作られたらUPしてみせてください。
0261デフォルトの名無しさん
NGNG読んで得したスレだ。いや、筆舌っぽいんでドーモ
0262249
NGNG>2回目以降の反射のときはどうするんだろうか。
angleはソースを見た所、単にラケットの動きのバリエーションをつける為だから
反射した後に微調整したいだけだけじゃない?
VBにはAtnしかなくて C/Delphiにあるatan2が無いのでvx/vyから進行方向角度
に変換するのがメンドクサイんだけど
反射は既にやってるように vx,vyの符号を反転するだけでいいんだし
なお、angleを使わなくても ラケットの移動でコスレル雰囲気を出すなら
1)vxをラケットの進行方向に一定値加える
2) ラケットにぶつかったらw=±0.1 程度にして
if abs(w)>0.01 then
ax=vy*w
ay=vx*w
vx=vx-ax
vy=vy+ay
w=w*0.99
endif
みたいにするともっと簡単
0263デフォルトの名無しさん
NGNG角度を10度変えたいなら、直接vx,vyを10度回転させる。
0264デフォルトの名無しさん
NGNG一次変換を忘れてるに 3 ガノッサ。
0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNGじゃー漏れは薬師丸ひろ子2人分
0267(・ε・)
NGNG交換できるようにして欲しいに、4ガノッサ。
0268デフォルトの名無しさん
NGNG>直線発生だけじゃなくても、浮動小数点演算でも
>差分方程式ならDDAって言うと思うけどなあ・・・
DDAの最初のDが何を意味するか?
DDAがどういう要求から生まれたものか?
を考えれば、DDAは「実数演算を用いない」ことが
定義に含まれていると考えるのが自然
でなきゃ単なる微分解析じゃん
0269デフォルトの名無しさん
NGNG正直言うと、いまどきそんな考え方は必要無い。
(ラスタライザとか書くなら別だが)
0270ヒッキー@プログラミング
NGNG↑次うぷしました。変更点は
・他の色のブロックの追加
・ステージエディタの修正
です。
>>249
毎回除算してた部分を書き直してみました。
次うぷするときは重力とか入れてみたいです。
>>251
ういー。なんかDDAというのは難しそうなので、
また今度調べてみようと思います。
>>262
アークタンジェントってどうやって使ったらいいのでしょうか…。
ラケットにこすれる時、vxを直接変えたほうが簡単かもしれないですねー。
>>263
ほおほお。そういうことも考えられるんですね。参考になります。
>>267
してみました。
4ガノッサください。
0271ヒッキー@プログラミング
NGNG0272デフォルトの名無しさん
NGNG考え方としての応用範囲は広いよ。 差分解析だよね。
整数演算だけで実現出来るけど、無理に整数に拘る必要はないと思うよ
でもデジタル微分とか差分とか難しく考える必要はないよ
説明は x=f(t) を x=∫f'(t)t として f('t) を積分するだけ
tの多項式なら何度かこの変換をすれば定数になる
また2変数の多くは相互に参照すればt項が消せる
・・・・というのが理屈だけど、ゲームなんかだと理屈関係
なく自然に使ってるよね。
というか px,pyにvx,vyを毎回足すという処理が既にDDAだから
難しいというより 既に使ってるよ >>270
0273249
NGNG反射 は 回転(カーブ)に似てるけど壁の角度をAngle
水平 Angle=0度
垂直 Angle=90度
とすると vx,vyに対して
Private Sub reflect(Angle)
Dim s, c
s = Sin(PI * 2 * Angle)
c = Cos(PI * 2 * Angle)
x = vx: y = vy
vx = c * x + s * y
vy = -c * y + s * x
End Sub
となる 0度の時は c=1,s=0 になるから yだけ符号が反転
90度なら c=-1,s=0で xだけ符号反転
というのは既に使ってるよね。
これを一般化したのが上の式
だからラケット位置や動きの効果を反射で表現したいなら
水平との反射=0度でなく±45度の範囲で反射させればいい
ラケットの左右のスミの場合は、スミ座標とボール中央と90度
の方向に反射させればいい
0274249
NGNGでもPIは3.1415にして PiDegみたいな変数名の方がいいと思うな
0275249
NGNGスミ座標と玉の中心座標の差 dx,dyを使って直接s,cを求めてもいい
1、正規化 c=dx/sqr(dx*dx+dy*dy) : s=dy/sqr(dx*dx+dy*dy)
2、90度反転 これは s,cを入れ替えて片方の符号を反対に
3、2倍角 c'=c*c-s*s s'=2s*c
と3つの手順で求まる
でも、幸い ボールは上からしか来ないから dyは0にならないはずとして
atn(dx/dy)*180/3.14 で角度求めた方が判り易くいていいと思うけどね
0276デフォルトの名無しさん
NGNG三角関数が判らないと というより行列がわからないとゲームも作れない雰囲気だな
0277デフォルトの名無しさん
NGNGhttp://members.tripod.co.jp/snishi/text/index.html
みんなそんな難しい手法使ってないから安心しろよ>>1
0278吾輩は名無しさんである
NGNG0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG0281249
NGNGと俺も思うよ。
でも、1はソースを公開してるし、習得も早いからさ、
つい、スタンダードというか普通はこうするってのを教えたくなったのさ
基本的なアイテムの動かし方を身に付けた方がいいだろって余計なお世話かもしれんけどな
0282sage
NGNG0283デフォルトの名無しさん
NGNG壁に当たったら少しずつ速度がUPみたいなほうが
おもしろいとおもう。
実際、テトリヌなんか、ブロックの落ちる速度が速くなったりするしね。
# あんまりテストプレイさせてもらっていないから分からないけど…
0284デフォルトの名無しさん
NGNGのブロック崩しみたいに、ボールの角度変え + 敵きぼんぬ>>1
0285デフォルトの名無しさん
NGNGカコイイ!
0286吾輩は名無しさんである
NGNG0287デフォルトの名無しさん
NGNGパクリだ!なんて騒がれたら、1がかわいそう。
1さん、オリジナル な要素を含めてね(♥
0288デフォルトの名無しさん
NGNG0289(・ε・)
NGNGhttp://shinkiro.tripod.co.jp/valkyrie/cd_gano.html
す、すいません。1ガノッサしかないんです。
0290デフォルトの名無しさん
NGNG>>260
煽るつもりはって言われても、
こっちもわざと書いてみたりしただけだし(藁 カメレススマソ
完成したらどっかにうぷしておきます。ただしURIは公開しません(藁
# なんとなく今暇だからアプリ作りつつ例の吉野家コピペ
# 作成ScriptをJavaScriptでかいてたり。
重力もいいね。なにかボールと反発するようなブロックとかも追加きぼん!
ボールが風か何かで吹き飛ばされるみたいなのとか。
みんながアイデア出すから、結構ゲームの発想の手間が省けてたり
してるんじゃないかと。
厨房のとき発想力の無さからあきらめたんだよね。折れ。
だからこそ応援しているぞ1!
ここまでコメント */
0291デフォルトの名無しさん
NGNGアルカノイドのつもりで敵にパドルぶつけたら、パドルが破壊された(笑
同ジャンルのゲームを見た方がいいかは微妙だね。
パクり以前にモチベーション下がるか上がるか・・・それは本人次第だけど。
俺なんかは、自分のアイディアが既出だったりすると萎えるタイプ。
最初このスレ見たとき俺もブロック崩し作ろうかと思ったけど、1が萎えそう
だからやめたよ。
0292デフォルトの名無しさん
NGNGおれは7314点が最高。三面がクリアできない。。。
0293292
NGNG0295デフォルトの名無しさん
NGNG0296(・ε・)
NGNG作って公開しようと思ったんだけど。
0297デフォルトの名無しさん
NGNG0298あきまさ
NGNG0299デフォルトの名無しさん
NGNG0300
NGNGソースまで載せて手ほどきするのはどうかと思うよ。
最初の頃のようにキーワードや概要だけを載せてあげたほうが、
1も試行錯誤するだろうし結果的に身に付けるスピードも速くなると思う。
まあ1が鵜呑みにせず自分なりに解釈して作り出すタイプ(根っからのプログラマ気質?)
なら全然構わないんだけどさ。
頑張って欲しいね。
0301デフォルトの名無しさん
NGNGステージクリアまで待てないよ・・・
ステージの背景に描いて頂戴!
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNGもっとましなの作れよ。
0305吾輩は名無しさんである
NGNGお主が作ればよかろう。
0306ヒッキー@プログラミング
NGNG↑つぎうぷしました。変更点は
・マウスモードの追加
・残機を3に変更
・難易度の調整
です。
>>272
ほお、そうなんですか?既に使っていたとは(藁
理屈的にはムズカシそうですねー。ちゃんと理解できるようにします…。
>>273
ちょ、ちょっとまってください…理解するのに紙に書いてみないと
難しいです…正規化とはなんでしょう?ヘイホウコン使うんでしょうか。
もうちょっと頭使います。
>>277
お、ちょっと安心しました(w
ラケットがあたる位置で判定してたりするんですねー。
>>279
了解。頭に刻んでおきます。
>>280
ビブンセキですか。できるかな…。
>>281
おー、ありがとうございます。そういう意図があったんですね。感謝します。
>>283
一応、書いてはいたんですが、上がり方がしょぼかったようです。
難易度調整しました。
>>284
やってみました。ShockWaveって結構すごいですねー。
まだまだ負けてる…。敵っておもしろいので考えてみたいです。
>>289
ありがとうございます。1ガノッサ頂きます…ってガノッサって
おっさんだったんですね。
>>290
ご意見ありがとうございます。風とか吹いてもおもしろそうですね。
結局重力は今回、いれれませんでした…
更新age
0307ヒッキー@プログラミング
NGNG自分のアイデアが既出だったらちょっと悲しいと思います。
ブロック崩し、2chの人も結構作ってるみたいで、ヒッキー崩しというのを
発見したんですが、(鬱打のページ)それもコンボ点とかありました…
VBでDirectXつかってるし。鬱氏
>>292
おぉ、感謝感謝。やってくださる人がいてると嬉しいです。
>>294
完成したらインターネットランキング作ってみたいと思います。
>>295
う…
>>296
一応テキスト化したんですが、拡張子がSTGになっています。
>>297
そうですねー。壊れないブロックにあたるとぶるぶるします。
今回は修正できませんでした…
>>299
エロ画像描いてくれる人キボンヌ
>>300
がんばりますー。
ソースは参考にさせていただいてます。…が、ちょっと難しいです(藁
>>303
僕は最高15000点くらいです。26000点…すごい。
>>304
ちゃんとゲームとして認識されるようになっただけでも嬉しいです。
最初はゲームどころではなかったので(w
0308デフォルトの名無しさん
NGNG本物のヒッキ-なら
高専の数学1,2 これの問題集とセットで勉強するといい
http://www.morikita.co.jp/mokuji/0481.html
http://www.morikita.co.jp/mokuji/0482.html
0309249
NGNGといっても、
ベクトルは単に複数の数をまとめて扱うというだけ
行例は、数式の係数をまとめて扱うというだけという理解でとりあえずスタート
たとえば、玉の動きは
x = x + speed * cos(angle)
y = y + speed * sin(angle)
これは正しい でも
ball_x = ball_x + vx * (90 - Angle)
ball_y = ball_y + vy * Angle
こではダメっての説明してみるね。
前者は回転だけど、後者は、伸張になってしまう。
○回転というのは
vx*cos(w) - vy*sin(w)
vx*sin(w) + vy*cos(w)
という形になっている。これはひとつのスタイルだから覚える。
そして、掛算してるのは vx,vyと4つの係数だからそれぞれ
|vx| |cos ,-sin|
|vy| | sin , cos| と分離して考える。
左がベクトルで右側が行列だ
で、元の格好に直す規則は・・・判るよね?
ここまでいい? とにかく2つの数がこういう格好に並んでいれば回転だって事で
○反射は既にやってるように
vx=vx
vy=-vy
という格好になっている これも分離すると
|vx| | 1 , 0|
|vy| | 0 ,-1| となる。
上の回転では角度がどうであれこの格好にならないの判るよね?
任意の角度で反射させるには回転を組み合わせればいい。
ただ、反射する時は反射面に対して倍角で反射するというのに注意
で、組み合わせる時は この反射を掛算した結果のベクトルは
| vx|
|-vy| となるなら、上の回転の vyを単に-vyにするだけでいい
○伸張 y軸が斜面で、斜めにあるのを上から見る場合は
| 1 , 0|
| 0 , a | というようになるよね? これが伸張さらに裏から見たら 上にある反射になる
○拡大/縮小 これは簡単で全体に
| a , 0|
| 0 , a | とaを掛算すればいい
0310デフォルトの名無しさん
NGNG気持ちはうれしいけど、その説明は
ちゃんと数学の本を手にして読まないと
わけわからんかと。
0311デフォルトの名無しさん
NGNG遅延演算子も導入してさ
一挙に微積分飛び越してフーリエ・ラプラス変換の世界にご招待ってのは?
0312249
NGNGWeb上の教科書は 特にベクトル 行列は少ない。基礎だからね
だから高校の教科書でも手に入れて勉強するしかないね。
ちょっと調べてみつけたのは
高校:
ttp://www.kwansei.ac.jp/hs/z90010/hyousi/2106.htm
応用数学なら見つかるんだけどね
ttp://next1.cc.it-hiroshima.ac.jp/MULTIMEDIA/diffpub/diffpub.html
0313249
NGNG数学玉手箱
http://www.nikonet.or.jp/spring/sanae/MathTopic/MathTopic.htm
ベクトルとは
http://www.nikonet.or.jp/spring/what_v/what_v.htm
0314デフォルトの名無しさん
NGNGエロ画像ソース!
★☆★いやんエッチ!見ないでよ!★☆★
http://piza2.2ch.net/test/read.cgi/kao/1000818283/
0315デフォルトの名無しさん
NGNG組み合わせたものと教えるのが一番分かりやすくていいんじゃないか?
もっとも、ブロック崩しごときで行列を持ち出す必要ないと思うけど。
方向変えるなら、vxを適当にいじったあとに、√(vx*vx+vy*vy)がvxをいじる
前と同じになるようにするだけでも十分だよ。
例えばC言語で書くと
v = sqrt(vx*vx+vy*vy);
vx1 = vx / v;
vy1 = vy / v;
vx1 += (適当な値。例えばパドルのX座標-ボールのX座標など);
v1 = sqrt(vx1*vx1+vy1*vy1);
vx = (vx1 / v1) * v;
vy = (vy1 / v1) * v;
この程度で十分かと。
0317デフォルトの名無しさん
NGNG|vx| |cos ,-sin|
|vy| | sin , cos|
じゃなく
|cos ,-sin| . |vx|
| sin , cos| |vy|
てかいてよ
0318(・ε・)
NGNG0319(・ε・)
NGNGBlock04,9,200,016#Block05,9,184,000#Block06,9,024,008#Block07,9,008,024
Block08,9,192,008#Block09,9,208,024#Block10,9,048,080#Block11,9,056,088
Block12,9,064,096#Block13,9,072,104#Block14,9,168,080#Block15,9,160,088
Block16,9,152,096#Block17,9,144,104#Block18,3,088,040#Block19,3,128,040
Block20,3,128,056#Block21,3,088,056#Block22,3,088,072#Block23,3,128,072
Block24,3,088,024#Block25,3,128,024#Block26,9,096,136#Block27,9,120,136
Block28,3,192,128#Block29,3,024,128
-----
>>1 これでプレイしてみて。"#"は改行に置き換えて。
ブロックにくっつくバグが置きやすいよ。
0320(・ε・)
NGNGステージファイルをパラメータに与えて起動するとそのステージだけ
プレイできるとステージのテストプレイがやりやすいなぁと。
0321>318
NGNG0322デフォルトの名無しさん
NGNGなんかいいね。
0323デフォルトの名無しさん
NGNGなんだそりゃ
マッピーで盗品全部集めた後に
開けたドアを全部閉めたらクリア
って言ってるのと同じだぞそれ
0324(・ε・)
NGNGBlock04,9,024,152#Block05,2,080,096#Block06,2,080,120#Block07,2,128,120
Block08,2,128,096#Block09,2,184,096#Block10,2,184,120#Block11,1,128,072
Block12,1,128,048#Block13,1,080,072#Block14,1,080,048#Block15,1,184,072
Block16,1,184,048#Block17,1,024,072#Block18,1,024,048#Block19,3,080,024
Block20,3,080,000#Block21,3,128,024#Block22,3,128,000#Block23,3,184,024
Block24,3,184,000#Block25,3,024,024#Block26,3,024,000#Block27,1,024,184
Block28,1,184,184#Block29,1,104,152
------
かなりバグります。球の速度に制限を設けた方がいいかもしれませんね。
>>321 なんとなく。ゲーム性があがらないかな?
>>323 マッピー知らんです。ゲームはあまりやらないもんでして。
0326デフォルトの名無しさん
NGNG基本は、難しいことをしたら見返りがあって、簡単なことをしたらペナルティ。
見返りってのはボーナス点が貰えるとか、ブロック崩しなら速度が遅くなるとか。
ペナルティはその逆。
とは言っても、必ずしもこれに従う必要は無いよ。
例えば同等の難易度の2種類の行為について、片方だけ点を高くしておくと
点を稼ぐにはそれだけを狙う必要があって、結果的に難易度の向上に繋がる。
クリアだけなら簡単、稼ごうとすると難しくなるようにようにするのが俺流。
0327デフォルトの名無しさん
NGNGiniファイルのステージファイル名を書き換えるのがいいと思われ
0328初心者さん
NGNGがんばってね。>>1
0329コーダーさん
NGNG>>1
俺は始めて作ったゲームっぽい作品はBio100%の戦艦シューティングもどき
だった。なつかしい。
最後までがむばれYO!
0330ななし
NGNG水平に近い弾道でブロック壊したら、
2Hitsって出たけど、ポイントが0から増えなかった。
うまく再現できないんで、もう少し試してみる。
0331デフォルトの名無しさん
NGNG壊すみたいのがいいなぁ。
要望ばっかだが、>>330の 問題をぼくも確認してみます。
0332デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?q=%83u%83%8D%83b%83N%95%F6%82%B5+%95%9E&hl=ja&lr=
ブロック崩し + 服 で検索。
さすがにエロ系が多かった。
0333デフォルトの名無しさん
NGNGコメントかい。(誰かのレスにそんなかんじのが…パクリ?)
しかもコメントとじれてないし。
それより>>1のヒッキー@(略)
やってみたけど、結構おもしろかった。
ず〜っと前のヴァより断然面白くなってるよ。
コンボ点&角度変化&玉の速度アップで。
vectorにでも、こういうゲームはうようよあるから、
頑張れ!
0334デフォルトの名無しさん
NGNG0335ヒッキー@プログラミング
NGNGほお、高専の教科書ですかー。穴場的ですね。
普通の本屋で注文できるのかな…
>>309
おー、とてもよくわかりました。
回転の式はCGの本に載ってたので、1回画像の回転のプログラムを作るときに
使ったことがあります。そのときは行列の意味がよくわからなかったんですが(藁
反射は単に符号を反転させるだけで良いというのは分かるのですが、
ボールが早すぎる時に、反転しても画面に戻ってこなくなる事があったので、
ifをいれて、画面内の方向のみを向くようにしました。
伸張は…(y軸が斜面で、斜めにあるのを上から見る場合は)というのが
よく分かりません…。
>>312
高校の方のページ、なんか読めそうです。
分からないところ、全部読んでみようと思います。
>>313
わざわざいくつも探して頂いて申し訳ないです…
あとで、ウチのページでまとめて紹介したいと思います。
>>314
あの…エロ画像ならHDDにも入っています(w
でも、やっぱ使ったらまずいかなぁと
>>318
はは。そうですねー。おもしろいかも。
今の段階では、受け止めてクリアの表示を出してる間、
ボールが自機に埋まる or 変な位置にあるような気が
するので、ちょっと考えてみます。
>>319
やってみました。
うまりますね…。残像残ってるし。埋まらないように考えたいと思います。
わざわざ上げていただいて、サンクスです。
>>320
あー、たしかに。
いじってみようと思います。
>>324
今、実験的に速度の制限つけてみました。
直るかどうかはもうちょっと試験運転しないとわからないですが。
>>326
あー、そういうのおもしろいですねー。
ゲーセンでシューティングゲームやってると、そういう設定のが
結構ありますね。名作ほど微調整が細かかったり。
>>328
ういー。がんばりますよー。もうちょっと完成度あげたいです。
0336ヒッキー@プログラミング
NGNGこの前、Bio100%のページいきました。
戦艦のゲーム、以前にどっかでやった事あるような…(藁
>>330
実は水平に近いほど点が入らないようにしてあります。
テストしてると、10度くらいの角度にしたら、簡単にクリアできるし、
点もかなり入ってしまったので。
>>331
おぉ、そういう設定の仕方もあるんですねー。参考になります。
>>332
服がだんだん欠けていくゲームがイパーイありますね。
全部同じ様に見えるのは気のせいでしょうか。
>>333
どもども。ありがとうございます。
vectorですかー。一回、ゲームのところ覗いてみます。
>>334
今回のUPしたやつは前より難しいです。
僕もそんなに点が取れなくなりました…
0337ヒッキー@プログラミング
NGNGhttp://pc.2ch.net/test/read.cgi/tech/990219336/
を読みました。
作ってみないと気付かないような所にワナがいっぱい潜んでるんですねー。
(3Dシューティングで、リプレイのデータが浮動小数点で
管理してるとずれてくるなど)
あと、雷電のレーザーはどうやって実現してるのか気になりました…。
それから、ひとつ疑問なんですが、ローカル変数とグローバル変数は
どういうときに使い分けたらいいんでしょう。全てグローバルでも
よさそうに感じるのですが…。
ローカルだと関数呼び出すたびにメモリを確保しないといけないと思うし、
関数に引数を使うときも、スタックに積んだりしてたら余計に遅くなったり
しないかなぁと、ふと疑問に思いました。
0338ヒッキー@プログラミング
NGNG0339デフォルトの名無しさん
NGNGグローバル変数はなるべく使わない方がいいよ。
理由は色々あるけど、一番恐いのはどこで変数の内容が破壊されるか分からない事。
以前、全てグローバル変数で組んでて原因不明のバグで悩んでる人の相談にのった
ときは、ループ用のカウンタをグローバル変数にしていて、ループの中で別の関数
を呼んでいるんだけど、その呼ばれた先でも同じ変数を使ってループしていた。
その関数呼ぶとループ用の変数が書き換えられるから、それが原因で無限ループに。
まぁ、この辺はグローバル変数でトラブってみないとピンとこないかもしれないが。
昔のBASICはグローバル変数しか無かったから苦労した。
ちなみに速度で言えば、ローカル変数の方が速いよ。
ローカル変数が使うメモリ領域ってのはスタックメモリって呼ばれていて、あら
かじめ決められたサイズで最初に確保してあるの。だから、メモリ確保に関する
コストはほとんど0に等しい。
(ちなみに通常のメモリはヒープと呼ばれていて、グローバル変数はヒープに
確保される)
ローカル変数の方が速い根拠だけど、1つはコンパイラの最適化がかかりやすいこと。
ローカル変数ってのはその関数を抜けたら消えてなくなるものだからメモリに値を
保存しておく必要が無いので、実際にはメモリを確保せずにCPUのレジスタを割り
当てる場合がある。レジスタはPCの中で最も高速にアクセスできるメモリ。
もう1つは、ローカル変数は関数に入った時点で順番に確保されるから、関数内で
使う変数がメモリの中で近い位置に確保されること。CPUのキャッシュは32バイト
単位でキャッシュしてるから、1つの変数にアクセスした際に他の変数もキャッシュ
に入る可能性が高くなる。
ローカル変数とグローバル変数に関しては、構造化プログラミングを勉強してみると
いいかも。いまどき構造化プログラミングなんて参考書無さそうだけど。
ちなみに、スタックメモリはコンパイル時にサイズが決まっていて、通常はあまり
大きくないのでローカル変数で巨大な配列とか使うとエラーが出るので注意。
グローバル変数ならヒープに確保されるので、20MBくらい使っても平気。
0340339
NGNG(大事なのは聞いてみることより、むしろ疑問に思うこと)
0341デフォルトの名無しさん
NGNGball_xとか vx とかを一つの構造体にまとめたら 関数呼び出しが楽だし
ボールを2つにするのも簡単になる
0342デフォルトの名無しさん
NGNG>グローバル変数ならヒープに確保される
…ん?
0343デフォルトの名無しさん
NGNG間違っていないと思うけど。グローバル変数はプログラムの
開始から終了までずっと残っているものなので、ヒープ領域
に確保されると習った。
あと、ローカル変数でも static 宣言した変数はその関数が
終了しても値が残っていて、これもヒープに確保されると
習った。
間違っている?
0344デフォルトの名無しさん
NGNG間違ってる。BSS で検索。
0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNGBSSとかって環境依存な気がする。
0347デフォルトの名無しさん
NGNGいずれにせよ、ヒープに確保されるのは間違いって話では?
C の規格ではメモリの分類に関しては何も言ってないが、一般には
text プログラムのコード (サイズ固定)
bss 初期化されない変数 (サイズ固定)
data 初期化された変数 (サイズ固定)
stack 自動変数 (サイズ可変)
heap 動的に確保/解放されるメモリ (サイズ可変)
ぐらいに分けて管理してることが多いと思われ。Win32 だとヒープもプロセスヒープ以外に、プライベート
ヒープとか複数持てたり、スレッドが絡むとスタックも並行して複数存在することになるから、いろいろと
話がややこしいけど。
0348デフォルトの名無しさん
NGNG習ったって話なので一般論を習っただけでわ?
bss やら data ってのは環境依存というより実装依存だと思われ
0349デフォルトの名無しさん
NGNGとりあえずこういう用語は一般的に使われるし
覚えておいて損は無いでしょ。
得も無いかもしれんけどな。
0350デフォルトの名無しさん
NGNG漏れがC覚えたのZ80だったから、スタックとヒープしか無いような状態だったよ。
0351デフォルトの名無しさん
NGNGヒープはヒープ! alloc系の操作で確保する領域
普通の変数はそれとは別のセクションに取られる
領域は大まかにコード用の領域、グローバル/staticデータの領域、ヒープ用、スタック用と
4つに分割される。 一般的にはスタック用とヒープ用の領域は重なっていて、
スタックは下から ヒープは上から確保される
基本はZ80用でも構成は殆ど同じ 違いはROM用に定数用の領域があったりする程度
0352デフォルトの名無しさん
NGNG> スタックは下から ヒープは上から確保される
他は知らんが x86 は逆だな。
■ このスレッドは過去ログ倉庫に格納されています