Finally found source code

Unfortunately, due to major complications while trying to upload it, the
source code will have lost most of its usability
This commit is contained in:
delvh 2019-11-09 23:11:16 +01:00
parent 6d162adde1
commit 073d9fe188
11 changed files with 288 additions and 0 deletions

6
Snake/.classpath Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>

1
Snake/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/bin/

17
Snake/.project Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Snake</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,11 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8

View File

@ -0,0 +1,21 @@
package dev.lh.snake;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
public class Food {
private Point position;
public Food(int x, int y) {
position = new Point(x,y);
}
public void render(Graphics g) {
g.setColor(Color.yellow);
g.fillRect(position.x, position.y, 16, 16);
}
}

View File

@ -0,0 +1,98 @@
package dev.lh.snake;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
import dev.lh.snake.Snake;
public class GameWindow extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
Toolkit tk = Toolkit.getDefaultToolkit();
int xSize = ((int) tk.getScreenSize().getWidth());
int ySize = ((int) tk.getScreenSize().getHeight());
public GameWindow(int width, int height, String title) {
super(title);
setLocationRelativeTo(null);
Dimension size = new Dimension(width, height);
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Snake s = new Snake(3);
add(new JPanel() {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.black);
g.fillRect(0, 0, width, height);
s.render(g);
}
});
addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
super.keyPressed(e);
switch (e.getKeyCode()) {
case KeyEvent.VK_W:
s.setRichtung(Direction.Up);
break;
case KeyEvent.VK_A:
s.setRichtung(Direction.Left);
break;
case KeyEvent.VK_S:
s.setRichtung(Direction.Down);
break;
case KeyEvent.VK_D:
s.setRichtung(Direction.Right);
break;
case KeyEvent.VK_UP:
s.setRichtung(Direction.Up);
break;
case KeyEvent.VK_LEFT:
s.setRichtung(Direction.Left);
break;
case KeyEvent.VK_DOWN:
s.setRichtung(Direction.Down);
break;
case KeyEvent.VK_RIGHT:
s.setRichtung(Direction.Right);
break;
}// switch
}// keypressed
});// keylistener
Timer timer = new Timer (200, (evt)->{
s.tick();
repaint();
});
timer.start();
setVisible(true);
}
}// Konstruktor

View File

@ -0,0 +1,15 @@
package dev.lh.snake;
import java.util.ArrayList;
import java.util.List;
public class Handler {
List<Updateable> targets;
public Handler() {
targets = new ArrayList<>();
targets.add(new Snake(3));
}
}

View File

@ -0,0 +1,13 @@
package dev.lh.snake;
import dev.lh.snake.GameWindow;
public class Main {
public static void main(String[] args) {
GameWindow game = new GameWindow(640, 480, "Snake");
game.setVisible(true);
}
}

View File

@ -0,0 +1,76 @@
package dev.lh.snake;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
public class Snake implements Updateable {
static enum Direction{
Left, Right, Up, Down;
}
private Direction Richtung;
private int length;
private Point[] tiles;
public Snake(int length) {
this.length = length;
tiles =new Point[length];
Richtung = Direction.Left;
for(int i = 0; i<length;i++) {
tiles[i] = new Point(320-50*i, 240);
}
}//End Constructor
@Override
public void tick() {
int velX = 0, velY = 0;
switch(Richtung) {
case Up:
velY=-50;
break;
case Down:
velY=50;
break;
case Left:
velX=-50;
break;
case Right:
velX=50;
break;
}//switch
Point next = (Point) tiles[0].clone(), cur;
tiles[0].x+=velX;
tiles[0].y+=velY;
for(int i = 1;i<length;i++) {
cur = tiles[i];
tiles[i]=(Point) next.clone();
next = cur;
}//for
}//End tick
@Override
public void render(Graphics g) {
g.setColor(Color.green);
for (int i = 0; i<length;i++) {
g.drawRect(tiles[i].x, tiles[i].y, 50, 50);
}
}//End render
public Direction getRichtung() {
return Richtung;
}
public void setRichtung(Direction richtung) {
Richtung = richtung;
}
}

View File

@ -0,0 +1,19 @@
package dev.lh.snake;
import java.awt.Graphics;
public class Spawner implements Updateable{
@Override
public void tick() {
}
@Override
public void render(Graphics g) {
}
}

View File

@ -0,0 +1,11 @@
package dev.lh.snake;
import java.awt.Graphics;
public interface Updateable {
void tick();
void render(Graphics g);
}