重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
import java.awt.Canvas;
十载的尼开远网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整尼开远建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“尼开远网站设计”,“尼开远网站推广”以来,每个客户项目都认真落实执行。
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Timer;
import javax.swing.JFrame;
public class dazhuankuai implements KeyListener
{
private JFrame jframe;
Canvas canvas;
board b;
int x;
int scoret;
int diffscore;
private int canvaswidth = 400;//canvas 的属性
private int canvasheight =600;
dazhuankuai(){
jframe = new JFrame("打砖块");
canvas = new Canvas();
canvas.setSize(canvaswidth, canvasheight);
canvas.addKeyListener(this);
jframe.add(canvas);
jframe.setBounds(320, 100,410, 500);
jframe.addKeyListener(this);
jframe.setVisible(true);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
begin();
}
public void begin()
{ b=new board(this);
b.run();
b.ball.vx=5;
b.ball.vy=10;
}
void paint()
{Graphics g = canvas.getGraphics();
g.setColor(Color.white);
g.fillRect(0, 0, 400, 350);
for(int i=0;i20;i++)
for(int j=0;j20;j++)
if(b.matrix[i][j]){
g.setColor(b.brickcolor[i][j]);
g.fillRect(i*20, j*10, 20, 10);
g.setColor(Color.white);
g.drawRect(i*20, j*10, 20, 10);}
g.setColor(Color.RED);
if(b.ball.y=350)
g.fillOval(b.ball.x, b.ball.y, 10, 10);
}
void paintrect()
{Graphics g = canvas.getGraphics();
g.setColor(Color.white);
g.fillRect(0, 350, 400, 10);
g.setColor(Color.black);
g.fillRect(b.leftpoint, 350, 50, 10);
}
void paintscore()
{Graphics g = canvas.getGraphics();
g.setColor(Color.white);
g.fillRect(0, 360, 400, 50);
b.getscore();
if(b.scorescoret)
diffscore=b.score-scoret;
g.setColor(Color.black);
g.drawString("你的分数为:"+b.score+"分", 0, 400);
if(b.ball.y360)
g.drawString("提示:你输了,重新开始按ENTER。",200, 410);
else g.drawString("提示:新得分数"+diffscore+"分", 200, 410);
scoret=b.score;
b.score=0;
}
public void keyPressed(KeyEvent e) {//监听键盘按键
int keycode = e.getKeyCode();
switch (keycode) {
case KeyEvent.VK_LEFT:
if(b.leftpoint=10)
b.leftpoint-=10;
paintrect();
break;
case KeyEvent.VK_RIGHT:
if(b.leftpoint=340)
b.leftpoint+=10;
paintrect();
break;
case KeyEvent.VK_ENTER:
begin();
break;
}
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
public static void main(String[] args) {
dazhuankuai s = new dazhuankuai();
}
}
class ball
{
int x=200;
int y=340;
int vx;
int vy;
int r;
}
class board
{
Timer timer =new Timer(true);
ball ball;
dazhuankuai dzk;
int score=0;
boolean[][] matrix;
Color[][] brickcolor;
int[][] brickint;
int leftpoint=180;
int i,j;
board(dazhuankuai dzk)
{this.dzk=dzk;
ball=new ball();
matrix = new boolean[20][20];
brickcolor=new Color[20][20];
brickint=new int[20][20];
for(i=0;i20;i++)
for(j=0;j20;j++){
matrix[i][j]=true;
brickint[i][j]=(int)(Math.random()*7)+1;
switch (brickint[i][j]){
case 1: brickcolor[i][j]=Color.green;break;
case 2: brickcolor[i][j]=Color.blue;break;
default: brickcolor[i][j]=Color.orange;break;
}
}
}
public void move()
{
for(int i=0;i20;i++)
for(int j=0;j20;j++)
if(matrix[i][j])
{if(ball.x(i+1)*20ball.x=i*20)
if(ball.y=(j+1)*10ball.y=j*10)
{ball.vy=-ball.vy;ball.vx=ball.vx;matrix[i][j]=false;
}
if(ball.y=(j+1)*10ball.y=j*10)
if(ball.x=(i+1)*20ball.xi*20)
{ball.vx=-ball.vx;ball.vy=ball.vy;matrix[i][j]=false;
}
}
if(ball.x=0)ball.vx=-ball.vx;//碰墙
if(ball.y=0ball.vy0)ball.vy=-ball.vy;
if(ball.x=390)ball.vx=-ball.vx;
if(ball.y=340ball.vy=0)//碰木板
if(ball.x=leftpointball.x=leftpoint+50)
ball.vy=-ball.vy;
}
public void getscore()
{for(int i=0;i20;i++)
for(int j=0;j20;j++)
if(matrix[i][j]==false)
{if(brickint[i][j]==1)
score+=20;
if(brickint[i][j]==2)
score+=30;
else score+=10;}
}
public void run(){
timer.schedule(new java.util.TimerTask(){
public void run() {
change();
dzk.paintscore();
dzk.paint();
dzk.paintrect();
}
},0,(100*1));
}
public void change(){
move();
ball.x+=ball.vx;
ball.y-=ball.vy;
}
}
试试这个吧
这个还好一点
你可以控制它
你有点误解了 JAVA用到的英文单词其实不多,你说的接口名、类名等都是可以自己起的只要自己看到这个名字能知道是什么意思就行,没必要非要用英语。 这年头什么东西都不会缺的 去网上随便搜搜就是一堆书,但真的没多大用。 f
一般来讲,打砖块游戏的小球和挡板都是独立运动的,不存在同时运动问题。
同时运动只在发球或者黏住的时候产生。
如果是这样的话,你可以用一个变量记录是否已发球,未发球时候则让球固定在挡板上方某个位置(挡板的x+m,m为你想要的值)发球后一切正常。
望采纳,GameMaker吧为您服务。
我也是去年刚学完C语言的,这是一门非常基础的编程语言,有许多的程序员都在用它编写程序。至于你说的C++嘛,也是和C语言一样性质的编程语言。编程语言还有许多,诸如Basic,java等等。当然他们的规则也是不同的,但是也有相同之处。
语法限制不太严格,程序设计自由度大。虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。允许直接访问物理地址,对硬件进行操作。由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。生成目标代码质量高,程序执行效率高。一般只比汇编程序生成的目标代码效率低10へ20%。适用范围大,可移植性好,C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX、windows 98.windows NT;也适用于多种机型。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。
缺点也有, C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。
像电脑游戏或者手机游戏其他编程语言都可以编写,只是有难易繁简之分罢了。
总之c语言是基础,一定要重视!!!!!因为我们班现在学数据结构就受C语言之苦!还兼学java语言,痛煞我也,如何道哉!
最后,不要指望什么语言都通,学精一门胜过样样疏松啊!兄台!
求加分!
用这个有时就是会出现毛病。可能还得再加些参数。
你用Desktop类。
打开一个文件
Desktop d=Desktop.getDesktop();
d.open("D:\\Games\\打砖块\\DXBall2.exe");
这个方法肯定可以打开。它是利用windows的默认打开方式的
太容易了,这个游戏再走有个中文游戏500的游戏光盘里面有,自己去买个,插能玩游戏的碟机里面,就可以了!