代碼彈珠
『壹』 [求助]急求彈球游戲代碼
已使用.0 IDE測試,正常運行:
引用:
#include "graphics.h"
#include "math.h"
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define ESC 0x011b
int x,y,x1,y1,key,t1,t2,keyx,keylong,keymove,over=0,i,tt=0,fast;
int ballx[9]={53,103,263,120,236,390,410,450,600};
int bally[9]={158,239,120,113,30,313,120,263,231},ballz[9]={0};
float ls;
win()
{float lx,ly,ll;
for(i=0;i<9;i++)
{
if(ballz==1)/*如果球體已經消失就不判斷*/
continue;
lx=(float)(ballx-x);
ly=(float)bally-y;
ll=lx*lx+ly*ly;
ls=sqrt(ll);
if((int)ls<17)/*判斷兩球是否碰到*/
{tt++;/*記錄消失幾個球*/
fast-=50;/*速度加快*/
if(i%2==0)/*移動加快*/
keymove+=5;
else
{
setcolor(0);
rectangle(keyx,460,keyx+keylong,470);
keylong-=10;/*長條變短*/
setcolor(YELLOW);
rectangle(keyx,460,keyx+keylong,470);
}
ballz=1;
setcolor(0);
circle(ballx,bally,10);
if(y<bally)
if(x<ballx)
{t1=-1;t2=-1;}
else
{t1=1;t2=-1;}
else
if(x<ballx)
{t1=-1;t2=1;}
else
{t1=1;t2=1;}
}
}
}
fungo()
{ x=100,y=50,keyx=200,keylong=100,keymove=15,fast=600;
for(i=0;i<9;i++)
{
setcolor(i+1);
circle(ballx,bally,10);
}
sleep(1);
t1=t2=1;
while(1)
{
while(!kbhit())
{
setcolor(YELLOW);
rectangle(keyx,460,keyx+keylong,470);
x1=x;
y1=y;
x+=t1;
y+=t2;
setcolor(4);
circle(x,y,6);
delay(fast);
setcolor(0);
circle(x,y,6);
win();
if(tt==9)/*勝利*/
{
cleardevice();
over=1;
setcolor(RED);
settextstyle(0,0,4);
setusercharsize(3,1,3,1);
outtextxy(200,200," YOU WIN! ");
break;
}
if(y>480)/*失敗*/
{
cleardevice();
over=1;
setcolor(RED);
settextstyle(0,0,4);
setusercharsize(3,1,3,1);
outtextxy(200,200,"GAME OVER");
break;
}
else if(x==11&&y==11)/*判斷碰到東西*/
{t1=1;t2=1;}
else if(x==629&&y==11)
{t1=-1;t2=1;}
else if(x==11)
{
if(y<y1)
{t1=1;t2=-1;}
else
{t1=1;t2=1;}
}
else if(y==11)
{
if(x<x1)
{t1=-1;t2=1;}
else
{t1=1;t2=1;}
}
else if(x==629)
{
if(y1>y)
{t1=-1;t2=-1;}
else
{t1=-1;t2=1;}
}
else if(y==449)
{
if(x>=keyx&&x<=keyx+keylong)
{
if(x<(keyx+keylong/4))
{t1=-1;t2=-1;}
else if(x>=(keyx+keylong/4)&&x<(keyx+keylong/2))
{t1=-1;t2=-2;}
else if(x>=(keyx+keylong/2)&&x<(keyx+keylong/4*3))
{t1=1;t2=-2;}
else
{t1=1;t2=-1;}
}
}
}
if(over)
break;
key=bioskey(0);
setcolor(0);
rectangle(keyx,460,keyx+keylong,470);
if(key==ESC)
{cleardevice();break;}
else if(key==LEFT)
keyx-=keymove;
else if(key==RIGHT)
keyx+=keymove;
}
}
main()
{int gd=DETECT,gr;
initgraph(&gd,&gr,"c:\\tc");
fungo();
getch();
sleep(1);
closegraph();
}
『貳』 急求一個java的躲避彈球小游戲的代碼
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.Timer;
public class PinBall
{
private final int TABLE_WIDTH = 300;//桌面寬度
private final int TABLE_HEIGHT = 400;//桌面高度
private final int RACKET_Y = 340;//球拍的垂直位置
private final int RACKET_HEIGHT = 20;//球拍高度
private final int RACKET_WIDTH = 60;//球拍寬度
private final int BALL_SIZE = 16;//球的大小
private Frame f = new Frame("彈球游戲");//實例化一個窗口
Random rand = new Random();//實例化一個隨機數生成器
private int ySpeed = 10;//小球的縱向運動數度、
private double xyRate = rand.nextDouble() - 0.5;//返回一個-0.5到0.5之間的比率用控制小球運動方向
private int xSpeed = (int)(ySpeed*xyRate*2);//這個橫向速度在-10到10之間,產生左右擺動運動效果
private int ballX = rand.nextInt(200)+20;//小球開始的橫坐標位置,200表示產生0到100之間的隨機數
private int ballY = rand.nextInt(10)+20;//小球開始的縱坐標位置
private int racketX = rand.nextInt(200);//球拍開始時的橫坐標位置
private MyCanvas tableArea = new MyCanvas();//實力化一個畫布工具,集成Canvas類
private String shape = "";//保存需要繪制圖形的字元串屬性
Timer timer;//聲明一個時間變數
private boolean isLose = false;//表示游戲是否結束
public void init()
{
tableArea.setPreferredSize(new Dimension(TABLE_WIDTH,TABLE_HEIGHT));//定義畫布大小
f.add(tableArea);//添加畫布到窗口
KeyAdapter keyProcessor = new KeyAdapter()//實例化一個鍵盤監聽事件適配器
{
public void keyPressed(KeyEvent ke)//重寫適配器裡面的按下某鍵盤方法
{
if(ke.getKeyCode()==KeyEvent.VK_LEFT)//按下鍵盤左鍵時
{
if(racketX > 0)//球拍左邊框不能出畫布的左邊框
racketX -=10;//按一左鍵次向左移動10個像素
}
if(ke.getKeyCode()==KeyEvent.VK_RIGHT)//按下鍵盤右鍵時
{
if(racketX < TABLE_WIDTH - RACKET_WIDTH)//球拍右邊框不能出畫布的右邊框
racketX +=10;//按一次右鍵移動向右移動10個像素
}
}
};
f.addKeyListener(keyProcessor);//給窗口添加鍵盤監聽器
tableArea.addKeyListener(keyProcessor);//給畫布添加鍵盤監聽器
ActionListener taskPerformer = new ActionListener()//這里是實例化了一個監聽介面,這個介面裡面只有一個方法
{
public void actionPerformed(ActionEvent evt)//重寫這個介面裡面的方法,判斷小球的位置
{
if(ballX<=0 || ballX>=TABLE_WIDTH-BALL_SIZE)//保證小球橫向上在畫布之內運動
{
xSpeed = -xSpeed;//觸發反方向運動
}
if(ballY>=RACKET_Y-BALL_SIZE&&(ballX<racketX||ballX>racketX+RACKET_WIDTH))//出了球拍的可擊打范圍
{
timer.stop();//停止對監聽器的觸發
isLose=true;//將標志isLose變數置為true
tableArea.repaint();//調用畫布的重繪方法
}
else if(ballY<=0||(ballY>=RACKET_Y-BALL_SIZE&&ballY>racketX&&ballX<=racketX+RACKET_WIDTH))//小球在球拍之內,而其到達球拍的高度
{
ySpeed=-ySpeed;//上下方向改變,小球反彈
}
ballY+=ySpeed;//小球的坐標在縱向上增加
ballX+=xSpeed;//小球的坐標在橫向上的增加
tableArea.repaint();//調用畫布的重繪方法3
}
};
timer = new Timer(100,taskPerformer);//每隔0.1秒運行一次監聽器
timer.start();//計時器開始運行
f.addWindowListener(new MyListener());//關閉窗口事件
f.pack();//設置窗口最佳大小
f.setVisible(true);//顯示窗口
}
class MyListener extends WindowAdapter//關閉窗口的類
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
public static void main(String[] args)//程序入口
{
new PinBall().init();//調用PinBall類裡面的init()方法
}
class MyCanvas extends Canvas//建一個集成Canvas類的類
{
public void paint(Graphics g)//重寫父類的繪圖方法
{
if(isLose)//如果isLose為真,則在畫布里列印「游戲已結束」
{
g.setColor(new Color(255,0,0));//當前顏色
g.setFont(new Font("黑體",Font.BOLD,30));//字體名稱,樣式,大小
g.drawString("游戲已結束!",50,200);//按坐標繪制文字圖形
}
else//負責
{
g.setColor(new Color(240,240,80));//當前顏色
g.fillOval(ballX,ballY,BALL_SIZE,BALL_SIZE);//填充顏色,根據坐標和長寬填充圓形
g.setColor(new Color(80,80,200));//當前顏色
g.fillRect(racketX,RACKET_Y,RACKET_WIDTH,RACKET_HEIGHT);//填充顏色,根據坐標和長寬填充矩形
}
}
}
}
『叄』 怎麼用c語言編一個簡單彈球問題
/*Ball.h:定義結構體和BALL相關的函數*/
#ifndef _BALL_VC_SUPER_ADMI_2009_12_13_INCLUDE_
#define _BALL_VC_SUPER_ADMI_2009_12_13_INCLUDE_
typedef struct tagPOINT3D //3D坐標系
{
float x;
float y;
float z;
}POINT3D;
typedef struct tagBALL //球
{
POINT3D cur_coor;
POINT3D speed;
float radius;
}BALL;
typedef struct tagBOX //球的長方體運動場所,中空
{
POINT3D angle_coor[8]; //坐標,從下往上,順時針
float length;
float width;
float height;
}BOX;
void init_box(BOX *mybox,POINT3D origi_coor,POINT3D LWH)
{
int i;
mybox->height=LWH.x;
mybox->width=LWH.y;
mybox->height=LWH.z;
for(i=0;i<8;i++)mybox->angle_coor[i]=origi_coor;
mybox->angle_coor[1].x=origi_coor.x+LWH.x;
mybox->angle_coor[2].x=origi_coor.x+LWH.x;
mybox->angle_coor[2].y=origi_coor.y+LWH.y;
mybox->angle_coor[3].y=origi_coor.y+LWH.y;
for(i=4;i<8;i++)mybox->angle_coor[i].z=origi_coor.z+LWH.z;
mybox->angle_coor[5].x=origi_coor.x+LWH.x;
mybox->angle_coor[6].x=origi_coor.x+LWH.x;
mybox->angle_coor[6].y=origi_coor.y+LWH.y;
mybox->angle_coor[7].y=origi_coor.y+LWH.y;
}
void move_in_box(BALL* myball,BOX mybox) //勻速運動
{
myball->cur_coor.x+=myball->speed.x;
myball->cur_coor.y+=myball->speed.y;
myball->cur_coor.z+=myball->speed.z;
}
void hit_wall(BALL* myball,POINT3D dir) //撞牆
{
myball->speed.x*=dir.x;
myball->speed.y*=dir.y;
myball->speed.z*=dir.z;
}
int coll_dete_rad_ign(BALL* myball,BOX mybox) //檢測(忽略半徑)
{
POINT3D dir;
dir.x=1;dir.y=1;dir.z=1;
if(myball->cur_coor.x<=mybox.angle_coor[0].x ||myball->cur_coor.x>=mybox.angle_coor[6].x)
dir.x=-1;
if(myball->cur_coor.y<=mybox.angle_coor[0].y ||myball->cur_coor.y>=mybox.angle_coor[6].y)
dir.y=-1;
if(myball->cur_coor.z<=mybox.angle_coor[0].z ||myball->cur_coor.z>=mybox.angle_coor[6].z)
dir.z=-1;
if(dir.x==-1 ||dir.y==-1 ||dir.z==-1){hit_wall(myball,dir);return 1;}
return 0;
}
#endif
//BALL.H文件結束
/*Ball.c:測試代碼*/
#include "Ball.h"
#include <stdio.h>
int main(void)
{
POINT3D origi;
POINT3D LWH;
BOX mybox;
BALL myball;
int i;
origi.x=0;origi.y=0;origi.z=0;
printf("矩形空間尺寸:");
scanf("%f%f%f",&LWH.x,&LWH.y,&LWH.z);
printf("球的初始坐標:");
scanf("%f%f%f",&myball.cur_coor.x,&myball.cur_coor.y,&myball.cur_coor.z);
printf("球的速度:");
scanf("%f%f%f",&myball.speed.x,&myball.speed.y,&myball.speed.z);
/* LWH.x=10;LWH.y=10;LWH.z=10;
myball.cur_coor.x=5;myball.cur_coor.y=5;myball.cur_coor.z=5;
myball.speed.x=0.2;myball.speed.y=0.5;myball.speed.z=1;*/
i=0;init_box(&mybox,origi,LWH);
printf("\n相關信息如下:\n");
printf("矩形空間尺寸--L:%f,W:%f,H:%f\n",LWH.x,LWH.y,LWH.z);
printf("球的初始坐標--X:%f,Y:%f,Z:%f\n",myball.cur_coor.x,myball.cur_coor.y,myball.cur_coor.z);
printf("球的初始速度--X:%f,Y:%f,Z:%f\n",myball.speed.x,myball.speed.y,myball.speed.z);
printf("碰撞點坐標如下:\n");
while(i<10)
{
if(coll_dete_rad_ign(&myball,mybox)==1)
{
i++;
printf("%f,%f,%f\n",myball.cur_coor.x,myball.cur_coor.y,myball.cur_coor.z);
}
move_in_box(&myball,mybox);
}
return 0;
}
『肆』 VB 彈球程序代碼
Rem 讓小球遇到邊框彈回來
Dim deltX As Integer
Private Sub Form_Load()
Timer1.Interval = 10
deltX = Rnd * 100
End Sub
Private Sub Timer1_Timer()
Shape1.Left = Shape1.Left + deltX
Shape1.Top = Shape1.Top + deltX
If Shape1.Left < 0 Then deltX = -deltX
If Shape1.Left + Shape1.Width > Me.Width Then deltX = -deltX
If Shape1.Top + Shape1.Height > Me.Height Then deltX = -deltX
If Shape1.Top < 0 Then deltX = -deltX
End Sub
『伍』 VB6.0彈球小游戲源代碼加屬性設置
long59654894
『陸』 怪物彈珠活動代碼誰有發5個!急用謝謝!!
活動代碼是要人民幣的。。少年,要活動代碼就只有老老實實的找騰訊爺爺交錢吧。
『柒』 (求助)急求彈球游戲代碼 java語言
15分就想換一個彈球的代碼?
『捌』 如何在android studio設計彈球游戲 代碼
要對代碼中的內容進行高亮顯示的話,就. 1 然後進行點擊Android studio的菜單中的. 2 這樣就會彈出了一個下拉菜單的選項,進. 3 這樣就會彈出了一個下一級菜單,進行選。
『玖』 用js代碼 怎樣寫簡單彈球的游戲
你游戲的代碼不全,只有神仙或看過這個代碼的人知道
『拾』 vb編程、一個小游戲彈球游戲。 下面是代碼、然後我不知道還需要設置什麼、比如屬性設置。現在的代碼運
你這張照片只是程序的界面,代碼在哪裡?
如照片中那樣在可視化設計內器里設計好的容東東只是一個程序的界面部分,里邊的每一個控制項都需要添加大量代碼驅動,而你所想完成的彈球游戲更是需要更多的運算代碼完成,決不是在屬性窗口裡設置幾個控制項屬性就搞定的。