我想自学Java和我“尝试”来编写一个小游戏。
我有一个问题,我想解决的办法是很简单,但我挣扎。
其基本思路是,我控制了一圈,我想在我的窗的boundries内随机位置产卵圈每5秒。 圆圈应该将毛诗补传我正在控制圆的位置。
这是我到目前为止有:
窗口类:
package TestGame;
import java.awt.Graphics;
public class Window extends GameIntern{
public void init(){
setSize(854,480);
Thread th = new Thread(this);
th.start();
offscreen = createImage(854,480);
d = offscreen.getGraphics();
addKeyListener(this);
}
public void paint(Graphics g){
d.clearRect(0,0,854,480);
d.drawOval(x, y, 20, 20);
g.drawImage(offscreen,0,0,this);
}
public void update(Graphics g){
paint(g);
}
}
GameIntern级:
package TestGame;
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class GameIntern extends Applet implements Runnable , KeyListener {
public int x,y;
public Image offscreen;
public Graphics d;
public boolean up,down,left,right;
public void run() {
x = 100;
y = 100;
while(true){
if(left == true){
if(x>=4){
x-=4;
}else{ x=0;}
repaint();
}
if(right == true){
if(x<=826){
x+=4;
}else{ x=830;}
repaint();
}
if(up == true){
if(y>=4){
y-=4;
}else{ y=0;}
repaint();
}
if(down == true){
if(y<=454){
y+=4;
}else{y=459;}
repaint();
}
try {
Thread.sleep(20);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == 37){
left=true;
}
if(e.getKeyCode() == 38){
up=true;
}
if(e.getKeyCode() == 39){
right=true;
}
if(e.getKeyCode() == 40){
down=true;
}
}
public void keyReleased(KeyEvent e) {
if(e.getKeyCode() == 37){
left=false;
}
if(e.getKeyCode() == 38){
up=false;
}
if(e.getKeyCode() == 39){
right=false;
}
if(e.getKeyCode() == 40){
down=false;
}
}
public void keyTyped(KeyEvent e){}
}
我知道这是没有任何幻想,但我与如何创建和产卵的“敌人” -circles以及如何控制好每一个创建圆的x / y值朝着可控圈移动挣扎。
任何形式的帮助表示赞赏。