Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion JavaGameEngineDocumentation
Submodule JavaGameEngineDocumentation updated from d6014e to 6233d6
35 changes: 10 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,37 +167,31 @@ A example on how to use it
```
package example;

import com.javagamemaker.javagameengine.backend.ComponentHandler;
import com.javagamemaker.javagameengine.backend.UpdateThread;
import com.javagamemaker.javagameengine.components.GameObject;
import com.javagamemaker.javagameengine.com.javagamemaker.javagameengine;
import com.javagamemaker.javagameengine.msc.Vector2;

import javax.swing.*;
import java.awt.*;


public class Main extends com.javagamemaker.javagameengine{
public class Main extends JavaGameEngine{

public static Ob parent;
public static Ob child;


public static void main(String[] args)
{
init();
Scene scene = new Scene();

JFrame frame = new JFrame();
frame.setTitle("JEL");
UpdateThread.camera.setPosition(new Vector2(0,0));
Ob ob1 = new Ob(new Vector2(100,100));
Ob ob2 = new Ob(new Vector2(200,400));
Ob ob3 = new Ob(new Vector2(400,400));

ComponentHandler.addObject(ob1);
ComponentHandler.addObject(ob2);
ComponentHandler.addObject(ob3);

scene.add(ob1);
scene.add(ob2);
scene.add(ob3);

//set the selected scene
setSelectecScene(scene);
start();
}

Expand Down Expand Up @@ -229,8 +223,8 @@ public class Main extends com.javagamemaker.javagameengine{
setScale(getScale().devide(1.1f));
}
@Override
public void draw(Graphics g) {
super.draw(g);
public void render(Graphics g) {
super.render(g);
if(con!=null){
g.drawLine((int) getPosition().getX(), (int) getPosition().getY(), (int) con.getPosition().getX(), (int) con.getPosition().getY());
}
Expand All @@ -244,13 +238,6 @@ public class Main extends com.javagamemaker.javagameengine{



<!-- ROADMAP -->
## Roadmap

- [ ] V1
- [ ] Relase
- [ ]


See the [open issues](https://github.com/Java-Game-Maker/JavaGameEngine/issues) for a full list of proposed features (and known issues).

Expand Down Expand Up @@ -303,8 +290,6 @@ Thanks to every on who has helped with this project. I want to special thanks to

* [One Lone Coder (olc)](https://www.youtube.com/c/javidx9/)
* [SharkooMaster](https://github.com/SharkooMaster)
* [othneildrew](https://github.com/othneildrew/Best-README-Template)


<p align="right">(<a href="#top">back to top</a>)</p>

Expand Down
76 changes: 76 additions & 0 deletions Test/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
import com.javagamemaker.javagameengine.GameWorld;
import com.javagamemaker.javagameengine.JavaGameEngine;
import com.javagamemaker.javagameengine.Scene;
import com.javagamemaker.javagameengine.components.GameObject;
import com.javagamemaker.javagameengine.components.gamecompnents.CollidingBox;
import com.javagamemaker.javagameengine.components.gamecompnents.Grabber;
import com.javagamemaker.javagameengine.components.gamecompnents.PlatformPlayerController;
import com.javagamemaker.javagameengine.input.Input;
import com.javagamemaker.javagameengine.input.InputComponent;
import com.javagamemaker.javagameengine.input.InputManager;
import com.javagamemaker.javagameengine.input.Keys;
import com.javagamemaker.javagameengine.msc.Debug;
import com.javagamemaker.javagameengine.msc.Vector2;

import java.awt.*;

public class Main extends JavaGameEngine {

public static void main(String[] args){
Scene scene = new Scene();

scene.add(new Player("Player 1"));
scene.add(new Player("Player 2"){
@Override
public void start() {
setPosition(new Vector2(0,-150));
super.start();
}
});

Input.addContext("Player 1");
//Input.addContext("Player 2");
Input.addContext("All");

scene.add(new CollidingBox(new Vector2(200,200)){
@Override
public void start() {
setScale(new Vector2(1500,100));
super.start();
}
});

setSelectedScene(scene);
start();

}

static class Player extends GameObject {

public Player(String context) {
add(new PlatformPlayerController(new InputComponent(context)));
add(new Grabber(this));
}

@Override
public void update() {
super.update();
if(Input.isKeyPressed(Keys.E)){
if(Input.getActiveContext().contains("Player 1")){
Input.addContext("Player 2");
Input.removeContext("Player 1");
}
else{

Input.addContext("Player 1");
Input.removeContext("Player 2");
}
}
if(Input.isKeyPressed(Keys.P)){
Input.addContext("Player 1");
Input.addContext("Player 2");
}
}
}

}
Binary file added images/2023-02-06 17-55-17.mkv
Binary file not shown.
Binary file added images/2023-02-06 17-55-40.mkv
Binary file not shown.
1 change: 0 additions & 1 deletion src/com/javagamemaker/javagameengine/GameWorld.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.javagamemaker.javagameengine;

import com.javagamemaker.javagameengine.input.Input;
import com.javagamemaker.javagameengine.msc.Debug;
import com.javagamemaker.javagameengine.msc.Vector2;

import javax.swing.*;
Expand Down
5 changes: 3 additions & 2 deletions src/com/javagamemaker/javagameengine/JavaGameEngine.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.rmi.server.ExportException;

/**
* This is the main class in the JavaGameEngine gameengine
Expand Down Expand Up @@ -49,7 +48,7 @@ public static Scene getSelectedScene() {
return selectedScene;
}
//so the scene does not start twice at the start
private static boolean firstFrame = true;
public static boolean firstFrame = true;
/**
* Changes the active scene
* @param selectedScene new scene to
Expand Down Expand Up @@ -144,12 +143,14 @@ public static void update() {
}
firstFrame = false;
}
public static boolean started = false;
/**
* Starts the game
* call this last in your main function
*/
public static void start() {

started = true;
//Set som basic properties
gameWorld.setLayout(null);
gameWindow.setSize((int) size.getX(), (int) size.getY());
Expand Down
47 changes: 36 additions & 11 deletions src/com/javagamemaker/javagameengine/Scene.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,11 @@
import com.javagamemaker.javagameengine.msc.Debug;
import com.javagamemaker.javagameengine.msc.Vector2;


import javax.swing.*;
import java.awt.*;
import java.io.*;

import java.util.*;
import java.util.List;

/**
* Scene is the level where the game is playing out. Scenes can be changed by calling JavaGameEngine.setSelectedScene(new Scene())
Expand Down Expand Up @@ -174,14 +173,22 @@ public void update(){
component.updateMili();
}
}
for(Component component : components){
if(inside(component)) {
if(!debugMode) {
component.update();
}else{
component.debugUpdate();
}

int lsize = components.size();
for(int i = 0; i < lsize;i++){

Component c = components.get(i);
for(Component component : c.addedChildren) {
component.setParent(c);
component.setPosition(c.getPosition());
c.getChildren().add(component);
}
c.addedChildren.clear();
if(!debugMode)
c.update();
else
component.debugUpdate();

}

camera.update();
Expand All @@ -199,6 +206,10 @@ public void update(){

}


public boolean inside(Component component) {
return true;//screen.contains(component.getShape().getBounds()) || component.getShape().contains(screen);
}
public void debugUpdate(){
if(Input.isMousePressed(Keys.RIGHTCLICK)){
GameObject g = new GameObject();
Expand Down Expand Up @@ -240,7 +251,7 @@ public void debugUpdate(){
c.setPosition(Input.getMousePosition());
components.add(c);
}
}
}
private Component copyComp = null;
public void destroy(Component c){
remove.add(c);
Expand Down Expand Up @@ -281,12 +292,26 @@ public int compare(Component o1, Component o2){
});

try{
//center graphics
if(camera.parallax) graphics2D.translate(JavaGameEngine.getWindowSize().getX()/2, JavaGameEngine.getWindowSize().getY()/2);

int lsize = components.size();
for(int i = 0; i < lsize;i++){
Component c = renderList.get(i);
if(inside(c) || true) {
int layer = c.getLayer()==0?1:c.getLayer();
//int layer = c.getLayer()==0?1:c.getLayer();
float layer = c.getPosition().getZ()==0?1:c.getPosition().getZ();
Camera camera = JavaGameEngine.getSelectedScene().getCamera();
if(camera.parallax){
Debug.log(camera.getPosition().getY());
float parx = camera.getPosition().getX()*layer/100;
float pary = camera.getPosition().getY()*layer/100;
graphics2D.translate(parx,pary);
}
(c).render(graphics2D);
if(camera.parallax){
graphics2D.translate(-camera.getPosition().getX()*layer/100,-camera.getPosition().getY()*layer/100);
}
//if(!c.isVisible()){
// c.setVisible(true);
// c.onCameraEnter();
Expand Down
2 changes: 2 additions & 0 deletions src/com/javagamemaker/javagameengine/components/Camera.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
* and its position controls the graphics position
*/
public class Camera extends Component {

public boolean parallax = false;
@Override
public void start() {
super.start();
Expand Down
8 changes: 8 additions & 0 deletions src/com/javagamemaker/javagameengine/components/Collider.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,20 @@ public Point collision(Collider c){
for (Vector2 vertex : vertices){
Point p = new Point((int) vertex.getX(), (int) vertex.getY());
if(c.getShape().contains(p)){
try{
//parent.setPosition(parent.getPosition().subtract(new Vector2(0,1)));
}
catch (Exception e){}
return p;
}
}
for (Vector2 vertex : c.vertices){
Point p = new Point((int) vertex.getX(), (int) vertex.getY());
if(getShape().contains(p)){
try{
//parent.setPosition(parent.getPosition().subtract(new Vector2(0,1)));
}
catch (Exception e){}
return p;
}
}
Expand Down
Loading