package main;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import Enemy.EnemySprite;
import Enemy.FactoryEnemySprite;
import Enemy.Grandma;
import LevelC.Level01;
import MainMenu.Mainmenu;
import tutorial.game.GamePanel;
import tutorial.map.MapDisplay;
import tutorial.player.*;
import tutorial.sprite.Sprite;
import tutorial.sprite.SpriteLib;
import tutorial.sound.MyClip;
import tutorial.sound.SoundLib;
public class ScrollGame extends GamePanel {
private static final long serialVersionUID = 1L;
private SpriteLib lib;
SoundLib SoundL;
Level01 L01;
Car car;
Weapon W;
MyClip clip;
BufferedImage startscreen;
public static void main(String[] args) {
new ScrollGame(800,600);
}
public ScrollGame(int w, int h) {
super(w, h);
}
@Override
protected void doInitializations() {
setLib(SpriteLib.getInstance());
startscreen = getLib().getSprite("pics/startscreen.gif");
car = new Car(getLib().getSprite("pics/Airplane.gif",3, 1),400,300,200,this);
L01=new Level01(this);
W = new Weapon(getLib().getSprite("pics/W1.gif",1,1),200,200,200,this,50,6);
}
@Override
protected void checkKeys() {
getMap().moveMap(isUp(),down);
car.setrotate(left,right);
car.shoot(shoot, W);
}
@Override
protected void doLogic() {
car.doLogic(delta);
L01.doLogic(delta);
W.doLogic(delta);
}
@Override
protected void moveObjects() {
L01.getMap().moveVisibleRectangle(delta);
}
@Override
public void render(Graphics g) {
g.setColor(Color.red);
if(isStarted()){
car.drawObjects(g);
L01.drawLvl(g);
W.drawObjects(g);
g.drawString("Angle: "+Long.toString(car.getAngle()),100,100);
g.drawString("Hspeed: "+Long.toString(L01.getMap().getHspeed()),200,100);
g.drawString("Vspeed: "+Long.toString(L01.getMap().getVspeed()),300,100);
}else{
g.drawImage(startscreen, 0, 0, this);
}
g.drawString(Long.toString(getFps()),20,20);
}
public Car getPlayer(){
return car;
}
public SpriteLib getSpritelib(){
return getLib();
}
//hier ist wohl was falsch
public MapDisplay getMap(){
return L01.getMap();
}
public Weapon getWeapon(){
return W;
}
public EnemySprite getEnemys(int i){
return null;
}
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_UP){
setUp(true);
}
if(e.getKeyCode()==KeyEvent.VK_DOWN){
down = true;
}
if(e.getKeyCode()==KeyEvent.VK_LEFT){
left = true;
}
if(e.getKeyCode()==KeyEvent.VK_RIGHT){
right = true;
}
if(e.getKeyCode()==KeyEvent.VK_A){
shoot = true;
}
}
public void keyReleased(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_UP){
setUp(false);
}
if(e.getKeyCode()==KeyEvent.VK_DOWN){
down = false;
}
if(e.getKeyCode()==KeyEvent.VK_LEFT){
left = false;
}
if(e.getKeyCode()==KeyEvent.VK_RIGHT){
right = false;
}
if(e.getKeyCode()==KeyEvent.VK_A){
shoot = false;
}
if(e.getKeyCode()==KeyEvent.VK_ENTER){
if(!isStarted()){
setStarted(true);
doInitializations();
}
}
if(e.getKeyCode()==KeyEvent.VK_ESCAPE){
if(isStarted()){
stopGame();
}else{
setStarted(false);
System.exit(0);
}
}
}
public void setLib(SpriteLib lib) {
this.lib = lib;
}
public SpriteLib getLib() {
return lib;
}
public Sprite getGrandma(int i) {
// TODO Auto-generated method stub
return null;
}
}