ズブの初心者がゲーム作れるまで勉強するスレ
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。
01/11/07 20:26ID:PFtlmWD9ズブの初心者以外お断りです。
なおアドバイス等はプロのかたでも結構です。
初心者は聞く耳を持ちプロもわかりやすく教えてやってください。
0930名前は開発中のものです。
2006/03/25(土) 16:20:00ID:dp6Fd2glgcopyやると
チラチラして目が痛いンmだけど対策おしえてくれ!
あと、指定した色透明とかないの?
0931名前は開発中のものです。
2006/03/25(土) 16:26:34ID:Xo5AkaJLリファレンスと公式のチュートリアルも読めないのか池沼
0932名前は開発中のものです。
2006/03/25(土) 20:58:41ID:xoont0lh*/
Enemy_Fire(cnt);
}
//敵が接地したか
if (Enemies[cnt].y > 448) invasion = 1;
}
}
if (dir != ndir) {
for (int cnt=0 ; cnt<MAX ; cnt++)
{
Enemies[cnt].y = Enemies[cnt].y + 4;
}
}
dir = ndir;
/*
0933名前は開発中のものです。
2006/03/25(土) 20:59:11ID:xoont0lhfor (int cnt=0 ; cnt<EBULLET_MAX ; cnt++)
{
if (bl[cnt][0] == 1)
{
bl[cnt][3] = bl[cnt][3] + 8; //移動
DrawLine(bl[cnt][2], bl[cnt][3], bl[cnt][2], bl[cnt][3] + 16, GetColor(255,255,255)); //描画
if (bl[cnt][3] > 480) bl[cnt][0] = 0; //画面外なら使用終了
if ((bl[cnt][2] > cx) && (bl[cnt][2] < cx + 32) && (bl[cnt][3] > cy) && (bl[cnt][3] < cy+32)) Dead = 1; //自機との当たり判定
}
}
DrawFormatString( 200, 0, GetColor(255,255,255), "Score : %d", Score);
if (Score > HighScore) HighScore = Score;
DrawFormatString( 0, 0, GetColor(255,255,255), "High-Score : %d", HighScore);
// 裏画面の内容を表画面に反映させる
ScreenFlip() ;
0934名前は開発中のものです。
2006/03/25(土) 21:31:46ID:dp6Fd2glrddraw 0
redraw 1
に挟んだらちらつきなくなりました〜ヤッホー!
第一段階クリアかな。
今、透明探してる。
0935名前は開発中のものです。
2006/03/25(土) 23:56:51ID:bTVU6xMsgcopy って打ち込めば関連ありそうなの表示されるよ
0936名前は開発中のものです。
2006/03/26(日) 11:29:59ID:erP5z/In0937名前は開発中のものです。
2006/03/26(日) 11:35:24ID:erP5z/In*/
if (Teki_Rest <= 10) tspeed=2;
if (Teki_Rest <= 1) tspeed=4;
if (Teki_Rest == 0) Stage_Initialize();
if ( (invasion == 1) || (Dead == 1) ) Play_Initialize();
// Windows システムからくる情報を処理する
if( ProcessMessage() == -1 ) break ;
// ESCキーが押されたらループから抜ける
if( CheckHitKey( KEY_INPUT_ESCAPE ) == 1 ) break ;
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
/*
0938名前は開発中のものです。
2006/03/26(日) 11:36:55ID:erP5z/In//ステージ初期化
void Stage_Initialize()
{
Stage_Num = Stage_Num + 1;
ZeroMemory(Enemies, sizeof(Enemies)); //敵
ZeroMemory(bl, sizeof(bl)); //敵の弾
for (int cnt=0 ; cnt<MAX ; cnt++)
{
Enemies[cnt].enable = 1; //利用中(0=否)
Enemies[cnt].x = ( cnt * 64 ) % 640; //X座標
Enemies[cnt].y = ( cnt * 64 ) / 640 * 64; //Y座標
}
cx=320;
cy=440;
benable=0;
tspeed=1;
Teki_Rest=MAX;
invasion = 0;
Dead = 0;
/*
0939名前は開発中のものです。
2006/03/26(日) 11:37:30ID:erP5z/InClsDrawScreen();
DrawFormatString( 280, 240, GetColor(255,255,255), "Stage : %d", Stage_Num);
ScreenFlip() ;
WaitTimer( 1000 ) ;
return;
}
//プレイ初期化
void Play_Initialize()
{
Stage_Num=0;
Score=0;
Stage_Initialize();
return;
}
/*
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>>933の文頭と文末に*/と/*をつけるのを忘れてたのでその追加だけお願いします
それでコンパイル通ります
外部サイトでも平気な人は>>929に同等のソースがあります
特に理由がなければこちらをどうぞ
0942名前は開発中のものです。
2006/03/26(日) 13:06:08ID:5N7smiYS0943名前は開発中のものです。
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/g0948名前は開発中のものです。
2006/03/27(月) 15:39:02ID:TSDimYuGトリップつければNGワードで一網打尽
0949 ◆src/N3iz.2
2006/03/27(月) 15:39:54ID:TSDimYuG0950 ◆src/N3iz.2
2006/03/27(月) 15:40:39ID:TSDimYuGトリップ置いておくのでみなさん使ってください
0951名前は開発中のものです。
2006/03/27(月) 15:45:46ID:TSDimYuG俺は配列変数使ってます
一緒にがんばりましょーヾ(*´∀`*)ノキャッキャッ
0952名前は開発中のものです。
2006/03/27(月) 15:46:49ID:TSDimYuG0953名前は開発中のものです。
2006/03/28(火) 15:39:57ID:vBoe6Dt90954名前は開発中のものです。
2006/03/28(火) 17:21:43ID:ZIZJuDYi0955名前は開発中のものです。
2006/03/28(火) 17:41:17ID:9EyZXfZzDirectXを用いて2Dシューティングを作ろうと思っていたのですが、
まず、C++を学ぶものだと思っていたら
本屋へ行ってDirectXの本を読んだらVISUALC++を用いていたりVISUALC++.NETを使っていたりしていたのですが
まず、結局何を学べばよいのでしょうか?
あと、出来たらその後の簡単なするべき事の工程を教えてくださるとありがたいのですが
0956名前は開発中のものです。
2006/03/28(火) 20:34:42ID:df2C19ZD>ズブ
C++もVC++も、ほぼC言語の上位互換だから、
C言語がわかればおk。ポインタを把握すれば完璧。
痒いところの手が届かないとか、簡潔な記述がしたくなったら、
C++の本を見てレパートリーを増やせばいい。
無理して色々な機能を使ったって糞コード量産するだけ。
>工程
DirectXの本のサンプルプログラムを弄って遊ぶのがいいんじゃないだろうか。
とりあえず動くものがあったほうがやる気が湧きやすいし、維持しやすい。
拡張に行き詰まりを感じたら、新規に零からコツコツ書いていって、
DirectXを研究しながら、然るべきタイミングで然るべき処理をするようにする。
0957名前は開発中のものです。
2006/03/28(火) 23:02:45ID:5LhBke5OCやC++は言語。VisualC++なんかはIDE。
いくらCやC++の文法や規則を覚えて頭の中でコードがかけても
それをexeファイルとかにできんと何の意味もないだろ。
そのコードの作成を補助したり
実際に実行できるexeファイルにしたりするのが、
コンパイラだったりエディタだったりIDEだったり。
この辺のツールの厳密な意味はググってくれ。
0958名前は開発中のものです。
2006/03/29(水) 10:15:41ID:0n+YEyJrbuffer 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昔の2種なら高校時代とったが言わせてもらえば
何の役にもたたん。しいて言うなら自己満足か。
そんな勉強より実践で使えるアルゴリズム類を勉強しとけ。
0960 ◆src/N3iz.2
2006/03/29(水) 14:42:56ID:0n+YEyJrscreen 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+YEyJrrad=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スではじまるコテハンなんていたっけ?
0966名前は開発中のものです。
2006/03/29(水) 18:18:29ID:0n+YEyJrscreen 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+YEyJrrepeat
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+YEyJrbx.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+YEyJr0972名前は開発中のものです。
2006/03/29(水) 20:29:13ID:qXE6Wdy20973名前は開発中のものです。
2006/03/29(水) 21:43:24ID:0n+YEyJr狙い撃ち弾のやり方わかる奴いねーの?
0974名前は開発中のものです。
2006/03/29(水) 21:52:28ID:ENDbob5I0975名前は開発中のものです。
2006/03/29(水) 21:56:20ID:0n+YEyJr今は反省してます
トークも弾も狙いがことごとくはずれるorz
0976名前は開発中のものです。
2006/03/29(水) 22:01:39ID:0n+YEyJrIDがEND
0977名前は開発中のものです。
2006/03/29(水) 22:01:49ID:ffJjCuui0978名前は開発中のものです。
2006/03/29(水) 22:06:03ID:Homs13rz型はfloatがいいな。
0979名前は開発中のものです。
2006/03/29(水) 22:07:01ID:JtrDjhKk0980名前は開発中のものです。
2006/03/29(水) 22:43:32ID:0n+YEyJrなんとなくわかってきました
角度じゃなくてxとyの移動量で計算するんですね
floatってHSPだとどうなるんだろう……
0981名前は開発中のものです。
2006/03/29(水) 22:45:28ID:Homs13rz俺も素人。
0982名前は開発中のものです。
2006/03/29(水) 22:49:05ID:0n+YEyJrbuffer 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+YEyJrgsel 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+YEyJrbx.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だが、まず自分で検索することを覚えねば未来は無い。
…だから長いソース貼るなって言われてんだろ!!!!!
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:J45kuvXnfloatは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+LSunC++を学ぶ
WinAPIとDirectXの存在を知る
サンプルプログラムをいじる
スケルトンプログラムを利用してちょっとしたゲームを作る←今ココ
・・・
・・・
0から自分で作る
0990名前は開発中のものです。
2006/03/31(金) 15:16:39ID:+8lDizLk作り方を覚えたら、自分でつくる部分を多くしていく、と。
レス数が950を超えています。1000を超えると書き込みができなくなります。