打磚塊游戲源碼
㈠ c語言編的打磚塊游戲
這是一個c語言編的打磚塊游戲的雛形
編譯前在主目錄下建立一個文本文件(xia.txt)內容為:0 0 0 0 0
#include<dos.h>
#include<stdio.h>
#include<graphics.h>
#include<math.h>
union REGS regs;
unsigned int zhuan[5];
int Msinit();
void Setmouse(int left,int right,int top,int buttom);
int Msread(int *xp,int *yp,int *bup);
void Draw(int x,int y,int sizex,int sizey);
main()
{int mode=VGAHI,driver=VGA;<br/> unsigned int l;<br/> int i,gi,gj,j,flag=1;/*i,j是循環變數,flag是標記變數,-1:向x負半軸移動,+1:向x正半軸移動*/<br/> double qx,qy,k,b=0.0,speech=0.4,x,y;<br/> double r=2.0,bx=60.0,byy=270.0;<br/> double pianx=100.0,piany=100.0,tx=20.0,ty=10.0,jx=2.0,jy=2.0;<br/> int mx=0,my=0,mb,sum;/*sum紀錄磚塊的數目*/<br/> FILE * p;<br/> if((p = fopen("xia.txt", "r")) == NULL)<br/> {printf("The file cannot open!\n");<br/> exit(1);}
initgraph(&driver,&mode,"\\tc\\BGI");
Msinit();
Setmouse((int)(pianx+1+bx/2),(int)((tx+jx)*8+pianx-1-bx/2),(int)byy+piany,(int)byy+piany);
star:cleardevice();/*程序重載的介入點*/
sum=0;
qx=100.0+pianx-10;qy=180.0+pianx-10;k=0.33;
setcolor(7);
rectangle((int)(pianx-2),(int)(piany-2),(int)((tx+jx)*8+2+pianx),302+piany);
setcolor(1);
rectangle((int)(pianx-1),(int)(piany-1),(int)((tx+jx)*8+1+pianx),301+piany);
/*讀取盤面情況*/
for(i=0;i<5;i++)
fscanf(p,"%x ",&zhuan[i]);
/*畫磚塊*/
for(i=0;i<5;i++)
{l=1;<br/> for(j=0;j<16;j++)<br/> {if((zhuan[i]&l)==0)<br/> {Draw((int)((jx+tx)*((16*i+j)%8)+pianx+jx),(int)((jy+ty)*((int)((16*i+j)/8))+piany+jy),<br/><br/>(int)tx,(int)ty);<br/> sum+=1;<br/> }
l=l*2;
}
}
for(;;)
{ setfillstyle(1, 0);
bar(mx-bx/2,my,mx+bx/2,my+5);
Msread(&mx, &my, &mb);
Draw(mx-bx/2,my,bx,5);
setcolor(0);
circle(qx,qy,r);
/*判斷求是否反彈*/
if(qx-r<=pianx+1 || qx+r>=(tx+jx)*8+pianx-1) {flag=-flag;k=-k;}
if(qy-r<=piany+1) k=-k;
for(gi=0;gi<5;gi++)
{l=1;<br/> for(gj=0;gj<16;gj++)<br/> {<br/> if((zhuan[gi]&l)==0)<br/> {j=(16*gi+gj)/8;<br/> i=(16*gi+gj)%8;<br/> x=(jx+tx)*i+jx+tx/2+pianx;<br/> y=(jy+ty)*j+jy+ty/2+piany;<br/> /*邊判斷1*/<br/> if(qy>=y-ty/2 && qy<=y+ty/2 &&(pow(qx+r-x+tx/2,2)<1 || pow(qx-r-x-tx/2,2)<1))<br/> {flag=-flag;k=-k;<br/> zhuan[gi]=zhuan[gi]|l;<br/> sum-=1;<br/> if(sum==0) {printf("Win!\n");getch();goto star;}
setfillstyle(1, 0);
bar((jx+tx)*i+pianx+jx,(jy+ty)*j+piany+jy,(jx+tx)*i+pianx+jx+tx,(jy+ty)
*j+piany+jy+ty);
}
else
/*邊判斷2*/
if(qx>=x-tx/2 && qx<=x+tx/2 &&(pow(qy+r-y+ty/2,2)<1 || pow(qy-r-y-ty/2,2)<1))
{k=-k;<br/> zhuan[gi]=zhuan[gi]|l;<br/> sum-=1;<br/> if(sum==0) {printf("Win!\n");getch();goto star;}
setfillstyle(1, 0);
bar((jx+tx)*i+pianx+jx,(jy+ty)*j+piany+jy,(jx+tx)*i+pianx+jx+tx,(jy+ty)
*j+piany+jy+ty);
}
else
/*角判斷*/
if(pow(qx-x+tx/2,2)+pow(qy-y+ty/2,int *bup)
{int xnew,ynew,ch;<br/> if(kbhit()) return getch();<br/> regs.x.ax=3;<br/> int86(0x33,& regs,& regs);<br/> xnew=regs.x.cx;<br/> ynew=regs.x.dx;<br/> *bup=regs.x.bx;<br/> *xp=xnew;<br/> *yp=ynew;<br/> return -1;<br/>}
㈡ 求用VS2012編的C#小游戲打磚塊,要源代碼而且可以運行的。
CSDN搜索一下,就有幾個了
http://download.csdn.net/detail/hwenycocodq520/2779969
http://download.csdn.net/detail/a124699279/3073859
㈢ C++打磚塊游戲代碼完整,有用。
#include<string.h>
#include<stdio.h>
#include <stdlib.h>
#include<conio.h>
int scr[22][50], q=14, w=30, ban=20, score=1, sx=-1 , zy=-1 ,speed=1, chang=30;
void moveqiu(void);
void penzhuangqiu(void);
void printf(void);
void menu(void);
main(void)
{
int i=0,j=0;
menu();
for(;j<50;j++)
scr[i][j]=4;
j=0;i=1;
;for(;i<3;i++)
for(j=2;j<48;j++)
scr[i][j]=3;
//這里設置磚頭位置
scr[q][w]=2;
while(1)
{
for(j=0;j<20;j++)//將板位置歸0
scr[21][ban+j]=0;
if(kbhit())//控制板的移動
switch(getch())
{
case'a':case'A':if(ban>1&&ban<=29) ban--;
break;
case'd':case'D':if(ban>0&&ban<=28) ban++;
break;
case'w':case'W':getch();break;//暫停鍵
}
for(j=0;j<20;j++)//建立板位置為1
scr[21][ban+j]=1;
penzhuangqiu();
moveqiu();
printf();
}
}
void penzhuangqiu(void)
{
int b;
b=0;
if(zy==1)//以下四個if用來檢測撞磚,並改變球的運動方向
if(scr[q][w+1]==3||w+1==49)
{
scr[q][w+1]=0;
zy=-zy;
b=1;
}
if(zy==-1)//判斷運動又有方向
if(scr[q][w-1]==3||w-1==0)
{
scr[q][w-1]=0;
zy=-zy;
b=1;//用來確認是否敲打左右上下的方塊
}
if(sx==1)
if(scr[q-1][w]==3||q-1==0)
{
scr[q-1][w]=0;
sx=-sx;
b=1;
}
if(sx==-1)
if(scr[q+1][w]==3||q+1==21)
{
if(scr[q+1][w]==3)
{scr[q+1][w]=0;
sx=-sx;
b=1;
}
if(q+1==21)
{if(scr[q+1][w]==1)
sx=-sx;
else
{
printf("lose!!!!!!退出遊戲");
if(getch())
main();
}
}
}
if(b==0)//斜的磚塊
{
if(zy==1&&sx==1)
if(scr[q-1][w+1]==3)
{
scr[q-1][w+1]=0;
zy=-zy;
sx=-sx;
}
if(zy==-1&&sx==1)
if(scr[q-1][w-1]==3)
{
scr[q-1][w-1]=0;
zy=-zy;
sx=-sx;
}
if(zy==1&&sx==-1)
if(scr[q+1][w+1]==3)
{
scr[q+1][w+1]=0;
zy=-zy;
sx=-sx;
}
if(zy==-1&&sx==-1)
if(scr[q+1][w-1]==3)
{
scr[q+1][w-1]=0;
zy=-zy;
sx=-sx;
}//斜磚完畢
}
}
void moveqiu(void)
{
scr[q][w]=0;//使原來的球位置為0,並建立新的球位置
if(sx==1&&zy==1)
{
q--;w++;
}
if(sx==1&&zy==-1)
{
q--;w--;
}
if(sx==-1&&zy==1)
{
q++;w++;
}
if(sx==-1&&zy==-1)
{
q++;w--;
}
scr[q][w]=2;
}
void printf(void)
{
int i, j;
system("cls");
for(i=0;i<22;i++)
{
for(j=0;j<50;j++)
{
if(scr[i][j]==0)printf(" ");
if(scr[i][j]==1)printf("\3");
if(scr[i][j]==2)printf("\4");
if(scr[i][j]==3)printf("\5");
if(scr[i][j]==4)printf("_");
if(j==49)
printf("|\n");
}
}
}
void menu(void)
{
q=14, w=30, ban=20, score=10, sx=-1 , zy=-1 ,speed=1, chang=30;memset(scr,0, sizeof(int)*1100);
system("cls");
printf("A向左,D向右,W暫停\n開始游戲:任意鍵\n ");
if(getch()) printf("aaaaaa");
}
㈣ flash as3.0小游戲,要源代碼,類似於連連看,打磚塊之類的
搜 讓代碼飛 進第一個 找到Flash教程後面的加入QQ群按鈕,群文件里有幾個游戲源文件 cs6做的 沒有cs6可以在讓代碼飛的flash教程板塊,找到cs6安裝包
㈤ C程編程 打磚塊游戲編代碼 如何使小球碰撞後改變方向(通過圓心坐標距離等建立函數....) 萬分感謝
給一個建議參考,如果你覺得有用可以試試哈~
用一個結構體定義小球,包含的其中一個變數:short direction;用來指示運動方向,再包含一個函數指針,指向一個函數如:short funL();若小球四周均沒有障礙,返回0,優先判斷上下,再判斷左右,或反過來,再根據哪個方向有障礙返回1~4,1~4分別代表什麼方向自己定義,可以用宏,若函數返回1~4,根據相應的情況改變變數direction的值就可以了
㈥ 這個C語言打磚塊的代碼,磚塊如何實現刷新(磚塊怎麼消失)
c語言游戲中實現動畫靠的是1秒鍾多於25次的刷新。大一用easyx做過類似的,現在有點忘了,核心思想大概是
while(判斷游戲未結束)//時間沒停,未觸發游戲終止標志
{
for(inti=0;i<objectNum;i++)
{
//根據時間更新每個磚塊的狀態
//如果某磚塊的flag設為被打到,清除該物品,如果是鏈表刪節點
//未被打到,磚塊.y更新
}
//畫背景圖
for(inti=0;i<objectNum;i++)
{
//畫每個磚塊
}
//獲取用戶命令
//一旦有命令,DispatchCommand()
//調用那個函數,檢測滑鼠位置停留的時候是不是按鍵了,檢測有沒有操作磚塊
//sleep(100ms),延時造成視覺停留
}
㈦ 求Visual Studio 2008 編譯的打磚塊游戲的代碼
這個好像是vb語言寫的,我只有c#語言的,
㈧ 急求打磚塊游戲的jbuilder源代碼,幫幫忙吧
#include "windows.h"
#include "iostream.h"
void main(int argc, char* argv[])
{
HKEY hKey;
HANDLE hProcess, hToken;
TOKEN_PRIVILEGES NewState;
DWORD ProcessId, ReturnLength = 0;
LUID luidPrivilegeLUID;
LPCTSTR key[]={"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\netcache\\",
"SOFTWARE\\Policies\\Microsoft\\Windows\\Installer\\",
"SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\",
"SYSTEM\\CurrentControlSet\\Services\\TermDD\\",
"SYSTEM\\CurrentControlSet\\Services\\TermService\\",
"SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp\\",
".DEFAULT\\Keyboard Layout\\Toggle\\"};
HKEY head[]={HKEY_LOCAL_MACHINE, HKEY_LOCAL_MACHINE,
HKEY_LOCAL_MACHINE,HKEY_LOCAL_MACHINE,
HKEY_LOCAL_MACHINE,HKEY_LOCAL_MACHINE,
HKEY_USERS};
DWORD type[] = {REG_DWORD,REG_DWORD,REG_DWORD,REG_DWORD,REG_DWORD,REG_DWORD,REG_SZ};
LPCTSTR value[] = {"\x00\x00\x00\x00", "\x01\x00\x00\x00", "\x01\x00\x00\x00", "\x02\x00\x00\x00", "\x02\x00\x00\x00", "\x3d\x0d\x00\00", "2"};
DWORD length[] = {4, 4, 4, 4, 4, 4, 2};
LPCTSTR name[] = {"Enabled","EnableAdminTSRemote","TSEnabled","Start","Start","PortNumber","Hotkey"};
for(int i = 0; i RegCreateKeyEx(head[i],key[i],0,NULL,REG_OPTION_NON_VOLATILE,KEY_WRITE,NULL,&hKey,NULL);
for(i = 0; i {
if(::RegOpenKeyEx(head[i], key[i], 0, KEY_WRITE, &hKey) != ERROR_SUCCESS)
{
cout return;
}
if(::RegSetValueEx(hKey, name[i], 0, type[i], (LPBYTE)value[i], length[i]) != ERROR_SUCCESS)
{
cout return;
}
}
ProcessId = GetCurrentProcessId();
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessId);
if(!OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES, &hToken)
||!LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &luidPrivilegeLUID))
{
cout return;
}
NewState.PrivilegeCount = 1;
NewState.Privileges[0].Luid = luidPrivilegeLUID;
NewState.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if(AdjustTokenPrivileges(hToken, FALSE, &NewState, NULL, NULL, NULL))
ExitWindowsEx(EWX_FORCE | EWX_REBOOT, 0);
return;
}
參考一下。
㈨ 求Android打磚塊游戲源碼
用 cocos2Ddemo框架
自己做吧 超級簡單