Creepy Player

master
Jonathan Hager 6 years ago
parent 005d44b7af
commit 060882c847

Binary file not shown.

After

Width:  |  Height:  |  Size: 1020 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 694 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 819 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -82,28 +82,11 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
tileY = roomY / 2;
roomAmount = d.getLevel()[0].getRooms().length;
int startRoom = (int) (Math.random() * roomAmount);
level = 0;
int k = 0;
for(int i = 0; i < roomAmount; i++){
for(int j = 0; j < roomAmount; j++){
if(d.getLevel()[level].getRooms()[i][j] != null){
if(k == startRoom){
// Startraum wurde ausgewählt
roomPosX = i;
roomPosY = j;
}
k++;
}
}
}
roomPosX = roomAmount / 2;
roomPosY = roomAmount / 2;
d.setCurrentLevel(d.getLevel()[level]);
d.setCurrentRoom(d.getCurrentLevel().getRooms()[roomPosX][roomPosY]);
@ -180,12 +163,12 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
float x = d.getPlayer().getxPos();
d.getPlayer().updateX();
m.setPlayerSpriteX(d.getPlayer().getxPos());
m.getPlayer().getCollisionSprite().setX(d.getPlayer().getxPos());
for(RectangleMapObject rectangleObject : objects.getByType(RectangleMapObject.class)){
Rectangle rectangle = rectangleObject.getRectangle();
if(Intersector.overlaps(rectangle, m.getPlayer().getBoundingRectangle())){
if(Intersector.overlaps(rectangle, m.getPlayer().getCollisionSprite())){
d.getPlayer().setxPos(x);
@ -195,13 +178,13 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
float y = d.getPlayer().getyPos();
d.getPlayer().updateY();
m.setPlayerSpriteX(d.getPlayer().getxPos());
m.setPlayerSpriteY(d.getPlayer().getyPos());
m.getPlayer().getCollisionSprite().setX(d.getPlayer().getxPos());
m.getPlayer().getCollisionSprite().setY(d.getPlayer().getyPos());
for(RectangleMapObject rectangleObject : objects.getByType(RectangleMapObject.class)){
Rectangle rectangle = rectangleObject.getRectangle();
if(Intersector.overlaps(rectangle, m.getPlayer().getBoundingRectangle())){
if(Intersector.overlaps(rectangle, m.getPlayer().getCollisionSprite())){
d.getPlayer().setyPos(y);
@ -288,7 +271,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
ArrayList<ItemContainer> garbageCollector = new ArrayList<>();
for(int i = 0; i < tempItems.size(); i++){
if(Intersector.overlaps(m.getPlayer().getBoundingRectangle(), tempSprites.get(i).getSprite().getBoundingRectangle())){
if(Intersector.overlaps(m.getPlayer().getCollisionSprite(), tempSprites.get(i).getSprite().getBoundingRectangle())){
garbageCollector.add(tempItems.get(i));
tempItems.remove(i);

@ -12,24 +12,18 @@ import com.badlogic.gdx.maps.tiled.TiledMap;
import com.badlogic.gdx.maps.tiled.TiledMapRenderer;
import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;
import com.badlogic.gdx.math.Intersector;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.utils.Timer;
import com.dungeoncrawler.model.Dungeon;
import com.dungeoncrawler.model.Entity;
import com.dungeoncrawler.model.Item;
import com.dungeoncrawler.model.ItemContainer;
import com.dungeoncrawler.model.entities.*;
import java.util.ArrayList;
public class GameScreen {
//CONTROLS
//Texture ctr;
//Sprite controls;
//PLAYER
Texture p;
Sprite player;
TextureRegion[][] regions;
PlayerSprite player;
//ENTITIES
@ -76,15 +70,15 @@ public class GameScreen {
*/
//PLAYER
Texture[] playerTexture = new Texture[4];
playerTexture[0] = new Texture(Gdx.files.internal("sprites/legs.png"));
playerTexture[1] = new Texture(Gdx.files.internal("sprites/body.png"));
playerTexture[2] = new Texture(Gdx.files.internal("sprites/head.png"));
playerTexture[3] = new Texture(Gdx.files.internal("sprites/hair.png"));
p = new Texture("sprites/player.png");
regions = TextureRegion.split(p, 32, 32);
player = new Sprite(regions[0][2]);
player.setX(200);
player.setY(200);
player = new PlayerSprite(playerTexture);
player.update(200, 200);
//ENTITIES
entityTextures = new Texture[5];
@ -164,8 +158,7 @@ public class GameScreen {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
//setzt player Sprite auf richtige Position
player.setX(p.getxPos());
player.setY(p.getyPos());
player.update((int) p.getxPos(), (int) p.getyPos());
tm = getM().getMaps()[level][roomPosX][roomPosY].getMap();
objects = getM().getMaps()[level][roomPosX][roomPosY].getObjects();
@ -180,6 +173,7 @@ public class GameScreen {
// dreht SpielerSprite je nach Bewegungsrichtung
/*
if(p.getMovementX() == 3){ //RECHTS
player.setRegion(regions[0][1]);
}
@ -192,6 +186,7 @@ public class GameScreen {
if(p.getMovementY() == -3){ //UNTEN
player.setRegion(regions[0][2]);
}
*/
//MAP
tmr.setView(camera);
@ -253,7 +248,11 @@ public class GameScreen {
mapItem.getSprite().draw(batch);
}
player.draw(batch);
// Player wird gedrawt
for(Sprite sprite : player.getSprites()){
sprite.draw(batch);
}
//controls.draw(batch);
//DRAW'T JEDES ENTITY - prueft vorher ob vorhanden
for(int i = 0; i < e.length; i++){
@ -491,13 +490,7 @@ public class GameScreen {
//GETTER
public float getPlayerSpriteX(){
return player.getX();
}
public float getPlayerSpriteY(){
return player.getY();
}
public Sprite getPlayer(){
public PlayerSprite getPlayer(){
return player;
}
@ -508,14 +501,6 @@ public class GameScreen {
return entitySprites[i].getY();
}
//SETTER
public void setPlayerSpriteX(float x){
player.setX(x);
}
public void setPlayerSpriteY(float y){
player.setY(y);
}
public void setEntitySpriteX(int i,float x){
entitySprites[i].setX(x);
}

@ -0,0 +1,101 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.dungeoncrawler.view;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.math.Rectangle;
/**
*
* @author jonathan
*/
public class PlayerSprite {
// 0: pants, 1: body, 2: head, 3: hair, 4: collision
private Sprite[] sprites;
private Rectangle collisionSprite;
private TextureRegion[][][] regions;
private int[] frames;
public PlayerSprite(Texture[] textures){
sprites = new Sprite[4];
regions = new TextureRegion[4][][];
frames = new int[4];
for(int i = 0; i < regions.length; i++){
regions[i] = TextureRegion.split(textures[i], 32, 64);
sprites[i] = new Sprite(textures[i]);
}
collisionSprite = new Rectangle(0, 0, 32, 16);
}
public void update(int xPos, int yPos){
for(int i = 0; i < sprites.length; i++){
sprites[i].setPosition(xPos, yPos);
}
collisionSprite.setPosition(xPos, yPos);
}
/**
* @return the sprites
*/
public Sprite[] getSprites() {
return sprites;
}
/**
* @param sprites the sprites to set
*/
public void setSprites(Sprite[] sprites) {
this.sprites = sprites;
}
/**
* @return the collisionSprite
*/
public Rectangle getCollisionSprite() {
return collisionSprite;
}
/**
* @param collisionSprite the collisionSprite to set
*/
public void setCollisionSprite(Rectangle collisionSprite) {
this.collisionSprite = collisionSprite;
}
/**
* @return the regions
*/
public TextureRegion[][][] getRegions() {
return regions;
}
/**
* @param regions the regions to set
*/
public void setRegions(TextureRegion[][][] regions) {
this.regions = regions;
}
/**
* @return the frames
*/
public int[] getFrames() {
return frames;
}
/**
* @param frames the frames to set
*/
public void setFrames(int[] frames) {
this.frames = frames;
}
}
Loading…
Cancel
Save