自作TETRISソース公開

アバター
Ultimate
記事: 38
登録日時: 15年前
住所: 埼玉県
連絡を取る:

自作TETRISソース公開

投稿記事 by Ultimate » 14年前

この前も載せましたが、コード機能を知らなかったため見にくくなってしまっていますのでもう一度掲載します。
前も書きましたが、回転の計算が面倒だったのですべて二次元配列にしたりなどだいぶ手抜きだったりしますが、そこら辺は気にしないでください。
完全自作のテトリスのソースです。

CODE:

#include "DxLib.h"
#define B1A0 0
#define B1A90 1
#define B1A180 2
#define B1A270 3
#define B2A0 4
#define B2A90 5
#define B2A180 6
#define B2A270 7
#define B3A0 8
#define B3A90 9
#define B3A180 10
#define B3A270 11
#define B4A0 12
#define B4A90 13
#define B5A0 14
#define B5A90 15
#define B6A0 16
#define B6A90 17
#define B7A0 18
#define GameOver 19
#define Easy 20

int GetHitKeyStateAll_2(int KeyStateBuf[]){
        char GetHitKeyStateAll_Key[256];
        GetHitKeyStateAll( GetHitKeyStateAll_Key );
        for(int i=0;i=5&&Key[KEY_INPUT_RIGHT]%5==0))){
            for(i=0;i=5&&Key[KEY_INPUT_LEFT]%5==0))){
            for(i=0;i1&&Key[KEY_INPUT_DOWN]%5==0)))){
            for(i=0;i0;k--){
                        if(field[k][j]==1){
                            field[k][j]=0;
                            field[k+1][j]=1;
                        }
                    }
                }
                SCORE+=200;
                LINE++;
            }
            judge=0;
        }
        DrawLine(20,15,214,15,BLUE);
        
        
        //判定
        for(i=0;i=0&&SCORE=500&&SCORE=1000&&SCORE=2000&&SCORE=3000&&SCORE=5000&&SCORE=10000&&SCORE=12000&&SCORE=14000&&SCORE=18000&&SCORE<20000){
            LEVEL=10;
            SPEED=6;
        }
        }
        ////////////////////////////////////////////////////////////////
        if(GameFlag==GameOver){
        SetBackgroundColor(0,0,0);
        SetFontSize(20);
        if(OldScore<SCORE){
            HighScore=fopen("data\\HighScore.dat","w+");
            fprintf(HighScore,"%d",SCORE);
            DrawFormatString(80,120,BLUE,"ハイスコア %d",SCORE);
        }
        fclose(HighScore);
        SetFontSize(50);
        DrawString(80,50,"GAME OVER",BLUE);
        SetFontSize(20);
        DrawString(80,170,"Xキーでリプレイ",BLUE);
        if(Key[KEY_INPUT_X]==1){
            for(i=0;i<20;i++){
                for(j=1;j<=13;j++){
                    field[i][j]=0;
                }
            }
            SCORE=0;
            LEVEL=1;
            LINE=0;
            GameFlag=Easy;
                  
        }
        
        
        
        
        
        ///////////////////////////////////////////////////////////////    
        }
        ScreenFlip();
        
    }
	DxLib_End();
    return 0;
}
ファイルは、
メインファイルーTETRIS.exe
          dataーHighScore.dat
imagesーblock.png
                wall.png
というようにしてください。
imagesフォルダを作りその中に2つの画像を入れ、あとはdataフォルダを作ってください。
HighScore.datは自動で作成されるので作っておく必要はありません。
画像についてはファイル添付しておきます。

配布はここでしています。
添付ファイル
wall.png
wall.png
wall.png (387 バイト) 閲覧数: 91 回
block.png
block.png
block.png (468 バイト) 閲覧数: 98 回
最後に編集したユーザー Ultimate on 2010年11月30日(火) 17:14 [ 編集 1 回目 ]

コメントはまだありません。