package com.opticalcobra.storybear.res; import java.awt.Color; import java.awt.Cursor; import java.awt.Dimension; import java.awt.HeadlessException; import java.awt.Image; import java.awt.Point; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import com.opticalcobra.storybear.game.Window; public class Ressources { public static final boolean DEBUG = false; public static final String LOADINGPICTURE = "images\\menu_storybook_closed.png"; public static final Dimension FULLHD; public static final Dimension SCREEN; public static final Dimension WINDOW; public static final double SCALE; public static final int GAMESPEED = 5; public static final String RESPATH; public static final int RASTERSIZEORG = 120; public static final int RASTERSIZE; public static final int STORYTEXTSIZE = 40; //Colors public static final Color SKYCOLOR = new Color(111, 213, 239, 255); //Standard: 158, 234, 252, 255 public static final Color SHELFCOLOR = new Color(170,128,86); public static final Color PAGECOLOR = new Color(252,254,196); public static final Color TEXTBROWNCOLOR = new Color(50,20,6); public static final Color TRANSPARENTCOLOR = new Color(0,0,0,0); //Game Character public static final int CHARACTERHEIGHT; public static final int CHARACTERWIDTH; public static final int CHARACTERWIDTHFAIRY; public static final int CHARACTERSPAWNPOSITIONX = 0; //public static final int CHARACTERSPAWNPOSITIONY = 400; //Dynamics of the Game //TODO: Dummywerte �berarbeiten public static final double JUMPCONSTANTY; //in- and decreases the speed of the jump public static final int SPEEDCONSTANT; //start speed of a jump public static final int RUNCONSTANT; //Contants for Kacheln and co. public static final int TILESPERPANEL = 16; public static final int MAXLENGTHOFSCHEME = 160; //unity = tiles //Buttons and Highscore public static final int BUTTONSIZE; public static final int BUTTONDISTANCE; public static final int SCORETEXTSIZE; public static final int SCOREDISTANCERIGHT; public static final int SCOREDISTANCEUP; public static final int SCOREPOINTSFORRUNNING = 1; public static final int SCOREDECREASEAFTERMISTAKE = 15; public static final int SCOREPERCOLLECTABLE = 5; //Layer Konstanten public static final int LAYERFOREGROUNDONE = 1; public static final int LAYERFOREGROUNDTWO = 2; public static final int LAYERINTERACTION = 3; public static final int LAYERBACKGROUND = 4; public static final int LAYERMIDDLEGROUND = 5; //ContainerID Konstanten public static final int CONTAINERCOLLECTABLEID = 0; public static final int CONTAINERILLUSTRATIONBIGID = 1; public static final int CONTAINERILLUSTRATIONSMALLID = 2; public static final int CONTAINERCHARACTERID = 3; public static final int CONTAINERLANDSCAPEID = 4; public static final int CONTAINERCOLLECTABLE; public static final int ENDINGID = 568; // Cursor public static Cursor CURSORNORMAL; public static Cursor CURSORCLICKABLE; // Men�-Farben public static final Color MENUCOLORSELECTED = new Color(178,22,22); static { RESPATH = defaultDirectory(); SCREEN=Toolkit.getDefaultToolkit().getScreenSize(); FULLHD=new Dimension(1920,1080); double x = (double)FULLHD.height/(double)SCREEN.height; double y = (double)FULLHD.width/(double)SCREEN.width; if(x < y){ SCALE=y; WINDOW = new Dimension((int)(FULLHD.width/y),(int)(FULLHD.height/y)); }else{ SCALE=x; WINDOW = new Dimension((int)(FULLHD.width/x),(int)(FULLHD.height/x)); } RASTERSIZE=(int) (RASTERSIZEORG/SCALE); WINDOW.width = 16* RASTERSIZE; CHARACTERHEIGHT=(int)(90/SCALE); CHARACTERWIDTH=(int)(55/SCALE); CHARACTERWIDTHFAIRY = (int)(65/SCALE); JUMPCONSTANTY = 1.0 / SCALE; SPEEDCONSTANT = (int) (20 / SCALE); RUNCONSTANT = (int) (7 / SCALE); BUTTONSIZE = (int)(70 / SCALE); BUTTONDISTANCE = (int)(20 / SCALE); SCORETEXTSIZE = (int)(37 / SCALE); SCOREDISTANCERIGHT = (int)(40 / SCALE); SCOREDISTANCEUP = (int)(37 /SCALE); CONTAINERCOLLECTABLE = (int)(50/SCALE); try { CURSORNORMAL = Toolkit.getDefaultToolkit().createCustomCursor(ImageIO.read(new File(Ressources.RESPATH+"images\\pointer_slice.png")).getSubimage(0, 0, 55, 65), new Point(0,0), "normal"); CURSORCLICKABLE = Toolkit.getDefaultToolkit().createCustomCursor(ImageIO.read(new File(Ressources.RESPATH+"images\\pointer_slice.png")).getSubimage(0, 65, 55, 65), new Point(0,0), "click"); } catch (HeadlessException | IndexOutOfBoundsException | IOException e) { CURSORNORMAL = Cursor.getDefaultCursor(); CURSORCLICKABLE = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR); } } private static String defaultDirectory() { if(System.getenv("development")== null){ String OS = System.getProperty("os.name").toUpperCase(); if (OS.contains("WIN")) return System.getenv("APPDATA")+"\\StoryBear\\"; else if (OS.contains("MAC")) return System.getProperty("user.home") + "/Library/Application/StoryBear/ " + "Support"; else if (OS.contains("NUX")) return System.getProperty("user.home")+"\\StoryBear\\"; return System.getProperty("user.dir")+"\\StoryBear\\"; } return "res\\"; } }