- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
此代码适用于一款名为“brick-breaker”的游戏。我试图让球在与数组相交时改变颜色。我为自定义颜色的 R、G、B 值创建了一个 int,并在与 1-255 之间的数字相交时生成这些 int
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;
import java.util.Random;
public class brickbreaker extends Applet implements MouseListener, Runnable, KeyListener
{
Thread main=new Thread(this);
int mouseX, mouseY;
int paddleX = 200, x,y,height,width, ballX = 100, ballY = 400, xChange = 1, yChange = 4, paddleWidth = 150, pageCt = 1, score = 0;
boolean pause = false, gameover=false;
boolean blocks[][] = new boolean [6][10];
int randomR = 255, randomG = 205, randomB = 155;
Random red = new Random();
Random green = new Random();
Random blue = new Random();
Image buffer;
Graphics bufferG;
String input="";
Font font3 = new Font ("Impact",5,50);
Font font4 = new Font ("Impact",5,150);
Font font5 = new Font ("Impact",5,30);
Color randomColor = new Color(randomR,randomG,randomB);
public void init()
{
resize( 1300,700 );
buffer = createImage(this.getWidth(),this.getHeight());
bufferG = buffer.getGraphics();
this.setLayout (null);
this.addKeyListener(this);
this.addMouseListener(this);
this.resize(1400,700);
main.start();
for(int r=0;r<6;r++)
for(int c=0;c<10;c++)
blocks[r][c] = true;
}
public void drawBlocks(Graphics g)
{
for(int r=0;r<6;r++)
for(int c=0;c<10;c++)
if(blocks[r][c])
g.drawRect(100+100*c, 30+30*r, 100, 30);
}
public void run()
{
if (pageCt==1)
{
while(! gameover)
{
if(pause==false)
{
repaint();
ballX = ballX + xChange;
ballY = ballY + yChange;
Rectangle ballRect = new Rectangle (ballX, ballY, 15, 15);
Rectangle paddleRect = new Rectangle (paddleX,650,paddleWidth,10);
Rectangle boundRect = new Rectangle (0,690,1300,10);
for(int r=0;r<6;r++)
for(int c=0;c<10;c++)
if(blocks[r][c])
{
Rectangle blockRect = new Rectangle (100+100*c, 30+30*r, 100, 30);
if(blockRect.intersects(ballRect))
{
blocks[r][c] = false;
yChange *=-1;
score++;
randomR=red.nextInt(255);
randomB=blue.nextInt(255);
randomG=green.nextInt(255);
if (score==60)
pageCt=4;
}
}
if(ballX < 5 || ballX > 1280)
xChange = -1*xChange;
if(ballY < 5 || ballY > 690)
yChange = -1*yChange;
if (ballRect.intersects (paddleRect))
{
yChange = yChange*-1;
//paddleWidth=paddleWidth-3;
}
if (ballRect.intersects (boundRect))
{
pageCt=2;
}
}
repaint();
try
{main.sleep(20);}
catch(Exception e) {}
}
}
}
public void keyPressed(KeyEvent e) // makes applet do something when clicked.
{
int code = e.getKeyCode();
if(code == e.VK_P)
{
if(pause==false)
pause=true;
else
pause=false;
}
if (pause==false)
{
if(paddleX>20)
{
if(code == e.VK_A)
{
paddleX = paddleX-20;
}
}
if(paddleX<1160)
{
if(code == e.VK_D)
{
paddleX = paddleX+20;
}
}
}
}
public void paint(Graphics g) // Outputs on screen
{
if (pageCt==1)
{
bufferG.setColor(Color.black);
bufferG.fillRect(0,0,1300,700);
bufferG.setColor(Color.blue);
bufferG.setColor(Color.black);
bufferG.fillRect(0,0,this.getWidth(),this.getHeight());
bufferG.setColor(randomColor);
bufferG.fillOval(ballX,ballY,15,15);
bufferG.setColor(Color.white);
bufferG.fillRect(paddleX,650,paddleWidth,10);
drawBlocks(bufferG);
bufferG.setFont(font5);
bufferG.drawString("Score : "+score,10,20);
}
if (pageCt==2)
{
bufferG.setColor(Color.black);
bufferG.fillRect(0,0,1300,700);
bufferG.setColor(Color.white);
bufferG.setFont(font4);
bufferG.drawString("You Lose!", 350,400);
}
if (pause==true)
{
bufferG.setColor(Color.white);
bufferG.setFont(font4);
bufferG.drawString("PAUSED",400,350);
}
if (pageCt==0)
{
bufferG.drawString("- Click to begin -",350,350);
}
g.drawImage(buffer,0,0,this);
}
public void update(Graphics g)
{
paint(g);
}
public void mouseClicked (MouseEvent e) {}
public void keyReleased( KeyEvent e){}
public void keyTyped (KeyEvent e){}
public void mousePressed (MouseEvent e)
{
if(pageCt==0)
{
pageCt++;
repaint();
}
}
public void mouseReleased (MouseEvent e) {}
public void mouseEntered (MouseEvent e){}
public void mouseExited (MouseEvent e) {}
}
最佳答案
颜色不会改变,因为您没有使用随机生成的值更新它。
randomR=red.nextInt(255);
randomB=blue.nextInt(255);
randomG=green.nextInt(255);
randomColor = new Color(randomR,randomG,randomB); // <- add this line
关于java - 为什么 "ball"在与数组的某些部分相交时不改变颜色? (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28272935/
执行下面的代码会发生什么? Ball *ball = [[[[Ball alloc] init] autorelease] autorelease]; 最佳答案 让我们分解一下: [Ball allo
我在 Objective-C 中实现了问题“Ball to Ball Collision - Detection and Handling”中的代码。然而,只要球以一定角度碰撞,它们的速度就会急剧增加
我是 SpriteKit 的新手。 我正在尝试解决这个问题:我的场景中有两个球,当我拖动一个球并“击中”另一个球时,这个球应该使用正确的物理原理滚开。 在我的测试代码中我只能“移动”第二个球,他没有使
我有3个文件 文件 1:index.html Bouncing ball 文件 2:bounce.js var ball = document.getEle
我正在尝试使用 Swift 制作 Pong 游戏,但不使用 SpriteKit。到目前为止,我已经能够在我的 View 中成功绘制一个矩形,并且能够在屏幕上拖动它。这是我当前的代码: import U
通常此类游戏中只有 Y 轴移动可用,但我决定以同样允许 X 轴桨移动的方式进行制作。如果我在球击中桨时不在 X 轴上移动桨(在这种情况下它会直接穿过),则游戏工作得很好。如果我在球击中桨之前停止 X
我的问题几乎就在标题中,为什么我在 actionscript 3.0 中一直读到在编写代码时将“思想”与“对象”分开是个好主意? 感谢您的帮助,这让我很困惑。 最佳答案 如果你问为什么图形与定位、运动
Ball-larus“有效路径分析”算法的实现是否随处可用? [在 llvm 中实现会更有帮助] 这是原始论文的 Citeseer 链接 BL96 最佳答案 已经有一个 implementation
我是一个 JS 菜鸟。我正在进入浏览器游戏编程,并想制作一个球掉落和弹跳的快速示例以供学习。由于某种原因,当我创建 jsfiddle 时,我的代码实际上不起作用,我的 div id="ball"的 o
我一直在寻找,知道人们可以使用核心图像和 openGL 来跟踪面部。但是,我不确定从哪里开始使用 iOS 相机跟踪彩球的过程。 一旦我获得了追踪球的线索。我希望创造一些东西来检测。当球改变方向时。 抱
这是我的代码: Touch Tracker Marker body { margin: 0px; overflow
这是我的第一个图形 Java 程序,我想做的是重新创建一个简单的经典程序,其中我有多个球在 JFrame 中弹跳。窗口。 到目前为止,我已经成功地使用 run() 中的代码让一个球弹来弹去。方法。这适
因为我是 XNA 的新手,所以我正在开发一个乒乓球游戏,但我遇到了一个问题......我有 3 个类,"Game1.cs"、"Ball.cs" 和 "GreenPaddle.cs"。 GreenPad
我需要一些简单的 C 语言“球”光栅化例程。 我根据中点-Bresenham 给自己做了一些东西我首先计算的算法(在维基百科中看到)x-y屏幕平面中的圆点 // XXX // XXXXX // XXX
我儿子问我是否可以编写一个小程序让球在屏幕上弹跳,然后让我解释一下。发现一个很好的父子机会,我说“是的!没问题”。所以我挖掘了我的 python 技能并写了这个.. #!/usr/bin/python
我正在尝试更多地了解 Android 中的手势和图形,所以我正在尝试制作一种游戏,您从屏幕中间的一个球(只是一个红色圆圈)开始,如果您滑动在一个方向上,球将朝那个方向发射,屏幕弹跳等。现在,我已经成功
我有两个查询,每个查询返回一个节点 ID 列表 SELECT node.nid FROM dpf_node AS node WHERE node.type = 'image' AND node.
我正在使用 li我的菜单标签,但它一直显示圆盘球 即使我的 html 中没有它... 我怎样才能摆脱它?我查看了谷歌,但找不到答案。 谢谢! 最佳答案 CSS: li { list-style: no
此代码适用于一款名为“brick-breaker”的游戏。我试图让球在与数组相交时改变颜色。我为自定义颜色的 R、G、B 值创建了一个 int,并在与 1-255 之间的数字相交时生成这些 int i
我有一个类 mypanel 从 jpanel 扩展而来,我在其中使用图形并制作球。第二类是 Main,我在其中制作 JFrame 并将面板添加到框架。 Main 中还有另一个类 MKeyListene
我是一名优秀的程序员,十分优秀!