4
4KB neuling
Gast
Hallo, ich programiere schon länger,
wollte heute aber einfach mal versuchen ein kleines 4kb spiel zu programmieren.
[OT]Nö, der Code wurde nicht gedecompild [/OT]
Jetzt stellt sich mir die frage, wie ich am besten grafiken hinzufüge.
Als winz Bild, und dann laden? als Farb-array im code?
Ich brauche als grafik nur, ein kleines flugzug, 2, höchstens drei farbig, vieleicht 8*6 px.
Viele Grüße 4KB Neuling
wollte heute aber einfach mal versuchen ein kleines 4kb spiel zu programmieren.
Java:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import javax.swing.JApplet;
public class m extends JApplet implements Runnable {
static boolean keys[] = new boolean[65536];
static double[] doubs = new double[54];
// Delta: 0
// last time stamp: 1
// ship x: 2
// ship y: 3
// ship width: 4
// ship height: 5
// shot x: 6 - 16
// shot y: 17 - 27;
// shot cool down counter: 28
// other Ships x: 29 - 39
// other Ships y: 40 - 50
// ship cool down counter: 51
// ships apear delta: 52
// ship speed: 53
static int[] counter = new int[5];
// logic counter: 0
// paint counter: 1
// shot index counter: 2
// ship index counter: 3
// help counter: 4
public void processKeyEvent(KeyEvent e) {
keys[e.getKeyCode()] = (e.getID() == KeyEvent.KEY_PRESSED);
}
@Override
public void run() {
while (true) {
// set akt time stamp (1) and delta (0)
doubs[0] = (System.nanoTime() - doubs[1]) / 0x3B9ACA00;
doubs[1] = System.nanoTime();
// //
// calc. left cool down time
doubs[28] -= doubs[0];
doubs[51] -= doubs[0];
// //
// check keys
// drive left
if (keys[KeyEvent.VK_A]) {
doubs[2] -= (16 * 2 * doubs[0]);
if (doubs[2] < 0)
doubs[2] = 0;
}
// drive right
if (keys[KeyEvent.VK_D]) {
doubs[2] += (16 * 2 * doubs[0]);
if (doubs[2] > 184)
doubs[2] = 184;
}
// drive down
if (keys[KeyEvent.VK_S]) {
doubs[3] += (16 * 2 * doubs[0]);
if (doubs[3] > 284)
doubs[3] = 284;
}
// drive up
if (keys[KeyEvent.VK_W]) {
doubs[3] -= (16 * 2 * doubs[0]);
if (doubs[3] < 0)
doubs[3] = 0;
}
// shot
if (keys[KeyEvent.VK_SPACE] && doubs[28] <= 0) {
doubs[counter[2] + 6] = doubs[2] + 8;
doubs[counter[2] + 17] = doubs[3];
counter[2] = (counter[2] + 1) % 10;
doubs[28] = 1 / 2d;
}
// //
// new ship
if (doubs[51] <= 0) {
doubs[counter[3] + 29] = Math.random()*184;
doubs[counter[3] + 40] = -16;
counter[3] = (counter[3] + 1) % 10;
doubs[51] = doubs[52];
}
// //
// update shots
for (counter[0] = 0; counter[0] < 10; counter[0]++) {
doubs[counter[0] + 17] -= 16 * 2 * 2 * doubs[0];
// check(/hack ;) ) shot ship collision
for (counter[4] = 0; counter[4] < 10; counter[4]++) {
if((doubs[counter[4] + 29] < doubs[counter[0] + 6] && doubs[counter[4] + 29] + 16 > doubs[counter[0] + 6])&&(doubs[counter[4] + 40] < doubs[counter[0] + 17] && doubs[counter[4] + 40] + 16 > doubs[counter[0] + 17])){
doubs[52]*=0.99;
doubs[53]*=1 + (1-0.99);
doubs[counter[0] + 17] = -900;
doubs[counter[4]+40] = 900;
}
}
}
// //
// update ships
for (counter[0] = 0; counter[0] < 10; counter[0]++) {
doubs[counter[0] + 40] += (doubs[53] * doubs[0]);
}
// //
repaint();
// schlaf kindchen schlaf...
try {
Thread.sleep(16*2);
} catch (InterruptedException e) {
}
// //
}
}
@Override
public void paint(Graphics g) {
g.setColor(Color.BLACK);
g.fillRect(0, 0, 200, 300);
g.setColor(Color.WHITE);
g.drawRect((int) doubs[2], (int) doubs[3], (int) doubs[4],
(int) doubs[5]);
// draw shots
for (counter[1] = 0; counter[1] < 10; counter[1]++) {
g.drawLine((int) doubs[counter[1] + 6],
(int) doubs[counter[1] + 17], (int) doubs[counter[1] + 6],
(int) (doubs[counter[1] + 17] - 16 / 2));
}
// //
// draw ships
for (counter[1] = 0; counter[1] < 10; counter[1]++) {
g.drawRect((int) doubs[counter[1] + 29],
(int) doubs[counter[1] + 40], (int) doubs[4],
(int) doubs[5]);
}
// //
}
@Override
public void init() {
doubs[1] = System.nanoTime();
// ship data
doubs[2] = 92;
doubs[3] = 142;
doubs[4] = 16;
doubs[5] = 16;
//
doubs[52] = 5;
doubs[53] = 16 * 2;
this.enableEvents(KeyEvent.KEY_EVENT_MASK);
this.setSize(200, 300);
new Thread(this).start();
}
}
Jetzt stellt sich mir die frage, wie ich am besten grafiken hinzufüge.
Als winz Bild, und dann laden? als Farb-array im code?
Ich brauche als grafik nur, ein kleines flugzug, 2, höchstens drei farbig, vieleicht 8*6 px.
Viele Grüße 4KB Neuling