【发布时间】:2015-11-19 07:32:32
【问题描述】:
我正在为我的编程课编写游戏。这是一款以其他飞机为“敌人”的飞机射击游戏。射击的飞机会射出小椭圆。我无法弄清楚如何将被击中的敌人从游戏中移除。我知道如何消除“敌人”,但不知道如何在它们发生碰撞时做到这一点。这是我当前的代码。
ArrayList <Bullet> bullets = new ArrayList <Bullet> ();
ArrayList enemies;
PVector player, playerSpeed;
float maxSpeed = 3;
PImage jet;
PImage enemy;
PImage laser;
void setup() {
size(600, 600);
player = new PVector(300, 550);
playerSpeed = new PVector();
noCursor();
noStroke();
smooth();
String jeturl = "http://s1.postimg.org/dhe38w1rv/fighter_jet_md_20.png";
String enemyurl = "http://s29.postimg.org/cdaj0d7z7/fighter_jet_md_20.png";
String laserurl = "http://s13.postimg.org/fq00vsl37/red_Laser_Ray.png";
// Load image from a web server
jet = loadImage(jeturl, "png");
enemy = loadImage(enemyurl, "png");
laser = loadImage(laserurl, "png");
enemies = new ArrayList();
}
void draw() {
background(255);
player.add(playerSpeed);
//fill(255, 0, 0);
image(jet, player.x, player.y);
PVector mouse = new PVector(mouseX, mouseY);
fill(10);
ellipse(mouse.x, mouse.y, 5, 5);
if (frameCount%7==0 && mousePressed) {
PVector dir = PVector.sub(mouse, player);
dir.normalize();
dir.mult(maxSpeed*3);
Bullet b = new Bullet(player, dir);
bullets.add(b);
}
for(int i = enemies.size()-1; i>=0; i--) {
Enemy b = (Enemy) enemies.get(i);
b.move();
b.draw();
}
if (frameCount%50==0) {
enemies.add(new Enemy());
}
for (Bullet b : bullets) {
b.update();
b.display();
}
}
class Bullet extends PVector {
PVector vel;
Bullet(PVector loc, PVector vel) {
super(loc.x, loc.y);
this.vel = vel.get();
}
void update() {
add(vel);
}
void display() {
fill(0, 0, 255);
ellipse(x, y, 3, 3);
}
}
class Enemy {
float x, y;
Enemy() {
x = random(20, 580);
y = random(-20, -580);
}
void move() {
y = y + random(1,3);
}
void draw() {
image(enemy, x, y);
}
}
void keyPressed() {
if (keyCode == LEFT) {
playerSpeed.x = -maxSpeed;
}
if (keyCode == RIGHT) {
playerSpeed.x = maxSpeed;
}
}
void keyReleased() {
if (keyCode == LEFT || keyCode == RIGHT) {
playerSpeed.x = 0;
}
}
【问题讨论】:
-
您的命中检测代码在哪里?
-
@willywonka_dailyblah 它不存在
标签: processing collision-detection collision detection