Full screen rectangles

I have a website which uses scroll effects for images with black rectangles with content that pass overtop. Everything is set to full screen width and runs perfectly on Safari on my desktop as well as on a Samsung tablet but on my iPad Mini the rectangles to not reach full page width leaving the other full screen images visible on the left side. I have a Phone version that is working as well. I like the way the desktop version looks on the Samsung tablet and would like to fix this for iPad. Feel free to look at the site to see the problem. www.castincadence.com

Could you please share your .muse file with us to investigate? Please email it to [email protected] If your file is greater than 20MB you can use something like Adobe SendNow or SendThisFile or Dropbox. Please do not forget to mention the link to this forum thread in your e-mail so that we can identify the file.
Thanks,
Sanjit

Similar Messages

  • How can I change the background colour when working on a doc in full screen view (pages)?

    Recently I have been working on docs without the distraction of having to see my desktop around my page file by using the full screen view in pages. I do find the contrast to an all black screen too harsh though and it makes my eyes more tired than seeing the clutter of my desktop around the page. Is there any way I can change the background colour?
    Any help much appreciated!

    When you are in Full screen mode move the cursor up to the top to show the Format bar. Then look to the far right. There you'll see Background  and a rectangle. Click on the rectangle and change the colour.
    For information on Pages download the Pages User Guide from your Pages Help menu.

  • DPS Animation & Full Screen Video functionality failure when viewing mag in Adobe Content Viewer

    HI There,
    Specifically the following issues are occuring when we view the mag through the Adobe Content Viewer on our Ipad.
    All Title animations are not functioning at all (although in the SWF viewer they are working fine)
    Although we select the media to be played full screen when we are setting up the videos in the media panel they won't play full screen, but play perfectly well in the place we put them. - full screen doesnt function in the SWF viewer either.
    The control bars to control playing, stopping, full screen etc also don't appear on our videos we selected.  - doesn't function in the SWF viewer like it should with the control bars working
    In terms of how we set everything up just to confirm we are doing it right.
    For animations.
    1. Select copy to animate
    2. Click on Animations panel, chose the preset fade in, selected the time 1.25seconds, animate from current appearance, fade in.
    For videos
    Our videos are H264 Quicktime videos all 16x9 in ratio
    1. Went to media panel.
    2. Searched for file to insert
    3. Inserted it and sized down the actual physical size of the video to fit in the space we wanted (NB we didn't create a rectangle to put them in or anything)
    4. Chose the poster from file
    5. Selected skin over play full screen & show controller over rollover
    Any help to sort this out would be appreciated.  Thanks so much in advance

    Hi BellaMove:
    For the animations:
    You have to create a document with the size of the animation you want to create and give attributes using the animation panel of indesign.
    Then you export to fla and using Adobe Wallaby pass it to HTML5.
    Then place them by the panel Overlay Creator (Web Content). Using the Content Viewer can not see it on your desktop. You'll have to climb the publication in the ipad to see the result.
    Do not forget to retouch the css. Read this:
    http://digitalpublishing.tumblr.com/post/3898796141/animate-headlines-or-other-things
    Is the simplest way to make simple animations I've found.
    I hope you find it helps

  • Receiving phone call will in full screen mode

    There's an annoying problem with the new continuity function for receiving phone call on Yosemite.
    Let's see i'm watching a video in full screen mode, then i receive a phone call, the video Hide itself (Mission Control) but did not pause.
    So if i answer the call, i still have the sound from the video, and i have to go in Mission Control (yes i'm using shortcut) to show the application to pause it.
    First i would like the video to pause if i answer the call, and if not it disappear without hiding my video.
    I would like to have the same notification has the Messages, when i receive and SMS or iMessage, there's a small notification rectangle that appear over the video and disappear after few second.
    Both Message and FaceTime have the same settings in the Notification System Preference.
    I've tried everything that i know, made some research on the internet with no luck.
    I've tried that on 3 different macs (Mac Pro 2008 with upgraded Bluetooth card, MacBook pro Retina and Mac Mini) using iTunes, Quicktime, VLC and Safari for viewing full screen video.

    Check the software/game settings
    *** Say 'Thanks' with Kudos ***

  • How to disable the FULL SCREEN option in the 'Insert Video and Audio' option

    Hi,
    I've been inserting some MP3's and using an image for pupils to click on to play the sound, the images are 100 pixels by 100 pixels.
    The only issue is that I have the grey rectangle 'Full Screen' box over the picture. This is ideal when I put videos on but not necessary when you have just an MP3. Also I've noticed that the 'Styles' option is greyed out and due to that I can't change the
    colour of the play button.
    I've been inserting MP3's direct from my PC hard drive to the webpage.
    Any help'd be greatly appreciated.

    Hi,
    Per my understanding, you might want to disable the “Full Screen” button and make other customization when there is an audio file in the page.
    By default, when we insert an audio/video file into page via “Insert Video and Audio” button in the ribbon, an OOTB Media Web Part will be added into the page contains
    the file you added, the “Full Screen” button is a part of this Media Web Part.
    In consideration of you might have other requirements on designing the style, I would suggest you create a custom Media Web Part instead which will enable you customize
    the style as you want.
    About creating a custom Media Web Part, you can use the <audio> tag:
    http://www.w3schools.com/html/html5_audio.asp
    http://www.catswhocode.com/blog/mastering-the-html5-audio-property
    http://www.elated.com/articles/html5-audio/
    There are also other powerful JavaScript audio plugins:
    http://kolber.github.io/audiojs/
    http://jplayer.org/
    Best regards,
    Patrick
    Patrick Liang
    TechNet Community Support

  • Help:How to publish a Flash with full screen HTML

    Please, guys, be kind enough to teach me how to publish a
    Flash with full screen size in HTML. I have tried to search the
    board, but so far no luck.
    Originally, I want my .SWF to keep changing its background.
    The solution I got was placing colored stage-sized rectangles on
    the bottom layer. Then I don't want the viewers to see the HTML
    area where I cannot seem to control smooth color changes.
    So, after I construct a Flash file with backdrop-color
    changing by the method I mentioned above, how do I publish it with
    full screen mode in HTML, as you can see
    here? Help!
    Thanks in advance, guys.

    Here's an AS2 and a AS3 version I got from David Stiller
    2 small details you have to add 1 in publish settings set Dimensions to percent 100 100
    and in the html set <style>body {margin: 0; padding: 0}</style>
    // AS2
    import flash.display.BitmapData;
    Stage.align = "TL";
    Stage.scaleMode = "noScale";
    var tile:BitmapData = BitmapData.loadBitmap("tile");
    function fillBG():Void {
      beginBitmapFill(tile);
      moveTo(0, 0);
      lineTo(Stage.width, 0);
      lineTo(Stage.width, Stage.height);
      lineTo(0, Stage.height);
      lineTo(0, 0);
      endFill();
    fillBG();
    var listener:Object = new Object();
    listener.onResize = fillBG;
    Stage.addListener(listener);
    // AS3
    stage.align = StageAlign.TOP_LEFT;
    stage.scaleMode = StageScaleMode.NO_SCALE;
    var bmp:Tile = new Tile(50, 50);
    var tile:BitmapData = new BitmapData(50, 50);
    tile.draw(bmp);
    function fillBG(evt:Event = null):void {
      graphics.beginBitmapFill(tile);
      graphics.moveTo(0, 0);
      graphics.lineTo(stage.stageWidth, 0);
      graphics.lineTo(stage.stageWidth, stage.stageHeight);
      graphics.lineTo(0, stage.stageHeight);
      graphics.lineTo(0, 0);
      graphics.endFill();
    fillBG();
    stage.addEventListener(Event.RESIZE, fillBG);
    David Stiller
    Co-author, ActionScript 3.0 Quick Reference Guide
    http://tinyurl.com/dpsAS3QuickReferenceGuide
    "Luck is the residue of good design."

  • Pictures not loading properly in iPhoto/full screen

    Hello
    When I try to view a picture in full screen, or if I try to edit a picture, it appears to load properly at first, but then, after a few seconds, parts of the picture disappear to be replaced by large, black rectangles. I'm running iPhoto 9 in Mavericks.
    To clarify, my iMac has only 2 GB RAM and the photos are RAW images, so typically between 10-15 MB each. This has always meant that they have taken a little while to appear in full resolution. Generally, when loading an image in full screen, a complete but fuzzy image would appear for a few seconds then suddenly spring to sharp, full resolution life. This is the point at which things now go wrong. Instead of the full resolution version appearing in sharp clarity, parts of the picture are replaced with large areas of black nothingness.
    Any help gratefully received.
    Cheers
    Dave

    If it worked OK in the test library give this a try:
    Starting over from scratch with new library
    Start over with a new library and import the Originals (iPhoto 09 and earlier) or the Masters (iPhoto 11) folder from your original library as follows:
    1. Open the library package like this.
    2. Launch iPhoto with the Option key held down and, when asked, select the option to create a new library.
    3. Drag the subfolders of the Originals (iPhoto 09 and earlier) or the Masters (iPhoto 11) folder from the open iPhoto Library package into the open iPhoto window a few at a time.
    This will create a new library with the same Events (but not necessarily the same Event names) as the original library but will not keep the metadata, albums, books slideshows and other projects.
    Note:  your current library will be left untouched for further attempts at a fix if so desired.
    OT

  • Transparent footer over full-screen slideshow not rendering correctly

    I've placed a white box set to 80% opacitiy behind the text in my footer so the footer shows in front of a full-screen slideshow. It looks perfect in Design mode, but when I preview the page the transparency only renders in the top 20 pixels of the white box. The rest of the transparent white box isn't there, so the text is unreadable in front of the image (see attached images).
    The footer is on the master page on a level above the slideshow, which is on a content page.
    Thanks!

    Hi
    Please check few possibilities :
    - If any composition is used on page , try to check if there is space between border edged of rectangle ( footer) and composition frame.
    - Check if footer overlaps with another page element
    - Try to scale down the text frame so that text frame border does not falls on rectangle border edges.
    - Preview in browser ( use different browsers )
    - resize rectangle ( with opacity )
    If still same, then please let me know the site url.
    Thanks,
    Sanjit

  • Set full screen mode

    Hi everyone
    It may not seem a JMF problem but i am hoping for some help.
    I am just trying to implment full screen on jmf player panel, i tried but the nothing is shown but a black screen
    the following is the code of whole program:-
    import java.awt.*;
    import java.awt.Rectangle;
    import java.awt.Dimension;
    import java.awt.event.*;
    import javax.media.*;
    import javax.media.Player;
    public class MyPlayer extends Frame implements ControllerListener
         private Player player;
         private Panel panel;
         private String [] urls;
         int currentsong = 0;
         MediaLocator ml;
         int flag = 0;
         int videoWidth = 320, videoHeight = 200, controlHeight = 30;
         Dimension size;
         Component visual, control;
         private Dimension dimFrameSizeBeforeFullScreen = null;
         private Window windowFullScreen = null;
         public static void main(String[] args)
              String[] files = { "Khalid_Diana.mpg", "11.mpg", "Taha.mpg" };
              MyPlayer Medialist = new MyPlayer(files );
              Medialist.nextMedia(0);
         public void setFullScreen() {
              System.out.println("Full Screen");
              Dimension dimScreen;
              Dimension dimPrefSize = new Dimension(500,300);
              Rectangle rectVideo;
              panel = new Panel();
              panel.setLayout(new BorderLayout());
              //if (panel == null)
              //     return;
              dimScreen = Toolkit.getDefaultToolkit().getScreenSize();
              System.out.println("Screen Size: " + dimScreen.toString());
              if (windowFullScreen == null)
                   windowFullScreen = new Window(this);
                   windowFullScreen.setLayout(null);
                   windowFullScreen.setBackground(Color.black);
              windowFullScreen.setBounds(0, 0, dimScreen.width, dimScreen.height);
              rectVideo = new Rectangle(0, 0, dimScreen.width, dimScreen.height);
              if ((float)dimPrefSize.width / dimPrefSize.height >= (float)dimScreen.width / dimScreen.height){
                   rectVideo.height = (dimPrefSize.height * dimScreen.width) / dimPrefSize.width;
                   rectVideo.y = (dimScreen.height - rectVideo.height) / 2;
              else{
                   rectVideo.width = (dimPrefSize.width * dimScreen.height) / dimPrefSize.height;
                   rectVideo.x = (dimScreen.width - rectVideo.width) / 2;
              Toolkit.getDefaultToolkit().sync();
              windowFullScreen.add(panel);
              panel.setBounds(rectVideo);
              windowFullScreen.setVisible(true);
              windowFullScreen.validate();
         public MyPlayer(String[] files)
              addWindowListener(new WindowAdapter()
                   public void windowClosing(WindowEvent e)
                        if (player!=null) player.close();
                        System.exit(0);
                   try{
                        Thread.sleep(2000);
                        setFullScreen();
                   }catch (Exception e){
              urls = files;
              //setTitle("Player");
              //panel.setBackground(Color.BLACK);
              //add(panel);
              //setLocation(300,250);
              //setSize(500, 500);
              //setResizable(false);
              //setVisible(true);
         public void nextMedia(){ nextMedia(0);}
         public void nextMedia(int index)
              try
                   ml = new MediaLocator("file:D:/Temp/" + urls[index]);
                   player = Manager.createPlayer(ml);
                   player.addControllerListener(this);
                   player.start();
              catch(Exception x) { x.printStackTrace(); }
         public void controllerUpdate(ControllerEvent ce)
              if (ce instanceof RealizeCompleteEvent)
                   visual=player.getVisualComponent();
                   if (visual !=null)
                      // size=visual.getPreferredSize();
                        //videoWidth=size.width;
                        //videoHeight=size.height;
                        panel.add( "Center", visual);
                   else {
                      // do nothing
                   if ((control=player.getControlPanelComponent())!=null)
                        //controlHeight=control.getPreferredSize().height;
                        //panel.add("South", control);
                   //setSize(videoWidth+10, videoHeight+controlHeight+30);
                   //validate();
                   //repaint();
              else if(ce instanceof EndOfMediaEvent) {
                   player.close();
                   player.deallocate();
                   panel.removeAll();
                   nextMedia(currentsong=(currentsong+1)% urls.length);
              //System.out.println("\n " + urls[currentsong] + " : " + ce.toString() );
              //else if ( ce instanceof FormatChangeEvent){}
    }Thanks in advance

    My problem is solved !
    Following is code of how to set full screen mode:-
    mport java.awt.*;
    //import java.awt.Rectangle;
    import java.awt.Dimension;
    import java.awt.event.*;
    import javax.media.*;
    import javax.media.Player;
    import javax.swing.*;
    public class MyPlayer extends JFrame implements ControllerListener
         private Player player;
         private Panel panel;
         private String [] urls;
         int currentsong = 0;
         MediaLocator ml;
         int flag = 0;
         int videoWidth = 1024, videoHeight = 768, controlHeight = 30;
         Dimension size;
         Component visual, control;
         private Dimension dimFrameSizeBeforeFullScreen = null;
         private Window windowFullScreen = null;
         Container content = getContentPane();
         public static void main(String[] args)
              String[] files = { "Khalid_Diana.mpg", "11.mpg", "Taha.mpg" };
              MyPlayer Medialist = new MyPlayer(files );
              Medialist.nextMedia(0);
         public MyPlayer(String[] files)
              setBackground(Color.BLACK);
              setUndecorated(true);
              Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
              System.out.println("\n\n The Screen DIM: " + screenSize);
              content.setBounds(0, 0, screenSize.width, screenSize.height);
              addWindowListener(new WindowAdapter()
                   public void windowClosing(WindowEvent e)
                        if (player!=null) player.close();
                        System.exit(0);
              urls = files;
              setTitle("Player");
              panel = new Panel();
              panel.setLayout(new BorderLayout());
              panel.setBackground(Color.BLACK);
              add(panel);
              pack();
              //setLocation(300,250);
              setSize(1024, 768);
              //setResizable(false);
              setVisible(true);
         public void nextMedia(){ nextMedia(0);}
         public void nextMedia(int index)
              try
                   ml = new MediaLocator("file:D:/Temp/" + urls[index]);
                   player = Manager.createPlayer(ml);
                   player.addControllerListener(this);
                   player.start();
              catch(Exception x) { x.printStackTrace(); }
         public void controllerUpdate(ControllerEvent ce)
              if (ce instanceof RealizeCompleteEvent)
                   visual=player.getVisualComponent();
                   if (visual !=null)
                       size=visual.getPreferredSize();
                        videoWidth = size.width;
                        videoHeight = size.height;
                        panel.add(visual, BorderLayout.CENTER);
                   else {
                      // do nothing
                   if ((control=player.getControlPanelComponent())!=null)
                        //controlHeight=control.getPreferredSize().height;
                        //panel.add("South", control);
                   validate();
                   repaint();
              else if(ce instanceof EndOfMediaEvent) {
                   player.close();
                   player.deallocate();
                   panel.removeAll();
                   nextMedia(currentsong=(currentsong+1)% urls.length);
              //System.out.println("\n " + urls[currentsong] + " : " + ce.toString() );
              //else if ( ce instanceof FormatChangeEvent){}
    }By the way thanks Stefan for being supportive

  • I want the projected image on the wall to just be the full screen of the slide

    when I plug my mac air into my projector, Keynote display on the wall has Current slide: 1 of 85.  How do i make this go away on the projected image?  This also decreases the size of the image on the wall.  It's not full screen on the wall.

    You may have your primary and secondary displays swapped since what you are seeing on the wall is the Presenter's View which would normally be the one visible to you on your MacBook Air.
    Check your Keynote Preferences Slideshow Settings. At the bottom of the settings list are options to switch the displays.
    Also, some MacBooks have a Function Key that allows the displays to be swapped from the keyboard; on my MacBook Pro it is F7, but that may differ between models. Look for a Function Key with two overlapping rectangles. It is a toggle key for displays.
    Good Luck.

  • Full Screen Slide Show and Full Width Object Odd Behavior

    This look slike a bug to me. It happens in both the shipping version and the new native beta version of Muse.
    I made a full screen slideshow. Put a full, browser-width rectangle at the top of the page for the Nav Bar. Rectangle is 75 pixels deep and touches the top of the browser.
    Preview in browser, all is well.
    Now, put a horizontal menu on top of the rectangle and set it to be also 75 pixels tall. Preview in browser and the full-width horizontal rectangle disappears. Make it not full-width, and it comes back.
    If you can't re-produce this, I can post my page on Business Catalyst or send a file to Adobe.

    By default iWeb resizes your images to no more than 800X600. They playback in a window.
    If you want viewers to see the full size images you want to make a "Photocasting" page.
    http://www.apple.com/ilife/iphoto/features/photocasting.html

  • Full Screen Window on second screen minimizes when windows explorer opens..

    I did implement a full screen window on my second screen (it's a feature needed by my application)
    When I open windows explorer (I'm on windows XP), or when I click in a windows explorer window, the second screen window is minimized, even if explorer pops in the first screen.
    Is there any way to overcome this problem?
    Any help would be appreciated...
    Laurent
    (sample code below)
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JWindow;
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.GraphicsDevice;
    import java.awt.GraphicsEnvironment;
    import java.awt.Window;
    import javax.swing.JButton;
    import javax.swing.JToggleButton;
    import java.awt.Rectangle;
    import java.awt.GridBagLayout;
    import javax.swing.JLabel;
    public class FullScreenTest {
         private JFrame jFrame = null;  //  @jve:decl-index=0:visual-constraint="94,35"
         private JPanel jContentPane = null;
         private JToggleButton jToggleButton = null;
         private JPanel jFSPanel = null;  //  @jve:decl-index=0:visual-constraint="392,37"
         private JLabel jLabel = null;
         private Window window;
          * This method initializes jFrame     
          * @return javax.swing.JFrame     
         private JFrame getJFrame() {
              if (jFrame == null) {
                   jFrame = new JFrame();
                   jFrame.setSize(new Dimension(474, 105));
                   jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                   jFrame.setContentPane(getJContentPane());
              return jFrame;
          * This method initializes jContentPane     
          * @return javax.swing.JPanel     
         private JPanel getJContentPane() {
              if (jContentPane == null) {
                   jContentPane = new JPanel();
                   jContentPane.setLayout(null);
                   jContentPane.add(getJToggleButton(), null);
              return jContentPane;
          * This method initializes jToggleButton     
          * @return javax.swing.JToggleButton     
         private JToggleButton getJToggleButton() {
              if (jToggleButton == null) {
                   jToggleButton = new JToggleButton();
                   jToggleButton.setBounds(new Rectangle(50, 23, 360, 28));
                   jToggleButton.setText("Show Full Screen Window on 2nd screen");
                   jToggleButton.addActionListener(new java.awt.event.ActionListener() {
                        public void actionPerformed(java.awt.event.ActionEvent e) {
                             showFullScreenWindow(jToggleButton.isSelected());
              return jToggleButton;
         protected void showFullScreenWindow(boolean b) {
              if(window==null){
                   window = initFullScreenWindow();
              window.setVisible(b);
         private Window initFullScreenWindow() {
              GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
              GraphicsDevice[] gds = ge.getScreenDevices();
              GraphicsDevice gd = gds[1];
              JWindow window = new JWindow(gd.getDefaultConfiguration());
              window.setContentPane(getJFSPanel());
              gd.setFullScreenWindow(window);
              return window;
          * This method initializes jFSPanel     
          * @return javax.swing.JPanel     
         private JPanel getJFSPanel() {
              if (jFSPanel == null) {
                   jLabel = new JLabel();
                   jLabel.setBounds(new Rectangle(18, 19, 500, 66));
                   jLabel.setText("Hello ! Now, juste open windows explorer and see what happens...");
                   jFSPanel = new JPanel();
                   jFSPanel.setLayout(null);
                   jFSPanel.setSize(new Dimension(500, 107));
                   jFSPanel.add(jLabel, null);
              return jFSPanel;
          * @param args
         public static void main(String[] args) {
              FullScreenTest me = new FullScreenTest();
              me.getJFrame().setVisible(true);
    }

    I suppose that you have this exception when the second window is initiated...
    Excuse my remark, it may be perfectly stupid : do you have two screens? The full screen window is supposed to show itself on the user's second screen.
    Or maybe the screens are not handled the same way on each computer? (I'm not used at developping applications working on two screens...)
    thanks for your help
    LK

  • How to get full screen width and height  when using CustomItem not canvas ?

    hi..
    I have to append one Textfield and a CustomItem ( as canvas) for painting on a single form.
    I have to draw a rectangle in CustomItem in full Screen width of mobile .
    So I have to know the screen width of mobile for drawing a rectangle.
    Please Suggest me. how can I do that ?
    Thanks

    Did you check javax.microedition.lcdui.Form.getWidth() and javax.microedition.lcdui.Form.getHeight() methods?
    Atul

  • How do I get a menu or header to span accross full screen?

    I want my menu and header colour to fill full screen so that when the site is viewed on a large/smaller screen it spans accross the screen. I have a browser fill image which does this, but my header and menu are not expanding full screen. I have pulled the menu bar colour and the header area to the edge of the browser/page and it still stays a fixed size.
    Please let me know what I'm doing wrong? or how I do this.
    thanks

    Menu Widgets can't span 100% of the browser width - the edge snapping thing does not work for the Menu widget (among others).
    However, you can place a rectangle behind the menu that can span across the browser width, and its fill image can also fill the browser width. You can use that rectangle and its fill as the header background and keep the menu background and stroke to none so that its bounds are not seen. That way you will be able to fake a browser wide menu with items centered on the page.
    Cheers,
    Vikas

  • JDK 1.4.2 and full-screen mode

    Hi all,
    I'm messing around with a 2D-elite clone using Java 1.4 full-screen mode. After a few hours of work I am happily zapping asteroids and aliens at a zippy 140 FPS.
    I then switch from JDK 1.4.0_01 to 1.4.2_01 in the hope of getting some extra speed. Without making any other changes to the code, things suddenly start crawling along at <30 FPS.
    I am using BufferStrategy in combination with a VolatileImage to draw everything on. Did I miss any important changes in the newest release of the JDK or am I doing something fundamentally wrong?
    Raf

    Hi Abuse,
    Thanks for answering. First of all, my speed calculations are a bit crufty. In my main thread, I do a System.currentTimeMillis() every 1000th call. I consider 10^6 / (this time in ms - last time in ms) to be the speed in FPS. It's probably wildly off, but the difference in speed between the two JDKs is noticeable even without the numbers.
    Posting all of the code is going to be a bit difficult because there's quite a few classes in the project. However, I'll try to isolate the relevant code below.
    At this point, I'm not entirely convinced that the drawing is the problem. I'm using a shoddy integrated video card which may be causing the issues, but even if I only draw the background starfield I see a significant drop in speed. I'll try to disable some code here and there in the hope of finding something more specific.
    I'm playing some music in the background and there is rather a lot of collision-handling code going on, maybe that's the bottle-neck. When you bump into stuff, the trajectory of your ship and whatever you rammed is altered depending on weight, velocity and angle. It's a lot of fun to watch but still quite buggy at this point. (I've got a planet on-screen which acts rather like a beach-ball when I ram it).
    Anyhow, here's the rendering code:
    This class takes care of the initialization of the full-screen mode.
    Actual drawing is done in the Level class below.
    public class Main implements Runnable {
        private long lastTime = System.currentTimeMillis();
        double frameCount = 0;
        public static final int BUFFER_COUNT = 1;
        private JFrame frame;
        BufferStrategy bufferStrategy;
        GraphicsDevice device;
        private BigScreen screen;
        private static final int DRAW_DELAY = 5;
        public static void main(String[] args) {
            Main main = new Main();
        public Main() {
            this.initializeSettings();
            this.initializeGUI();
            new Thread(this).start();
            new Thread(new HouseKeeping()).start();
        private void initializeSettings() {
            Tools.loadEntityTypes();
            SoundManager.getHandle().playMusic();
        private void initializeGUI() {
            GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
            device = env.getDefaultScreenDevice();
            GraphicsConfiguration gc = device.getDefaultConfiguration();
            frame = new JFrame(gc);
            frame.setTitle("Elite 2D");
            frame.setUndecorated(true);
            frame.setResizable(false);
            frame.setIgnoreRepaint(true);
            frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
            device.setFullScreenWindow(frame);
            Level.getHandle().setDimensions((int) device.getDefaultConfiguration().getBounds().getWidth(),
                    (int) device.getDefaultConfiguration().getBounds().getHeight());
            BufferCapabilities bc = new BufferCapabilities(new ImageCapabilities(true),
                    new ImageCapabilities(true),
                    BufferCapabilities.FlipContents.BACKGROUND
            try {
                frame.createBufferStrategy(BUFFER_COUNT, bc);
            } catch (AWTException e) {
                e.printStackTrace();
            bufferStrategy = frame.getBufferStrategy();
            int width = device.getDisplayMode().getWidth();
            int height = device.getDisplayMode().getHeight();
            screen = new BigScreen(width, height, gc.createCompatibleVolatileImage(width, height));
            frame.getContentPane().add(screen);
            frame.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                public void windowDeiconified(WindowEvent e) {
                    GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
                    device = env.getDefaultScreenDevice();
                    GraphicsConfiguration gc = device.getDefaultConfiguration();
                    device.setFullScreenWindow(null);
                    device.setFullScreenWindow(frame);
                    BufferCapabilities bc = new BufferCapabilities(new ImageCapabilities(true),
                            new ImageCapabilities(true),
                            BufferCapabilities.FlipContents.COPIED
                    try {
                        frame.createBufferStrategy(BUFFER_COUNT, bc);
                    } catch (AWTException awt) {
                        awt.printStackTrace();
            // Set the cursor to a transparent image
            Image image = Toolkit.getDefaultToolkit().createImage(
                    new MemoryImageSource(16, 16, new int[16 * 16], 0, 16));
            Cursor transparentCursor = Toolkit.getDefaultToolkit().createCustomCursor(image,
                    new Point(0, 0), "invisiblecursor");
            frame.setCursor(transparentCursor);
            screen.setFocusable(false);
            frame.addKeyListener(getKeyListener());
        public KeyAdapter getKeyListener() {
            return new KeyAdapter() {
                public void keyPressed(KeyEvent e) {
                    Level.getHandle().getPlayer().handleKeyUp(e.getKeyCode());
                public void keyReleased(KeyEvent e) {
                    Level.getHandle().getPlayer().handleKeyDown(e.getKeyCode());
        public void run() {
            while (true) {
                if (frameCount++ % 1000 == 0) {
                    long thisTime = System.currentTimeMillis();
                    // aantal ms voor 1000 frames
                    // 1000 * (aantal frames / seconde)
                    double fps = thisTime - lastTime;
                    lastTime = thisTime;
                    Level.getHandle().getConsole().addConsoleMessage("FPS : " + 1000000 / fps);
                Graphics g = bufferStrategy.getDrawGraphics();
                screen.paintSurroundings();
                g.drawImage(screen.background, 0, 0, null);
                g.dispose();
                bufferStrategy.show();
                try {
                    Thread.sleep(DRAW_DELAY);
                } catch (InterruptedException e) {
                } catch (IllegalStateException i) {
        public Rectangle getScreenDimensions() {
            return frame.getGraphicsConfiguration().getBounds();
        public void exitFullScreen() {
            device.setFullScreenWindow(null);
    } // End class Main// The rendering-code in Level is done in the updateStatus-method.
    // Once again, rendering is delegated to the current SolarSystem class.
    public class Level {
        private static Level handle;
        public SolarSystem currentSolarSystem;
        private Console console;
        private int width, height;
        private Ship player;
        // All ships within this radius of the player get to act
        private static final int ACTION_RADIUS = 5000;
        // All entities within this radius of the player qualify for drawing
        private static final int VISIBILITY_RADIUS = 2000;
        private Level() {
            console = new Console();
            currentSolarSystem = new SolarSystem();
            Equipment[] weapons = new Equipment[3];
            weapons[0] = new BeamWeapon(Color.red, 1000, 0.02, 0.1);
            weapons[1] = new PulseWeapon(Color.blue, 500, 0, 400, 1);
            weapons[2] = new MissileLauncher();
            player = new Ship(100, 100, weapons, currentSolarSystem);
            currentSolarSystem.addEntity(new Entity(1000, 1000, Tools.getEntityType("planet"), currentSolarSystem));
            for (int i = 0; i < 20; i++) {
                Entity asteroid = Tools.getEntityType("asteroid").createEntity(200 * i, 0, currentSolarSystem);
                asteroid.setSpeed(Tools.getRandom(asteroid.getMaxSpeed()));
                asteroid.setAccelerationAngle(Tools.getRandom(Tools.TWOPI));
                currentSolarSystem.addEntity(asteroid);
            for (int i = 0; i < 5; i++) {
                currentSolarSystem.addEntity(Tools.getEntityType("enemy").createEntity(
                        Tools.getRandom(-1000, 1000), Tools.getRandom(-1000, 1000), currentSolarSystem));
        public SolarSystem getActiveSolarSystem() {
            return this.currentSolarSystem;
        public Console getConsole() {
            return this.console;
        public void setDimensions(int x, int y) {
            this.width = x;
            this.height = y;
        public int getWidth() {
            return this.width;
        public int getHeight() {
            return this.height;
        public static Level getHandle() {
            if (handle == null) {
                handle = new Level();
            return handle;
        public ArrayList getEntitiesInRectangle(int x1, int y1, int w1, int h1) {
            ArrayList intersects = new ArrayList();
            for (int i = 0; i < currentSolarSystem.getEntities().size(); i++) {
                Entity e = (Entity) currentSolarSystem.getEntities().get(i);
                if ((x1 + w1 > e.getX()) && (e.getX() + e.getWidth() > x1) && (y1 + h1 > e.getHeight())
                        && (e.getY() + e.getHeight() > y1)) {
                    intersects.add(e);
            return intersects;
        public ArrayList getEntitiesInLine(double x1, double y1, double x2, double y2) {
            ArrayList intersects = new ArrayList();
            Line2D line = new Line2D.Double(x1, y1, x2, y2);
            for (int i = 0; i < currentSolarSystem.getEntities().size(); i++) {
                Entity e = (Entity) currentSolarSystem.getEntities().get(i);
                // System.out.println(e.getBoundingShape() + " vs " + x1 + "x" + y1 + ", " + x2 + "x" + y2);
                if (line.intersects(e.getBoundingShape().getBounds2D())) {
                    intersects.add(e);
            return intersects;
        public Entity getNearestEntityToLineOrigin(double x1, double y1, double x2, double y2) {
            double closestIndex = 0;
            Entity closestEntity = null;
            Line2D line = new Line2D.Double(x1, y1, x2, y2);
            for (int i = 0; i < currentSolarSystem.getEntities().size(); i++) {
                Entity e = (Entity) currentSolarSystem.getEntities().get(i);
                // System.out.println(e.getBoundingShape() + " vs " + x1 + "x" + y1 + ", " + x2 + "x" + y2);
                if (line.intersects(e.getBoundingShape().getBounds2D())) {
                    double distance = Tools.getDistance(x1, y1, e);
                    if (closestEntity == null) {
                        closestEntity = e;
                        closestIndex = distance;
                    } else if (distance < closestIndex) {
                        closestEntity = e;
            return closestEntity;
        public Ship getPlayer() {
            return player;
        public void updateStatus(Graphics g, int width, int height) {
            getActiveSolarSystem().updateStatus(g, getPlayer(), width, height);
            getConsole().showConsoleMessages(g);
    }Draws a starfield and all visible entities in sight. So far I'm just
    drawing all entities in the solar system. Seems to be faster than
    figuring out whether objects are near the player for <100 objects.
    public class SolarSystem {
        private static final int BIG_STARS = 20;
        private static final int MAX_STARS = 1000;
        private static final int STAR_AREA = 1400;
        private int[][] stars;
        private ArrayList entities;
        private ArrayList explosions;
        public SolarSystem() {
            entities = new ArrayList();
            explosions = new ArrayList();
            this.initializeStarField();
        public ArrayList getEntities() {
            return entities;
        public ArrayList getExplosions() {
            return explosions;
        public void addEntity(Entity e) {
            entities.add(e);
        public void removeEntity(Entity e) {
            entities.remove(e);
        public void addExplosion(int x, int y, int size, int max) {
            // System.out.println("Adding explosion at " + x + " " + y);
            explosions.add(new Explosion(x, y, size, max));
        public void updateStatus(Graphics g, Ship player, int width, int height) {
            this.pollEntities(player);
            this.drawScene(g, player, width, height);
        private void drawScene(Graphics g, Ship player, int width, int height) {
            // Make sure nothing extraneous gets drawn
            g.clipRect(0, 0, width, height);
            // Clear the surface and set the background
            g.setColor(Color.black);
            g.fillRect(0, 0, width, height);
            // Draw explosions & remove from the buffer if needed
            Explosion[] expl = (Explosion[]) getExplosions().toArray(new Explosion[explosions.size()]);
            int centerX = (int) player.getX();
            int centerY = (int) player.getY();
            int widthOffset = centerX + width / 2;
            int heightOffset = centerY + height / 2;
            this.drawStarField(g, player);
            for (int i = expl.length - 1; i >= 0; i--) {
                Explosion ex = expl;
    g.setColor(new Color(Math.max(255 - ex.size, 0), 0, 0));
    g.drawOval(ex.x - widthOffset, ex.y - heightOffset, ex.size, ex.size);
    if (ex.size < ex.max) {
    ex.size += 2;
    ex.x--;
    ex.y--;
    explosions.set(i, ex);
    } else {
    explosions.remove(i);
    // todo - can we re-use the active entities table here?
    Entity[] entities = getVisibleEntities(player);
    for (int i = 0; i < entities.length; i++) {
    entities[i].drawEntity((int) (entities[i].getX() - player.getX() + width / 2),
    (int) (entities[i].getY() - player.getY() + height / 2), g);
    player.drawEntity(width / 2, height / 2, g, entities, width, height);
    private void drawStarField(Graphics g, Ship player) {
    g.setColor(new Color(255, 255, 255));
    int starX = ((int) player.getX() % STAR_AREA);
    int starY = ((int) player.getY() % STAR_AREA);
    for (int i = 0; i < BIG_STARS; i++) {
    g.fillOval((stars[i][0] - starX) % STAR_AREA, (stars[i][1] - starY) % STAR_AREA, 3, 3);
    for (int i = BIG_STARS; i < MAX_STARS; i++) {
    g.drawLine((stars[i][0] - starX) % STAR_AREA, (stars[i][1] - starY) % STAR_AREA,
    (stars[i][0] - starX) % STAR_AREA, (stars[i][1] - starY) % STAR_AREA);
    * Includes the player as an active entity
    * @param player
    * @return
    private Entity[] getActiveEntities(Ship player) {
    Entity[] activeEntities = (Entity[]) entities.toArray(new Entity[entities.size() + 1]);
    activeEntities[activeEntities.length - 1] = player;
    return activeEntities;
    private void pollEntities(Ship player) {
    this.purgeDestroyedObjects();
    Entity[] activeEntities = this.getActiveEntities(player);
    for (int i = 0; i < activeEntities.length; i++) {
    activeEntities[i].resolveAction();
    // todo - Handle gravitational pull
    //if (activeEntities[i].hasGravitationalPull()) {
    // Handle collisions
    for (int i = activeEntities.length - 1; i >= 0; i--) {
    if (activeEntities[i] != null && !activeEntities[i].isTransparent() && !activeEntities[i].isDestroyed()) {
    for (int j = i - 1; j >= 0; j--) {
    if (activeEntities[i] != null && activeEntities[j] != null &&
    !activeEntities[j].isTransparent() && Tools.entitiesCollide(activeEntities[i], activeEntities[j])) {
    handleCollision(activeEntities[i], activeEntities[j]);
    // todo - seems redundant - remove by avoiding player ?
    if (activeEntities[i].isDestroyed()) {
    // System.out.println("Removing " + activeEntities[i]);
    activeEntities[i] = null;
    if (activeEntities[j].isDestroyed()) {
    // System.out.println("Removing " + activeEntities[j]);
    activeEntities[j] = null;
    private void purgeDestroyedObjects() {
    for (int i = entities.size() - 1; i >= 0; i--) {
    if (((Entity) entities.get(i)).isDestroyed()) {
    entities.remove(i);
    private void handleCollision(Entity one, Entity two) {
    // Base damage is a factor of total speed & angle.
    double collisionFactor = Math.abs(Math.sin((one.getAccelerationAngle() - two.getAccelerationAngle()) / 2));
    double explosiveDamage = 0;
    if (one.explodesOnImpact()) {
    one.onDestroy();
    explosiveDamage += one.getExplosiveDamage();
    if (two.explodesOnImpact()) {
    two.onDestroy();
    explosiveDamage += two.getExplosiveDamage();
    one.applyDamage(explosiveDamage + (collisionFactor * two.getMass() / one.getMass()));
    two.applyDamage(explosiveDamage + (collisionFactor * one.getMass() / two.getMass()));
    // Introducing the FACTOR-variable also causes stickiness (two objects glued together after collision)
    // FACTOR determines how much of the energy is transfered from entity 1 to 2, and how much remains
    double FACTOR = 0.9;
    // Don't delete v1 and a1!
    double v1 = one.getSpeed();
    double a1 = one.getAccelerationAngle();
    double spinFactor = Math.cos(one.getAccelerationAngle() - two.getAccelerationAngle());
    if (!one.isDestroyed()) {
    one.setSpeed(two.getSpeed() * FACTOR + one.getSpeed() * (1 - FACTOR));
    one.setAccelerationAngle(two.getAccelerationAngle());
    one.applySpin(spinFactor);
    if (!two.isDestroyed()) {
    two.setSpeed(v1 * FACTOR + two.getSpeed() * (1 - FACTOR));
    two.setAccelerationAngle(a1);
    two.applySpin(-spinFactor);
    public Entity[] getVisibleEntities(Entity center) {
    return (Entity[]) entities.toArray(new Entity[entities.size()]);
    private void initializeStarField() {
    stars = new int[MAX_STARS][2];
    for (int i = 0; i < MAX_STARS; i++) {
    setStar(i);
    private void setStar(int index) {
    stars[index][0] = Tools.getRandom(STAR_AREA) + STAR_AREA;
    stars[index][1] = Tools.getRandom(STAR_AREA) + STAR_AREA;
    Finally, the Entity class. All in-game objects extend Entity. Rendering is done in the drawEntity-method. Each Entity has an EntityType which contains parameters like the weight, maximum acceleration and turn rate etc... Images are also stored in EntityType.
    public class Entity {
        public static final double TWOPI = Math.PI * 2;
        protected double speed;
        protected double turnRate;
        protected double x, y;
        protected double heading;
        protected double accelerationAngle;
        protected boolean destroyed = false;
        protected double energy;
        protected EntityType type;
        private Equipment activeEquipment;
        private SolarSystem solar;
        public Entity(int xPos, int yPos, EntityType type, SolarSystem solar) {
            this.x = xPos;
            this.y = yPos;
            this.type = type;
            this.energy = this.getEntityType().getEnergy();
            this.solar = solar;
         * Basic entity drawing function doesn't taken rotation into account
        public void drawEntity(int xLocation, int yLocation, Graphics g) {
            if (this.getActiveEquipment() != null && this.getActiveEquipment().isActive()) {
                this.getActiveEquipment().applyEffect(this, g);
    //        Level.getHandle().getConsole().addConsoleMessage(xLocation + "x" + yLocation);
            g.drawImage(getIcon(), xLocation, yLocation, null);
        public Shape getBoundingShape() {
            return new Rectangle((int) getX(), (int) getY(), getWidth(), getHeight());

Maybe you are looking for

  • How to add the Drawings while creating Inspection Plan

    Dear all, As we can attach the files in QM01 - Create Notofication thru "Choose an Object" . In similiar way can  "Choose an Object" object can be attached to Insp. plan or any other way to attach drawing.

  • Erro ao liberar request

    Boa tarde Srs., Estou tentando liberar uma request em um ambiente de teste mas estou recebendo a seguinte mensagem: -Error in pre-export methods for request DEVK900008 Message no. PU238 -Diagnosis There was an error during export pre-processing. The

  • IPhone 4 not recognized in iTunes for Windows 8.1

    I am using Windows 8.1 and the computer recognizes the device but not iTunes. I have tried deleting and re-installing iTunes as well as the device manager, but neither solution has fixed my problem. Any help is appreciated!

  • I am getting error messages installing update for CS6 Design & Web Premium

    I am getting error messages after trying to install an update for CS6 Design & Web Premium on my Imac running OS 10.6.8. The errors are all U44M1I215 with one U44M1D207 for Fireworks. Please assist.   dand45036 Here are all the errors. DPS Desktop To

  • APPLE: We Need An Upgrade Price for Logic Pro X!!!

    There has always been an Upgrade path for Logic Pro. Where is it???