1
這裏是交易,基本上我必須有一個代碼,有一個桶可以捕捉落下的水果,每次捕捉它時,你都會得到一個新的水果落下的點。我該如何在此代碼中移動一個隨機對象?
所以我知道如何讓水桶移動,以及如何讓水果一旦到達底部就再次出現。但是,我不知道如何使它實際上下降。到目前爲止,我得到了一個開關,但不知道該怎麼做。我得到的果實隨機出現,這是一個開始。無論如何,這是我的代碼。所有幫助讚賞。再次,我需要有一個隨機的水果下降,一旦他們中的一個達到底部。
import java.awt.Color;
import java.awt.event.KeyEvent;
import acm.graphics.GOval;
import acm.graphics.GPolygon;
import acm.graphics.GRect;
import acm.program.GraphicsProgram;
import acm.util.RandomGenerator;
import java.awt.event.*;
public class FruitCatcher extends GraphicsProgram {
\t private static final int APPLET_WIDTH = 500;
\t private static final int APPLET_HEIGHT = 500;
\t private static final int BUCKET_X = 250;
\t private static final int BUCKET_Y = 500;
\t private static final int BUCKET_SPEED = 10;
\t private static final int BUCKET_SPEED2 = -10;
\t private GPolygon Bucket;
\t public void init() {
\t \t setSize(APPLET_WIDTH, APPLET_HEIGHT);
\t \t addKeyListeners();
\t }
\t public void run() {
\t \t RandomGenerator random = new RandomGenerator();
\t \t makeBucket();
\t \t for (int i = 1; i <= 3; i++) {
\t \t \t int randomX = random.nextInt(0, 300 - 20);
\t \t \t addFruit(i, randomX, 0);
\t \t }
\t \t while (true)
\t \t \t ;
\t }
\t public void makeBucket() {
\t \t Bucket = new GPolygon(BUCKET_X, BUCKET_Y);
\t \t Bucket.addVertex(-60, 0);
\t \t Bucket.addVertex(-70, -85);
\t \t Bucket.addVertex(10, -85);
\t \t Bucket.addVertex(0, 0);
\t \t add(Bucket);
\t \t Bucket.setFilled(true);
\t \t Bucket.setFillColor(Color.GRAY);
\t }
\t public void addFruit(int a, int x, int y) {
\t \t switch (a) {
\t \t case 1:
\t \t \t GRect Banana = new GRect(x, y, 10, 60);
\t \t \t Banana.setColor(Color.YELLOW);
\t \t \t Banana.setFilled(true);
\t \t \t add(Banana);
\t \t \t break;
\t \t case 2:
\t \t \t GOval lime = new GOval(x, y, 20, 20);
\t \t \t lime.setColor(Color.GREEN);
\t \t \t lime.setFilled(true);
\t \t \t add(lime);
\t \t \t break;
\t \t case 3:
\t \t \t GOval Orange = new GOval(x, y, 30, 30);
\t \t \t Orange.setColor(Color.ORANGE);
\t \t \t Orange.setFilled(true);
\t \t \t add(Orange);
\t \t }
\t }
\t public void keyPressed(KeyEvent event) {
\t \t int keyCode = event.getKeyCode();
\t \t switch (keyCode) {
\t \t case KeyEvent.VK_LEFT:
\t \t \t if (Bucket.getX() > 0) {
\t \t \t \t Bucket.move(-BUCKET_SPEED, 0);
\t \t \t }
\t \t \t break;
\t \t case KeyEvent.VK_RIGHT:
\t \t \t if (Bucket.getX() < APPLET_WIDTH) {
\t \t \t \t Bucket.move(BUCKET_SPEED, 0);
\t \t \t }
\t \t \t break;
\t \t }
\t }
}
在我的代碼,你可以看到,而(真)我只是假設是我會寫它。但是,我實際上在那裏會遇到一些損失。
什麼是不工作?把所有東西扔出來說「完成這個項目」並不會讓我們繼續前進。 (和代碼片段是完整的HTML/JS/CSS,而不是Java。) – Teepeemm
嗯,我假設我把東西放在while(true)循環的頂部,因爲那是我運行代碼的地方。但是,我遇到了問題,將代碼的底部添加到while方法的頂部。你不能只做BLANK.move(0,2);或者什麼,因爲沒有什麼可以放。 – Gohawks