トップページgamedev
990コメント416KB

ズブの初心者がゲーム作れるまで勉強するスレ

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。01/11/07 20:26ID:PFtlmWD9
【参加資格】
ズブの初心者以外お断りです。

なおアドバイス等はプロのかたでも結構です。
初心者は聞く耳を持ちプロもわかりやすく教えてやってください。
0940名前は開発中のものです。2006/03/26(日) 12:18:50ID:erP5z/In
*/
//敵が弾を発射
void Enemy_Fire(int cnt)
{
    int teki_num=cnt;

    for ( cnt=0 ; cnt<EBULLET_MAX ; cnt++)
    {
        if (bl[cnt][0] == 0) {
            bl[cnt][0] = 1;
            bl[cnt][2] = Enemies[teki_num].x+16;
            bl[cnt][3] = Enemies[teki_num].y;
            break;
        }
    }

    return;
}

/*
ここで終了です

開発環境
VC++
DXライブラリ
*/
0941名前は開発中のものです。2006/03/26(日) 12:57:44ID:erP5z/In
>>921-940をコピペしたらコンパイルできるつもりだったのですが
>>933の文頭と文末に*/と/*をつけるのを忘れてたのでその追加だけお願いします
それでコンパイル通ります

外部サイトでも平気な人は>>929に同等のソースがあります
特に理由がなければこちらをどうぞ
0942名前は開発中のものです。2006/03/26(日) 13:06:08ID:5N7smiYS
Boot_Initialize関数が見つかりません><
0943名前は開発中のものです。2006/03/26(日) 13:27:16ID:erP5z/In
//うっかりさんでごめんこりん><

//起動時の初期化
void Boot_Initialize()
{
    HighScore=74;
    Score=0;
    
    HGJiki = LoadGraph( "jiki.bmp" ) ;
    HGTeki = LoadGraph( "teki.bmp" ) ;

    ClsDrawScreen();

    return;
}
0944名前は開発中のものです。2006/03/26(日) 15:01:41ID:5/XI8n21
どうしてここにソースを貼り付けるのか
何度言われてもわかんないの?
0945名前は開発中のものです。2006/03/26(日) 15:08:10ID:0dHxYm65
//うっかりさんでごめんこりん><
だそうです
0946名前は開発中のものです。2006/03/26(日) 15:20:13ID:3eYiH+Hg


やったーーー!!
透明発見 その名はgmode ですーーーーーすすすすslすslすslすlす!!!!!

これはんまさに透明!!!半透明も簡単うあはぁふあhかゆあじゅhjし最高!!!!



次は球を増やしたいんだけど
変数をどんどん増やしていくの大変なんだけど
なんか対策アル?
0947名前は開発中のものです。2006/03/26(日) 23:53:49ID:pcdMut/g
ソース貼りまくって埋め立てか。次スレはいらないな
0948名前は開発中のものです。2006/03/27(月) 15:39:02ID:TSDimYuG
いいこと思いついた
トリップつければNGワードで一網打尽
0949 ◆src/N3iz.2 2006/03/27(月) 15:39:54ID:TSDimYuG
テスト
0950 ◆src/N3iz.2 2006/03/27(月) 15:40:39ID:TSDimYuG
#+OIF=^}^

トリップ置いておくのでみなさん使ってください
0951名前は開発中のものです。2006/03/27(月) 15:45:46ID:TSDimYuG
>>946
俺は配列変数使ってます
一緒にがんばりましょーヾ(*´∀`*)ノキャッキャッ
0952名前は開発中のものです。2006/03/27(月) 15:46:49ID:TSDimYuG
あ、ちょうどIDがDimだw
0953名前は開発中のものです。2006/03/28(火) 15:39:57ID:vBoe6Dt9
弾幕研究はじめる
0954名前は開発中のものです。2006/03/28(火) 17:21:43ID:ZIZJuDYi
この貼り付けられたソースはどうして欲しいのかな?
0955名前は開発中のものです。2006/03/28(火) 17:41:17ID:9EyZXfZz
本当にズブな質問で悪いのですが
DirectXを用いて2Dシューティングを作ろうと思っていたのですが、
まず、C++を学ぶものだと思っていたら
本屋へ行ってDirectXの本を読んだらVISUALC++を用いていたりVISUALC++.NETを使っていたりしていたのですが
まず、結局何を学べばよいのでしょうか?
あと、出来たらその後の簡単なするべき事の工程を教えてくださるとありがたいのですが
0956名前は開発中のものです。2006/03/28(火) 20:34:42ID:df2C19ZD
本来XCしかできない漏れは、VC++.NETで開発してますが何か?

>ズブ
C++もVC++も、ほぼC言語の上位互換だから、
C言語がわかればおk。ポインタを把握すれば完璧。
痒いところの手が届かないとか、簡潔な記述がしたくなったら、
C++の本を見てレパートリーを増やせばいい。
無理して色々な機能を使ったって糞コード量産するだけ。

>工程
DirectXの本のサンプルプログラムを弄って遊ぶのがいいんじゃないだろうか。
とりあえず動くものがあったほうがやる気が湧きやすいし、維持しやすい。
拡張に行き詰まりを感じたら、新規に零からコツコツ書いていって、
DirectXを研究しながら、然るべきタイミングで然るべき処理をするようにする。
0957名前は開発中のものです。2006/03/28(火) 23:02:45ID:5LhBke5O
>>955
CやC++は言語。VisualC++なんかはIDE。
いくらCやC++の文法や規則を覚えて頭の中でコードがかけても
それをexeファイルとかにできんと何の意味もないだろ。
そのコードの作成を補助したり
実際に実行できるexeファイルにしたりするのが、
コンパイラだったりエディタだったりIDEだったり。
この辺のツールの厳密な意味はググってくれ。
0958名前は開発中のものです。2006/03/29(水) 10:15:41ID:0n+YEyJr
//下方向へ直進するだけの弾

buffer 2,640,480
screen 0,640,480

bx=320
by=240

repeat
    gsel 2,0
    cls 4
    await 1

    color 255, 255, 255
    circle bx, by, bx+16, by+16, 1
    by=by+8

    gsel 0,1
    gcopy 2,0,0,640,480    
loop

実は狙い撃ち弾の作り方がよくわからない
角度のある弾はsin、cos使えばいいってのはわかる

ところで、気づけばもう

    情報処理技術者試験まであと18日

そろそろ勉強しなきゃ
0959名前は開発中のものです。2006/03/29(水) 11:43:32ID:iWwCTn19
atanで角度算出して発射しろ。

昔の2種なら高校時代とったが言わせてもらえば
何の役にもたたん。しいて言うなら自己満足か。
そんな勉強より実践で使えるアルゴリズム類を勉強しとけ。
0960 ◆src/N3iz.2 2006/03/29(水) 14:42:56ID:0n+YEyJr
buffer 2,640,480
screen 0,640,480

bx=320
by=240

tx=rnd(640)
ty=rnd(480)

//rad=atan(tx-bx, ty-by) //計算箇所1

repeat
    gsel 2,0
    cls 4
    await 1

    color 255, 255, 255
    mes rad

/*
0961 ◆src/N3iz.2 2006/03/29(水) 14:43:50ID:0n+YEyJr
*/
    rad=atan(tx-bx, ty-by) //計算箇所2
    
    circle tx, ty, tx+16, ty+16, 1

    circle bx, by, bx+16, by+16, 1

    bx=bx+sin(rad)*10
    by=by+cos(rad)*10

    if abs(tx-bx)<16 and abs(ty-by)<16 {
        tx=rnd(640)
        ty=rnd(480)
        rad=atan(tx-bx, ty-by)
    }


    gsel 0,1
    gcopy 2,0,0,640,480    
loop
0962名前は開発中のものです。2006/03/29(水) 14:52:23ID:0n+YEyJr
ソース
>>960-961
http://blog.goo.ne.jp/gamedevhsp/e/8080023be3115e0fdb2ac4520640e9ca
次々と出てくる標的に弾が飛んでいくプログラムです

計算箇所1で計算すると弾が当たらない
そこで計算箇所2で計算すると当たるようになった
でも弾道が弓なりに曲がるようになる
0963名前は開発中のものです。2006/03/29(水) 15:15:20ID:ywlDUjDm

きっとあの人だろうな・・・・(ス・・
ageんな。
0964名前は開発中のものです。2006/03/29(水) 17:04:38ID:0n+YEyJr
ブレゼンハムアルゴリズムというのを見つけた
わからなかったorz
>>959で言ってるアルゴリズムの勉強ってこういうことなのか
0965名前は開発中のものです。2006/03/29(水) 17:58:04ID:0n+YEyJr
>>963
スではじまるコテハンなんていたっけ?
0966名前は開発中のものです。2006/03/29(水) 18:18:29ID:0n+YEyJr
buffer 2,640,480
screen 0,640,480

dim bx,3
dim by,3
dim rad,3

repeat 3
    bx.cnt=320
    by.cnt=240
loop

tx=rnd(640)
ty=rnd(480)

//計算箇所1
rad.0=atan(tx-bx.0, ty-by.0)-0.5
rad.1=atan(tx-bx.1, ty-by.1)
rad.2=atan(tx-bx.2, ty-by.2)+0.5
/*
0967名前は開発中のものです。2006/03/29(水) 18:19:17ID:0n+YEyJr
*/
repeat
    gsel 2,0
    cls 4
    await 1

    color 255, 255, 255

    repeat 3
//        rad.cnt=atan(tx-bx.cnt, ty-by.cnt) //計算箇所2
        
        circle tx, ty, tx+16, ty+16, 1
    
        circle bx.cnt, by.cnt, bx.cnt+16, by.cnt+16, 1
    
        bx.cnt=bx.cnt+sin(rad.cnt)*10
        by.cnt=by.cnt+cos(rad.cnt)*10
    
        if abs(tx-bx.cnt)<16 and abs(ty-by.cnt)<16 {
            tx=rnd(640)
            ty=rnd(480)
/*
0968名前は開発中のものです。2006/03/29(水) 18:55:25ID:0n+YEyJr
*/
            bx.0=bx.1
            by.0=by.1
            bx.2=bx.1
            by.2=by.1
            
            rad.0=atan(tx-bx.0, ty-by.0)-0.5
            rad.1=atan(tx-bx.1, ty-by.1)
            rad.2=atan(tx-bx.2, ty-by.2)+0.5
        }
    loop

    gsel 0,1
    gcopy 2,0,0,640,480    
loop
0969名前は開発中のものです。2006/03/29(水) 19:03:06ID:0n+YEyJr
ソース
>>966-968
今度は3way弾
あ、ソースはトリップつけようと思ってたのに忘れた

これ作って気づいたけど>>962の計算箇所2ってただのホーミング弾だorz

狙い撃ち弾を正確に命中させるには、たぶん対策は大きく分けて二つ
・精度をあげる
・アルゴリズムを変える

意外とムズカシス
0970名前は開発中のものです。2006/03/29(水) 19:52:28ID:iWwCTn19
ああ、コイツか。
ウザス
0971名前は開発中のものです。2006/03/29(水) 20:28:08ID:0n+YEyJr
こ、こいつってだれなんだー!
0972名前は開発中のものです。2006/03/29(水) 20:29:13ID:qXE6Wdy2
パロディウスにいたな
0973名前は開発中のものです。2006/03/29(水) 21:43:24ID:0n+YEyJr
おまえらちょっと隙を見せると雑談はじめやがってw
狙い撃ち弾のやり方わかる奴いねーの?
0974名前は開発中のものです。2006/03/29(水) 21:52:28ID:ENDbob5I
>>973にドン引きしたのは俺だけではないはず
0975名前は開発中のものです。2006/03/29(水) 21:56:20ID:0n+YEyJr
ごめんなさいすみません無理して2ちゃんねらーっぽく振る舞ってしまいました
今は反省してます

トークも弾も狙いがことごとくはずれるorz
0976名前は開発中のものです。2006/03/29(水) 22:01:39ID:0n+YEyJr
>>974
IDがEND
0977名前は開発中のものです。2006/03/29(水) 22:01:49ID:ffJjCuui
( ´д)ヒソ(´д`)ヒソ(д` )
0978名前は開発中のものです。2006/03/29(水) 22:06:03ID:Homs13rz
そりゃおめー、自機のXY座標と砲台のXY座標の差を取って、XYそれぞれの成分を「当たるまでに要するフレーム数」で割って算出、初速として与えてやればいいんでね?
型はfloatがいいな。
0979名前は開発中のものです。2006/03/29(水) 22:07:01ID:JtrDjhKk
なんで目標への単位ベクトルじゃダメなの?
0980名前は開発中のものです。2006/03/29(水) 22:43:32ID:0n+YEyJr
>>978>>979って同じことを言ってるんですよね?
なんとなくわかってきました
角度じゃなくてxとyの移動量で計算するんですね

floatってHSPだとどうなるんだろう……
0981名前は開発中のものです。2006/03/29(水) 22:45:28ID:Homs13rz
ズブの素人スレだからだよ
俺も素人。
0982名前は開発中のものです。2006/03/29(水) 22:49:05ID:0n+YEyJr
#define MAX 32

buffer 2,640,480
screen 0,640,480

dim bx,MAX
dim by,MAX
dim rad,MAX

repeat MAX
    bx.cnt=320
    by.cnt=240
loop

tx=rnd(640)
ty=rnd(480)

repeat MAX
    rad.cnt=atan(tx-bx.0, ty-by.0)-6.28/MAX*cnt
loop
0983名前は開発中のものです。2006/03/29(水) 22:49:35ID:0n+YEyJr
repeat
    gsel 2,0
    cls 4
    await 100

    color 255, 255, 255

    repeat MAX
        circle tx, ty, tx+16, ty+16, 1
        circle bx.cnt, by.cnt, bx.cnt+16, by.cnt+16, 1
    
        bx.cnt=bx.cnt+sin(rad.cnt)*10
        by.cnt=by.cnt+cos(rad.cnt)*10
    
        if abs(tx-bx.cnt)<16 and abs(ty-by.cnt)<16 or by.cnt>480 {
            tx=rnd(640)
            ty=rnd(480)
0984名前は開発中のものです。2006/03/29(水) 22:50:07ID:0n+YEyJr
            repeat MAX
                bx.cnt=320
                by.cnt=240
                rad.cnt=atan(tx-bx.0, ty-by.0)-6.28/MAX*cnt
            loop
        }
    loop

    gsel 0,1
    gcopy 2,0,0,640,480    
loop
0985名前は開発中のものです。2006/03/29(水) 22:52:29ID:Homs13rz
HSPで浮動小数 利用 でぐぐるか、Cの勉強を始めなさい。
だが、まず自分で検索することを覚えねば未来は無い。



…だから長いソース貼るなって言われてんだろ!!!!!
0986名前は開発中のものです。2006/03/29(水) 23:07:31ID:0n+YEyJr
ソース
>>982-984
http://blog.goo.ne.jp/gamedevhsp/e/6063c8d3fb513f96c332e4f7e748a934
丸く花火のように散る弾です
でも50発ぐらいが限度でそれ以上弾が出てる様子がないです
極端に3000発ぐらいにしても50発のときと変わりませんでした

>>985
HSPplusというプラグインがでてきました
ありがとうございます

ソースを外部にうpすると2chに貼れという人もでてくるので両方にうpしてます
今まではどちらかというとそういう人のほうが多かったので今回の反応にとまどってます
gamdevは例の事件や例のバグもあって絶対踏まない人もいるのでスレが伸びないと思ったんですよ
もう風化してますがひさびさにうpすると早速IPアドレスが漏れたり削除できなくなったりで変わってないなぁと……
ブログのほうはアクセス解析がついてますがIPアドレスは取ってないです
アクセス数が少ないのでやっぱり外部より2chのほうが見やすい(心理的に)のではないかなと分析してます
ご不便をおかけします
0987名前は開発中のものです。2006/03/29(水) 23:15:05ID:JtrDjhKk
誤:ご不便をおかけします
正:ご迷惑をおかけします
0988名前は開発中のものです。2006/03/30(木) 01:30:02ID:J45kuvXn
>>978
 floatは2.6だと要プラグイン。3.0以降なら a=0.0 と初期化宣言すればok。

 あと、内部(算出)値を1000倍、出力するときは1000で割るという手法もありますよ。1024とか
512のほうが相性はいいですが。

>>986
 変数bx、by、radが実数値になっていませんよ。

>dim bx,MAX
>dim by,MAX
>dim rad,MAX

 をそれぞれdimからddimにして、

>repeat MAX
> bx.cnt=320
> by.cnt=240
>loop

 は

bx.cnt=320.0
by.cnt=240.0

 にしてください(最初のほうとループ内の二箇所)。あと await は16か32で。
0989名前は開発中のものです。2006/03/31(金) 01:53:01ID:29R+LSun
Cを学ぶ
C++を学ぶ
WinAPIとDirectXの存在を知る
サンプルプログラムをいじる
スケルトンプログラムを利用してちょっとしたゲームを作る←今ココ
・・・
・・・
0から自分で作る
0990名前は開発中のものです。2006/03/31(金) 15:16:39ID:+8lDizLk
最初は先人の知恵を利用しまくった方が良いだろうね。
作り方を覚えたら、自分でつくる部分を多くしていく、と。
レス数が950を超えています。1000を超えると書き込みができなくなります。