第10講 テトリス開発(完成まで)
第4話 ゲームスコアをカウントして表示
実現するコード例(変更分だけ記載、ただし添付ファイルは全文記載)
#include "DxLib.h"
・
void kesu(); //そろった正方形を消す社員
int tokuten; //ゲームスコアをカウントする変数
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
・
}
void syokika(){ //ゲームの最初の設定を行う
srand((unsigned) time(NULL)); //乱数の系列決定するシード値を現在時刻から取得
hajimenojikoku=GetNowCount(); //ゲーム起動時の時刻をゲット
int i,j;
for(i=0;i<12;i++){
for(j=0;j<27;j++){
chizumodosu[i][j]=1;
}
}
tokuten=0;
}
void kesu(){
char h=1,i,j,ik=25;
for(i=25;i>21;i--){
for(j=1;j<11;j++){
if(chizumodosu[j][i]==1){ //地図配置を元に戻す 1:可 0:不可
ik=i;
h=0;
break;
}
}
if(h==0){
break;
}
}
if(ik<25){
for(i=ik;i>0;i--){
for(j=1;j<11;j++){
if(chizumodosu[j][i]==0){
chizu[j][i+(25-ik)]=chizu[j][i];
}
chizumodosu[j][i+(25-ik)]=chizumodosu[j][i];
}
}
tokuten+=(25-ik)*100;
}
}
・
void gamemain(){ //ゲーム画面
chizusakusei(); //地図作成(壁建設)
if(t==0){
s=rand()%4; //sはブロックの種類 0:長方形 1:正方形 2:L字 3:N字
k=rand()%4; //kは回転状態 0:元の状態 1:90°回転 2:180°回転 3:270°回転
if(s==0){
if(k==0)x=1+rand()%8;
if(k==1)x=1+rand()%10;
if(k==2)x=2+rand()%8;
if(k==3)x=1+rand()%10;
}
if(s==1){
if(k==0)x=1+rand()%9;
if(k==1)x=1+rand()%9;
if(k==2)x=2+rand()%9;
if(k==3)x=2+rand()%9;
}
if(s==2){
if(k==0)x=1+rand()%9;
if(k==1)x=1+rand()%8;
if(k==2)x=2+rand()%9;
if(k==3)x=3+rand()%8;
}
if(s==3){
if(k==0)x=1+rand()%9;
if(k==1)x=2+rand()%8;
if(k==2)x=2+rand()%9;
if(k==3)x=2+rand()%8;
}
t=1;
}
block(); //ブロックを描く
SetFontSize(28); //フォントサイズを32に変更
DrawFormatString(240, 300, siro, "ゲームスコア:"); // 文字を描画する
DrawFormatString(300, 350, siro, "%d",tokuten); // 文字を描画する
}
DrawFormatString(300, 350, siro, "%d",tokuten); // 文字を描画する
コピペ用添付ファイル
次はゲームクリア設定をして下さい。
今回は、簡単に2000点以上と得点したらゲームクリアとします。
第3話へ 第5話へ
初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
ecliqse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
ecliqse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ