テトリスを作る (774レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
531(10): 名前は開発中のものです。 [sage] 2005/12/22(木) 10:21:46 ID:gp4MJFmZ(1) AAS
HSPでテトリス作りたいんですけど、何から手をつけて良いかがわかりません。
2次元配列を使うのですか?
532(1): 名前は開発中のものです。 [sage] 2005/12/22(木) 20:37:29 ID:rrOTwdfx(1) AAS
>>531
まずはこのスレを頭から読み直せ
話はそれからだ。
何がわからないか書いてみな、
今漏れも久しぶりにHSPさわってるから。
533: 531 [sage] 2005/12/26(月) 15:02:04 ID:TOAf+nRF(1/5) AAS
532さん、レスありがとうございます。
とりあえず、見づらいですが途中までのソース載せときます。
buffer 1,,,1
picload "tetris.bmp" ;32×32の灰色のブロックと黄色いブロック
screen 0,415,607,1
palcopy 1
*START
gmode 2
gosub *SETMAP
534: 531 [sage] 2005/12/26(月) 15:04:40 ID:TOAf+nRF(2/5) AAS
*LOOP1
redraw 0
gosub *ブロック
gosub *DRAWMAP
redraw 1
await 60
goto *LOOP1
*ブロック
BY+3
stick KY,8
if KY=1 :BX=BX-32
if KY=4 :BX=BX+32
if KY=8 :BY=BY+16
return
535: 531 [sage] 2005/12/26(月) 15:08:09 ID:TOAf+nRF(3/5) AAS
*DRAWMAP
color 0,0,0 :boxf 0,0,414,606
repeat 19
RCNT=cnt
repeat 19
if MAP.cnt.RCNT=1 {
pos cnt*32,RCNT*32 :gcopy 1,0,0,32,32 ;壁用灰色ブロック
}
loop
loop
pos BX,BY :gcopy 1,32,0,32,32 ;落下用黄色ブロック
return
536: 531 [sage] 2005/12/26(月) 15:14:43 ID:TOAf+nRF(4/5) AAS
*SETMAP
dim MAP,19,19
MAP.0.0=1,0,0,0,0,0,2,0,0,0,0,0,1
MAP.0.1=1,0,0,0,0,0,0,0,0,0,0,0,1
∫
MAP.0.17=1,0,0,0,0,0,0,0,0,0,0,0,1
MAP.0.18=1,1,1,1,1,1,1,1,1,1,1,1,1
repeat 19
RCNT=cnt
repeat 19
if MAP.cnt.RCNT=2 {
BX=cnt*32 :BY=RCNT+32
MAP.cnt.RCNT=0
}
loop
loop
return
537: 531 [sage] 2005/12/26(月) 15:19:58 ID:TOAf+nRF(5/5) AAS
これで以上です。
まずは黄色いブロックが、底辺まできたら蓄積されるようにしたいのですがどうしたら良いでしょうか?
ちなみに、1が壁用ブロック、2が落下用ブロックです。
(本当は12×19マスの配列にしたいのですが、良くわからず19×19の配列になってます)
538(1): 531 [sage] 2005/12/28(水) 08:35:46 ID:ex+d93O5(1) AAS
レスがありませんね。
いや、随分と素っ頓狂なプログラムを書いてしまいました。
アドバイスのしようがありませんものね。
どうぞ、僕のことはスルーして次の話題に行ってください。
540: 531 [sage] 2005/12/28(水) 21:00:04 ID:az8NFlCH(1) AAS
レスありがとうございます。
リンク先見ました。
スプライトとプレイフィールドの意味がわからないですが、
とりあえずペイントソフトで七種のブロックをつくってみます。
541: 531 [sage] 2005/12/29(木) 15:38:50 ID:w8wWzACB(1/2) AAS
リンク先にあった〜コウのポケット〜をみて、HSP風に変えてみました。
dim A.12.21
A.0.0=9,0,0,0,0,0,0,0,0,0,0,9
A.0.1=9,0,0,0,0,0,0,0,0,0,0,9
( 省 略 )
A.0.19=9,0,0,0,0,0,0,0,0,0,0,9
A.0.20=9,9,9,9,9,9,9,9,9,9,9,9
repeat 21
rcnt=cnt
repeat 12
pos cnt*15,rcnt*15
if A.cnt.rcnt=9 { mes "口" }
loop
loop
stop
542: 531 [sage] 2005/12/29(木) 15:42:57 ID:w8wWzACB(2/2) AAS
ここまでが僕の限界です。
ブロックは別に配列を作るそうですが、どうしたら良いのかまったくわかりません。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.019s