processingのjavaを使用して、シューティングゲームを制作しています。
自機の操作、敵の出現、弾の発射まではできた状態です。
ここから、自分が発射した弾に敵が当たった時に敵と弾が消滅するような処理を加えたいです。
色々調べてみたり、試行錯誤はしてみたのですが、どこに入れればよいのか、また具体的にどのような処理を行えば良いのかがわからず、苦戦しています。よろしくお願い致します。
ENEMY enemy[]; HIKOU hikou; HAIKEI haikei[]; ArrayList<SHOT> shotList = new ArrayList<SHOT>(); PImage png; int N = 100; int n = 5; void setup() { size(300, 600); frameRate(30); rectMode(CENTER); noCursor(); png = loadImage("hikou.png"); png = loadImage("enemy.png"); hikou = new HIKOU(); haikei = new HAIKEI[N]; for (int i = 0; i < N; i++) { haikei[i] = new HAIKEI(); } enemy = new ENEMY[n]; for (int i = 0; i < n; i++) { enemy[i] = new ENEMY(); } } void draw() { background(0); for (int i = 0; i < N; i++) { haikei[i].draw(); } for (int i = 0; i < n; i++) { enemy[i].draw(); } for (int i=shotList.size ()-1; i>=0; i--) { SHOT t = shotList.get(i); if (t.isAlive()) { t.move(); t.display(); } else { shotList.remove(i); } } hikou.move(mouseX, mouseY); hikou.display(); PImage hikoupng = loadImage("hikou.png"); image(hikoupng, mouseX - 15, mouseY - 32); } void mousePressed() { shotList.add(new SHOT(hikou.x, hikou.y)); } class HIKOU { float x, y; float size; HIKOU() { size = 10; } void move(float _x, float _y) { x = _x; y = _y; } void display() { } } class SHOT { float x; float y; float size; float speed; SHOT(float _x, float _y) { x = _x; y = _y; size = 6; speed = 15; } void move() { y -= speed; } void display() { stroke(0); fill(255, 0, 0); rect(x, y, size, size); } boolean isAlive() { if (x+size/2<0 || width<x-size/2 || y+size/2<0 || height<y-size/2) { return false; } return true; } } class HAIKEI { float y; float x; float vy = 10; float len; HAIKEI() { init(); y = random(-height, height); } void init() { y = random(-2*height, -1); x = random(0, width); vy = random(10, 18); len = random(15, 25); } void draw() { stroke(200);//color line(x, y, x, y+len); update(); } void update() { y += vy; if (height < y+len) { init(); } } } class ENEMY { float y; float x; float vy = 5; float len; ENEMY() { init(); y = random(-2 * height, -height); } void init() { y = random(-20); x = random(20, width - 20); len = random(20, 35); } void draw() { PImage enemypng = loadImage("enemy.png"); image(enemypng, x, y); update(); } void update() { y += vy; if (height + 40 < y+len) { init(); } } }
回答1件
あなたの回答
tips
プレビュー