Initial commit
This commit is contained in:
26
.replit
Normal file
26
.replit
Normal file
@@ -0,0 +1,26 @@
|
||||
modules = ["java-graalvm22.3"]
|
||||
[agent]
|
||||
expertMode = true
|
||||
|
||||
[workflows]
|
||||
runButton = "Project"
|
||||
|
||||
[[workflows.workflow]]
|
||||
name = "Project"
|
||||
mode = "parallel"
|
||||
author = "agent"
|
||||
|
||||
[[workflows.workflow.tasks]]
|
||||
task = "workflow.run"
|
||||
args = "Start application"
|
||||
|
||||
[[workflows.workflow]]
|
||||
name = "Start application"
|
||||
author = "agent"
|
||||
|
||||
[[workflows.workflow.tasks]]
|
||||
task = "shell.exec"
|
||||
args = "javac Display.java Platformer.java Player.java Tile.java Moveable.java && java Display"
|
||||
|
||||
[workflows.workflow.metadata]
|
||||
outputType = "vnc"
|
||||
BIN
Display.class
Normal file
BIN
Display.class
Normal file
Binary file not shown.
20
Display.java
Normal file
20
Display.java
Normal file
@@ -0,0 +1,20 @@
|
||||
import javax.swing.*;
|
||||
|
||||
public class Display {
|
||||
public static void main(String[] args) {
|
||||
int boardWidth = 400;
|
||||
int boardHeight = 400;
|
||||
int tileSize = 20;
|
||||
|
||||
JFrame game = new JFrame();
|
||||
game.setSize(boardWidth, boardHeight);
|
||||
game.setVisible(true);
|
||||
game.setLocationRelativeTo(null);
|
||||
game.setResizable(false);
|
||||
|
||||
Platformer platformer = new Platformer(boardWidth, boardHeight, tileSize);
|
||||
game.add(platformer);
|
||||
game.pack();
|
||||
platformer.requestFocus();
|
||||
}
|
||||
}
|
||||
BIN
Moveable.class
Normal file
BIN
Moveable.class
Normal file
Binary file not shown.
6
Moveable.java
Normal file
6
Moveable.java
Normal file
@@ -0,0 +1,6 @@
|
||||
public interface Moveable{
|
||||
int JUMP_HEIGHT = 10;
|
||||
|
||||
public void moveX(int moveX);
|
||||
public void moveY(int moveY);
|
||||
}
|
||||
BIN
Platformer.class
Normal file
BIN
Platformer.class
Normal file
Binary file not shown.
97
Platformer.java
Normal file
97
Platformer.java
Normal file
@@ -0,0 +1,97 @@
|
||||
import java.util.Random;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.io.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.awt.Graphics;
|
||||
import javax.swing.*;
|
||||
|
||||
public class Platformer extends JPanel implements KeyListener, ActionListener{
|
||||
|
||||
//finals
|
||||
static final int GRAVITY = 10;
|
||||
static final Color playerColor = Color.RED;
|
||||
static final Color tileColor = Color.BLUE;
|
||||
|
||||
Player player;
|
||||
ArrayList<Tile> tiles;
|
||||
//display vars
|
||||
int boardWidth;
|
||||
int boardHeight;
|
||||
int tileSize;
|
||||
Timer gameTimer;
|
||||
|
||||
|
||||
public Platformer(int boardWidth, int boardHeight, int tileSize){
|
||||
//setup game
|
||||
this.boardWidth = boardWidth;
|
||||
this.boardHeight = boardHeight;
|
||||
this.tileSize = tileSize;
|
||||
setPreferredSize(new Dimension(this.boardWidth, this.boardHeight));
|
||||
addKeyListener(this);
|
||||
this.setFocusable(true);
|
||||
gameTimer = new Timer(15,this);
|
||||
player = new Player(20,20,20,20);
|
||||
tiles = new ArrayList<>();
|
||||
tiles.add(new Tile (0,300,tileSize * 20,tileSize));
|
||||
}
|
||||
|
||||
//gameloop
|
||||
public void gameLoop(){
|
||||
player.moveY(GRAVITY);
|
||||
}
|
||||
|
||||
//paintComponent
|
||||
public void paintComponent(Graphics g){
|
||||
super.paintComponent(g);
|
||||
draw(g);
|
||||
}
|
||||
|
||||
//draw function
|
||||
public void draw(Graphics g){
|
||||
|
||||
//draw player
|
||||
g.setColor(playerColor);
|
||||
g.fillRect(player.x,player.y,player.width,player.height);
|
||||
|
||||
//draw tiles
|
||||
g.setColor(tileColor);
|
||||
for (Tile t : tiles){
|
||||
t.draw(g);
|
||||
}
|
||||
}
|
||||
|
||||
//every tick
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e){
|
||||
gameLoop();
|
||||
repaint();
|
||||
}
|
||||
|
||||
//check for key presses
|
||||
@Override
|
||||
public void keyPressed(KeyEvent e){
|
||||
if (e.getKeyCode() == KeyEvent.VK_S){
|
||||
gameTimer.start();
|
||||
}
|
||||
|
||||
if (e.getKeyCode() == KeyEvent.VK_R){
|
||||
gameTimer.stop();
|
||||
player.x = 20;
|
||||
player.y = 20;
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyReleased(KeyEvent e){
|
||||
|
||||
}
|
||||
|
||||
//dont need
|
||||
@Override
|
||||
public void keyTyped(KeyEvent e){
|
||||
|
||||
}
|
||||
}
|
||||
BIN
Player.class
Normal file
BIN
Player.class
Normal file
Binary file not shown.
18
Player.java
Normal file
18
Player.java
Normal file
@@ -0,0 +1,18 @@
|
||||
public class Player implements Moveable{
|
||||
int x,y,width,height;
|
||||
|
||||
public Player(int x1, int y1, int w, int h){
|
||||
x = x1;
|
||||
y = y1;
|
||||
width = w;
|
||||
height = h;
|
||||
}
|
||||
|
||||
public void moveX(int moveX){
|
||||
this.x += moveX;
|
||||
}
|
||||
|
||||
public void moveY(int moveY){
|
||||
this.y += moveY;
|
||||
}
|
||||
}
|
||||
BIN
Tile.class
Normal file
BIN
Tile.class
Normal file
Binary file not shown.
16
Tile.java
Normal file
16
Tile.java
Normal file
@@ -0,0 +1,16 @@
|
||||
import java.awt.Graphics;
|
||||
|
||||
public class Tile {
|
||||
int x,y,width,height;
|
||||
|
||||
public Tile(int x, int y, int width, int height){
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
}
|
||||
|
||||
public void draw(Graphics g){
|
||||
g.fillRect(x,y,width,height);
|
||||
}
|
||||
}
|
||||
19
replit.md
Normal file
19
replit.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Platformer Game
|
||||
|
||||
A simple Java platformer game.
|
||||
|
||||
## Main Entry Point
|
||||
The main entry point of the application is `Display.java`.
|
||||
|
||||
## Structure
|
||||
- `Display.java`: Entry point and window setup.
|
||||
- `Platformer.java`: Game engine and logic.
|
||||
- `Player.java`: Player character class.
|
||||
- `Tile.java`: Platform class.
|
||||
- `Moveable.java`: Interface for moveable objects.
|
||||
|
||||
## How to Run
|
||||
Use the "Start application" workflow or run:
|
||||
```bash
|
||||
javac Display.java Platformer.java Player.java Tile.java Moveable.java && java Display
|
||||
```
|
||||
Reference in New Issue
Block a user