Search Results

Search found 30524 results on 1221 pages for 'display errors'.

Page 411/1221 | < Previous Page | 407 408 409 410 411 412 413 414 415 416 417 418  | Next Page >

  • Building lirc package from source with patches

    - by joystick
    I'd like to build latest lirc package for 12.04 with two patches from http://bit.ly/17779VW to make USB Infrared toy v2 work: Running sudo apt-build source lirc gave me ? build ll total 960 drwxr-xr-x 10 root root 4096 Nov 5 07:07 lirc-0.9.0 -rw-r--r-- 1 root root 113909 May 5 2011 lirc_0.9.0-0ubuntu1.debian.tar.gz -rw-r--r-- 1 root root 1553 May 5 2011 lirc_0.9.0-0ubuntu1.dsc -rw-r--r-- 1 root root 857286 May 5 2011 lirc_0.9.0.orig.tar.bz2 in /var/cache/apt-build/build. Running sudo apt-build build-source lirc then gave me Some error occured building package which is not really informative. I have successfully built patched lirc from source but now I would like to get a deb package. Where can I look for this 'some errors' in detail? Thank you, Alexei

    Read the article

  • java MainServer gives java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0

    - by Paradox
    Compiling is easy but when using java to run the programs, it gives Exception found. I am using Ubuntu 12.04 without internet connections. Also, installed Oracle JDK7 and JRE7. Also did the update-alternatives command on java, javac and javaws. Changed the machine java in /etc/profiles. PATH is pointing to oracle java folder. I did many searches on Google about this topic but each time jdk and jre version are different. Also check version of jdk and jre using java -version and javac - version. Both of them are the same. The system also contains OpenJdk6 and OpenJdk7. So, how do I remove these errors?

    Read the article

  • Run Blustacks or Android to play clash of clans on ubuntu 13.4+

    - by Joe Hanus
    I am trying to get rid of the need to dual boot Ubuntu and windows and one thing I can do with windows I can not do with Linux is to run Bluestacks to play android games my favourite one ow is clash of clans. I have tried different VM's to run android emulators and virtual box but nothing works for clash of clans I can download the game to the VM from Google Play Store but it fails to open If Ubuntu can fix this by making a way to successfully install Bluestacks on Ubuntu or Android with Virtual box with out loading errors of all apps/games it would help the Linux community to become less dependant of Windows. Thanks in advance! go Ubuntu!

    Read the article

  • IIS 6 405 error when POSTing through I-Frame

    - by Angelo R.
    Before I begin, I must add that I am more of a programmer, so please be patient :p I have a 2003 server running IIS 6. I am trying to create a Facebook application that accesses a url on my server through an I-Frame. However, Facebook is trying to send some data via POST to my page. I assumed it wouldn't be a problem since the page is .html, but I keep receiving 405 errors (Incorrect Verbs) when trying to access it. Since these are generated by IIS, I had hoped there would be a way for me to allow html files to accept POST. However, after a lot of Googling, it seems like that isn't possible, so instead I figure I can convert the page to an aspx one, and that should work... however I am running in to the same issue. I thought that simply adding POST to the .aspx entry in Application Extension Mapping would work, but it still doesn't. Does anyone know what the problem could potentially be?

    Read the article

  • How can I convert .mp4 files to .3gp using ffmpeg?

    - by harisibrahimkv
    I would like to download a few videos from youtube and convert them to 3gp so that I can play them on my phone. I would like to know how this can be done using ffmpeg. I tried the various results on the net only to get the following errors. I used: ffmpeg -i dil.mp4 -sameq -ab 64k -ar 44100 dilenada.3gp I got: Unsupported codec for output stream #0.1 Seems stream 0 codec frame rate differs from container frame rate: 2000.00 (2000/1) - 29.92 (359/12) I used: ffmpeg -y -i dil.mp4 -r 20 -s 352x288 -b 400k -acodec libfaac -ac 1 -ar 2000 -ab 24k dilenada.3gp I got: Seems stream 0 codec frame rate differs from container frame rate: 2000.00 (2000/1) -> 29.92 (359/12) Unknown encoder 'libfaac' What am I doing wrong?

    Read the article

  • GLIBC_2.8 not found

    - by Thomas Nilsson
    As a newbie I seem to have messed up my upgrade leaving my system in a very unstable state. I attempted an upgrade from 8.04LTS which ended in an error about libc and kernel upgrades. I tried to upgrade the kernel but am now unsure if that worked, because when I retried my dist-upgrade there was a lot of errors about pre-dependencies and leaving packages un-configured. Now I have a system that answers almost every command with: /lib/libc.so.6: version `GLIBC_2.8' not found (required by /lib/libselinux.so.1) I probably should try a complete re-installation, but I'm investigating if there is any possibility of getting a working glibc so that I at least can have some commands working to ensure that my backups are recent etc. before doing the clean install. not even 'ls' works without saying "glibc_2.8 not found".

    Read the article

  • My error with upgrading 4.0 to 4.2- What NOT to do...

    - by Steve Tunstall
    Last week, I was helping a client upgrade from the 2011.1.4.0 code to the newest 2011.1.4.2 code. We downloaded the 4.2 update from MOS, upload and unpacked it on both controllers, and upgraded one of the controllers in the cluster with no issues at all. As this was a brand-new system with no networking or pools made on it yet, there were not any resources to fail back and forth between the controllers. Each controller had it's own, private, management interface (igb0 and igb1) and that's it. So we took controller 1 as the passive controller and upgraded it first. The first controller came back up with no issues and was now on the 4.2 code. Great. We then did a takeover on controller 1, making it the active head (although there were no resources for it to take), and then proceeded to upgrade controller 2. Upon upgrading the second controller, we ran the health check with no issues. We then ran the update and it ran and rebooted normally. However, something strange then happened. It took longer than normal to come back up, and when it did, we got the "cluster controllers on different code" error message that one gets when the two controllers of a cluster are running different code. But we just upgraded the second controller to 4.2, so they should have been the same, right??? Going into the Maintenance-->System screen of controller 2, we saw something very strange. The "current version" was still on 4.0, and the 4.2 code was there but was in the "previous" state with the rollback icon, as if it was the OLDER code and not the newer code. I have never seen this happen before. I would have thought it was a bad 4.2 code file, but it worked just fine with controller 1, so I don't think that was it. Other than the fact the code did not update, there was nothing else going on with this system. It had no yellow lights, no errors in the Problems section, and no errors in any of the logs. It was just out of the box a few hours ago, and didn't even have a storage pool yet. So.... We deleted the 4.2 code, uploaded it from scratch, ran the health check, and ran the upgrade again. once again, it seemed to go great, rebooted, and came back up to the same issue, where it came to 4.0 instead of 4.2. See the picture below.... HERE IS WHERE I MADE A BIG MISTAKE.... I SHOULD have instantly called support and opened a Sev 2 ticket. They could have done a shared shell and gotten the correct Fishwork engineer to look at the files and the code and determine what file was messed up and fixed it. The system was up and working just fine, it was just on an older code version, not really a huge problem at all. Instead, I went ahead and clicked the "Rollback" icon, thinking that the system would rollback to the 4.2 code.   Ouch... What happened was that the system said, "Fine, I will delete the 4.0 code and boot to your 4.2 code"... Which was stupid on my part because something was wrong with the 4.2 code file here and the 4.0 was just fine.  So now the system could not boot at all, and the 4.0 code was completely missing from the system, and even a high-level Fishworks engineer could not help us. I had messed it up good. We could only get to the ILOM, and I had to re-image the system from scratch using a hard-to-get-and-use FishStick USB drive. These are tightly controlled and difficult to get, almost always handcuffed to an engineer who will drive out to re-image a system. This took another day of my client's time.  So.... If you see a "previous version" of your system code which is actually a version higher than the current version... DO NOT ROLL IT BACK.... It did not upgrade for a very good reason. In my case, after the system was re-imaged to a code level just 3 back, we once again tried the same 4.2 code update and it worked perfectly the first time and is now great and stable.  Lesson learned.  By the way, our buddy Ryan Matthews wanted to point out the best practice and supported way of performing an upgrade of an active/active ZFSSA, where both controllers are doing some of the work. These steps would not have helpped me for the above issue, but it's important to follow the correct proceedure when doing an upgrade. 1) Upload software to both controllers and wait for it to unpack 2) On controller "A" navigate to configuration/cluster and click "takeover" 3) Wait for controller "B" to finish restarting, then login to it, navigate to maintenance/system, and roll forward to the new software. 4) Wait for controller "B" to apply the update and finish rebooting 5) Login to controller "B", navigate to configuration/cluster and click "takeover" 6) Wait for controller "A" to finish restarting, then login to it, navigate to maintenance/system, and roll forward to the new software. 7) Wait for controller "A" to apply the update and finish rebooting 8) Login to controller "B", navigate to configuration/cluster and click "failback"

    Read the article

  • How can I figure out why Suspend sometimes fails?

    - by Isaac
    Something is causing suspend crash occasionally. When it does crash, the system freezes with a black screen and stays on, not suspending. This makes me have to hold the power button until the system shuts down. One setting difference I have from most people is, I don't use the option that lets you suspend when the laptop lid is closed. So opening and closing the laptop lid has no actions. I like to press suspend manually. Could this preference change be the cause? How can I start looking for what's causing the crash, since the crash doesn't display errors?

    Read the article

  • Jersey 2 in GlassFish 4 - First Java EE 7 Implementation Now Integrated (TOTD #182)

    - by arungupta
    The JAX-RS 2.0 specification released their Early Draft 3 recently. One of my earlier blogs explained as the features were first introduced in the very first draft of the JAX-RS 2.0 specification. Last week was another milestone when the first Java EE 7 specification implementation was added to GlassFish 4 builds. Jakub blogged about Jersey 2 integration in GlassFish 4 builds. Most of the basic functionality is working but EJB, CDI, and Validation are still a TBD. Here is a simple Tip Of The Day (TOTD) sample to get you started with using that functionality. Create a Java EE 6-style Maven project mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=webapp-javaee6 -DgroupId=example -DartifactId=jersey2-helloworld -DarchetypeVersion=1.5 -DinteractiveMode=false Note, this is still a Java EE 6 archetype, at least for now. Open the project in NetBeans IDE as it makes it much easier to edit/add the files. Add the following <respositories> <repositories> <repository> <id>snapshot-repository.java.net</id> <name>Java.net Snapshot Repository for Maven</name> <url>https://maven.java.net/content/repositories/snapshots/</url> <layout>default</layout> </repository></repositories> Add the following <dependency>s <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope></dependency><dependency> <groupId>javax.ws.rs</groupId> <artifactId>javax.ws.rs-api</artifactId> <version>2.0-m09</version> <scope>test</scope></dependency><dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-client</artifactId> <version>2.0-m05</version> <scope>test</scope></dependency> The complete list of Maven coordinates for Jersey2 are available here. An up-to-date status of Jersey 2 can always be obtained from here. Here is a simple resource class: @Path("movies")public class MoviesResource { @GET @Path("list") public List<Movie> getMovies() { List<Movie> movies = new ArrayList<Movie>(); movies.add(new Movie("Million Dollar Baby", "Hillary Swank")); movies.add(new Movie("Toy Story", "Buzz Light Year")); movies.add(new Movie("Hunger Games", "Jennifer Lawrence")); return movies; }} This resource publishes a list of movies and is accessible at "movies/list" path with HTTP GET. The project is using the standard JAX-RS APIs. Of course, you need the trivial "Movie" and the "Application" class as well. They are available in the downloadable project anyway. Build the project mvn package And deploy to GlassFish 4.0 promoted build 43 (download, unzip, and start as "bin/asadmin start-domain") as asadmin deploy --force=true target/jersey2-helloworld.war Add a simple test case by right-clicking on the MoviesResource class, select "Tools", "Create Tests", and take defaults. Replace the function "testGetMovies" to @Testpublic void testGetMovies() { System.out.println("getMovies"); Client client = ClientFactory.newClient(); List<Movie> movieList = client.target("http://localhost:8080/jersey2-helloworld/webresources/movies/list") .request() .get(new GenericType<List<Movie>>() {}); assertEquals(3, movieList.size());} This test uses the newly defined JAX-RS 2 client APIs to access the RESTful resource. Run the test by giving the command "mvn test" and see the output as ------------------------------------------------------- T E S T S-------------------------------------------------------Running example.MoviesResourceTestgetMoviesTests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.561 secResults :Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 GlassFish 4 contains Jersey 2 as the JAX-RS implementation. If you want to use Jersey 1.1 functionality, then Martin's blog provide more details on that. All JAX-RS 1.x functionality will be supported using standard APIs anyway. This workaround is only required if Jersey 1.x functionality needs to be accessed. The complete source code explained in this project can be downloaded from here. Here are some pointers to follow JAX-RS 2 Specification Early Draft 3 Latest status on specification (jax-rs-spec.java.net) Latest JAX-RS 2.0 Javadocs Latest status on Jersey (Reference Implementation of JAX-RS 2 - jersey.java.net) Latest Jersey API Javadocs Latest GlassFish 4.0 Promoted Build Follow @gf_jersey Provide feedback on Jersey 2 to [email protected] and JAX-RS specification to [email protected].

    Read the article

  • Getting vga_switcheroo with ATI Mobility Radeon 5650 HD to work

    - by stevejb
    Hello! I have a new HP dv7 laptop with ATI Mobility Radeon HD 5650 graphics card, and also Intel graphics (switchable). I have done the following and want to understand what is going on with my graphics driver Resized windows 7 and did fresh install of 10.10 Booted into 10.10 and things seemed to be working okay Enabled ATI graphics, and was clearly working on the ATI rather than Intel GPU (desktop cube worked) Rebooted, got an error that modprobe could not load modules.dep, and also something about i915 symbols Rebooted into recovery mode, modified xorg.conf to remove the mention of fglrx Rebooted, and the errors show, but then x starts but clearly in intel graphics I would ideally like to be able to switch between the ATI and Intel graphics, a la vga_switcheroo. My first problem seems to be that the folder /sys/kernel/debug/vgaswitcheroo does not exist, hinting at some kind of kernel issue. What can I do to get this available? Thanks!

    Read the article

  • Exporting .jar files with Jarsplice

    - by SystemNetworks
    Help! I'm Using Mac OS X 10.8 Mountain Lion and Using Eclipse. I'm using the library called Slick and Lwjgl. When i first exported it, it has a .jar file. I followed some You Tube Tutorials (Different, they don't have slick) It worked for them. I don't know why it dosen't work for me. Should i put Slick-util too? I didn't even use lwjgl btw. Please help!!! Jars I used(Libraries) Slick LWJGL(I didn't use it) Tutorials I followed TheCodingUniverse(Exporting) TheNewBoston(The Code and Set-up) Programs I used Eclipse IDE Java Jarsplice No warnings found or errors. It is perfect! But Nothing shows up in the screen everytime I pressed the jar(After Jarsplice) Help!!!

    Read the article

  • Looking for a very subtle unit testing example

    - by Stéphane Bruckert
    In the context of Continuous Integration, I need to teach unit testing to a 20-people audience of programmers. Everything will be all right, but I am still trying to find the perfect unit testing example. More than writing tests like a robot, I want to show that unit testing can help prevent very subtle errors. I am thinking of the following scenario to happen when doing a live TDD demo: the test cases would already be written, we would have to write methods together, most of us would naturally have forgotten to handle a specific case for a method, everyone would then be surprised, when seeing that all tests don't pass, the failing test would make us think more and realize that we forgot an important case. My question will probably finish as "too broad" or "not clear what you are asking", but we never know, one of you might have a great idea. Your answer can use Java and JUnit, though any other language will be fine since only the idea will matter.

    Read the article

  • Ubuntu 12.10 desktop/interface not showing on VirtualBox VM after login screen

    - by Jake
    I'm having some trouble with getting my Ubuntu to work on a VirtualBox VM. I made a clean installation of Ubuntu 12.10 on a VM without any errors. I arrive at the login screen, as soon as I press enter it does it's little loading thingy and then screen goes black, then this is all I get: http://i.imgur.com/zULUI.jpg I can access the terminal and pretty much all the other features through it, but I would like to have the GUI properly working. I've been looking around the web and looking at various fixes to similar problems, but can't seem to get it to work. I'm thinking this problem might have to do with the graphics? I'm running Windows 8 Pro as host, if that helps, might be some compatibility issues with VirtualBox in W8... Thanks in advance!

    Read the article

  • The provider did not return a ProviderManifestToken string Entity Framework

    - by PearlFactory
    Moved from Home to work and went to fire up my project and after long pause "The provider did not return a ProviderManifestToken string" or even More Abscure ProviderIncompatable Exception Now after 20 mins of chasing my tail re different ver of EntityFramework 4.1 vs 4.2...blahblahblah Look inside at the inner exception A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible DOH!!!! Or a clean translation is that it cant find SQL or is offline or not running. SO check the power is on/Service running or as in my case Edit web.config & change back to Work SQL box   Hope you dont have this pain as the default errors @ the moment suck balls in the EntityFramework 4.XX releases   Cheers

    Read the article

  • Importing 3d model with multiple skeletons

    - by Sweta Dwivedi
    I have created an animated butterfly in 3ds Max and try to export it in ".fbx" format to use in XNA, however as soon as I compile, i get the following Errors: Warning 1 Multiple skeletons were found in the file. The first skeleton, named "Left.Wing" has been moved to be a child of the scene root. The other, "Right.Wing", will be ignored. Fragment identifier "Right.Wing". Error 2 Vertex is bound to bone "Right.Wing", but this bone is not present in the skeleton. Which is confusing since I have the bone Right.Wing . . and I use it to animate the butterfly I have seen a few possible solution for Blender but none for 3Ds max it would be really helpful if someone could help me out with this

    Read the article

  • Ubuntu start up screen broken

    - by Parker
    I set up dual boot on my extra pc last night. first installed windows 7 and that went just fine. Downloaded Ubuntu and then did the MD5SUM and did not get a correct return that were listed on the site. I forgot to do that before I burnt the image to a disc. so I booted from the disc anyway to do the intergrity check and no errors were found. I then installed and everything seems fine except when it's booting, the purple screen is broken. should I try to redownload and re install?

    Read the article

  • alt+shift can't be set to toggle language

    - by Ali
    I recently did a fresh installation of Ubuntu 13.10; but there is something bothering me, which I don't quite understand. When I first tried to toggle the keyboard language(I usually switch between Persian and English) using the good old "alt+shift" shortcut it didn't work. Then, I went and checked the Keyboard shortcut settings and found out that it had been set to "super+space"(which BTW didn't work either). So I tried to change it back to "alt+shift" but it just doesn't work; when I press "alt+shift" to set it up as the toggle-language shortcut, the box automatically resets itself to its previous value(without any errors whatsoever). As far as I've checked I couldn't find any thing obvious corresponding to the shortcut "alt+shift" either. I've currently set up the shortcut as "Ctrl+space"; so I can toggle the language. My question is why I cannot set it up to just "alt+shift"?

    Read the article

  • Why do we keep using CSV?

    - by Stephen
    Why do we keep using CSV? I recently made a shift to working the health domain and despite the wonderful work in data transfer standards, all data transfer is in CSV, both for reporting to external organisations, and for data migrations when implementing new systems. Unfortunately the use of CSV is the cause of the endless repetition of the same stupid errors, with the same waste of developer time. (bad escaping, failing to handle null fields etc.) I know we can do better, and anything between JSON and XML (depending on the instance) would be fine. (Most of the time this is data going from one MS SQLserver 2005 to another!) I feel as if each time I see this happening I am literally watching one developer waste anothers time. So why do we keep shafting each other? When will we stop?

    Read the article

  • How to install GIMP 2.7?

    - by Bucic
    Here I ask this question since Beta 2 is usable and this question would come up sooner then later ;) After issuing the standard sudo add-apt-repository ppa:matthaeus123/mrw-gimp-svn sudo apt-get update I get W: Failed to fetch http://ppa.launchpad.net/matthaeus123/mrw-gimp-svn/ubuntu/dists/precise/main/source/Sources 404 Not Found W: Failed to fetch http://ppa.launchpad.net/matthaeus123/mrw-gimp-svn/ubuntu/dists/precise/main/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ppa.launchpad.net/matthaeus123/mrw-gimp-svn/ubuntu/dists /precise/main/binary-i386/Packages 404 Not Found E: Some index files failed to download. They have been ignored, or old ones used instead. Is there any way to get around this. Excluding compiling from source as it usually introduces even more multilevel errors.

    Read the article

  • What would I do to figure out why Suspend sometimes crashes?

    - by Isaac
    Something is causing suspend crash occasionally. When it does crash, the system freezes with a black screen and stays on, not suspending. This makes me have to hold the power button until the system shuts down. One setting difference I have from most people is, I don't use the option that lets you suspend when the laptop lid is closed. So opening and closing the laptop lid has no actions. I like to press suspend manually. Could this preference change be the cause? How can I start looking for what's causing the crash, since the crash doesn't display errors?

    Read the article

  • Does dist-upgrade require PPA software to be uninstalled first?

    - by seb
    Hi all, I'm still running Ubuntu 10.04 with quite a few PPAs. Amongst the PPAs there is Guiodic (Guido Iodice) Lucid quasi-rolling :) PPA which brings most recent versions of many programs to my desktop. My steps: sudo update-manager -d click on upgrade on the appearing window wait for the magic to happen: prepare to upgrade and setting new software channels during 'calculating the changes' I will get the following error message in the panel An error occurred, please run Package Manager form the right-click menu or apt-get in a terminal to see what is wrong. The error message was: ' Error: Marking the upgrade (E:Error, pkgProblemResolver::Resolver generated breaks, this may be caused by help packages.)'This usually means that your installed packages have unmet dependencies When I check Synaptic/apt-get I can't find any errors or hint toward broken packages Could this error be because of many PPA versions being newer than 10.04 original versions?

    Read the article

  • Restricting crawler activity to certain directories with robots.txt

    - by neimad
    I would like to use robots.txt to prevent indexing of some parts of my website. I want search engines to index only the / directory and not search inside my controllers. In my robots.txt, I have this: User-Agent: * Disallow: /compagnies/ Disallow: /floors/ Disallow: /spaces/ Disallow: /buildings/ Disallow: /users/ Disallow: / I put this file in /mysite/public. I tested the file with a robots.txt validator and got no errors. However, Google always returns the result of my site. For testing, I added Disallow: /, but again, Google indexed all pages. floors, spaces, buildings, etc. are not physical directories. Is this a bug? How can I work around it?

    Read the article

  • NetworkManager not populating resolv.conf

    - by Cerin
    I recently upgraded from 11.10 to 12.04, and now NetworkManager isn't populating /etc/resolv.conf when connecting to wireless networks, when it had been working perfectly in 11.10. I'm not seeing any explicit errors in either the NM UI or in syslog. How do I diagnose what's wrong? Edit: If I try to run resolvconf, I get the error "resolvconf: Error: /etc/resolv.conf isn't a symlink, not doing anything." What should it be a symlink to and/or how do I get NM to populate it? This says the symlink should point to /run/resolvconf/resolv.conf, but that file does not exist on my system.

    Read the article

  • After upgrading to 13.04 Unity interface is not showing

    - by ?????? ?????
    I've upgraded to Raring last night. The upgrade itself went okay, no errors. But when I rebooted the computer afterwards and logged in to my Unity session, all I could see was the Desktop background (together with Desktop icons), and no Unity interface. The Super button shortcut wasn't showing the Dash, there was no top panel etc. Please see the screenshot. As a hint, I'm suspecting it's got something to do with my switchable graphics. I'm running Ubuntu on Acer Aspire AS5830TG with nVidia GT540M and an Intel integrated card. In 12.10 I was using Bumblebee to manage the graphic card switching. During the upgrade I saw something related to nvidia had to be uninstalled, but didn't pay much attention to it. I can't be sure if it has anything to do with my problem though. What could possibly go wrong?

    Read the article

  • Farseer tutorial for the absolute beginners

    - by Bil Simser
    This post is inspired (and somewhat a direct copy) of a couple of posts Emanuele Feronato wrote back in 2009 about Box2D (his tutorial was ActionScript 3 based for Box2D, this is C# XNA for the Farseer Physics Engine). Here’s what we’re building: What is Farseer The Farseer Physics Engine is a collision detection system with realistic physics responses to help you easily create simple hobby games or complex simulation systems. Farseer was built as a .NET version of Box2D (based on the Box2D.XNA port of Box2D). While the constructs and syntax has changed over the years, the principles remain the same. This tutorial will walk you through exactly what Emanuele create for Flash but we’ll be doing it using C#, XNA and the Windows Phone platform. The first step is to download the library from its home on CodePlex. If you have NuGet installed, you can install the library itself using the NuGet package that but we’ll also be using some code from the Samples source that can only be obtained by downloading the library. Once you download and unpacked the zip file into a folder and open the solution, this is what you will get: The Samples XNA WP7 project (and content) have all the demos for Farseer. There’s a wealth of info here and great examples to look at to learn. The Farseer Physics XNA WP7 project contains the core libraries that do all the work. DebugView XNA contains an XNA-ready class to let you view debug data and information in the game draw loop (which you can copy into your project or build the source and reference the assembly). The downloaded version has to be compiled as it’s only available in source format so you can do that now if you want (open the solution file and rebuild everything). If you’re using the NuGet package you can just install that. We only need the core library and we’ll be copying in some code from the samples later. Your first Farseer experiment Start Visual Studio and create a new project using the Windows Phone template can call it whatever you want. It’s time to edit Game1.cs 1 public class Game1 : Game 2 { 3 private readonly GraphicsDeviceManager _graphics; 4 private DebugViewXNA _debugView; 5 private Body _floor; 6 private SpriteBatch _spriteBatch; 7 private float _timer; 8 private World _world; 9 10 public Game1() 11 { 12 _graphics = new GraphicsDeviceManager(this) 13 { 14 PreferredBackBufferHeight = 800, 15 PreferredBackBufferWidth = 480, 16 IsFullScreen = true 17 }; 18 19 Content.RootDirectory = "Content"; 20 21 // Frame rate is 30 fps by default for Windows Phone. 22 TargetElapsedTime = TimeSpan.FromTicks(333333); 23 24 // Extend battery life under lock. 25 InactiveSleepTime = TimeSpan.FromSeconds(1); 26 } 27 28 protected override void LoadContent() 29 { 30 // Create a new SpriteBatch, which can be used to draw textures. 31 _spriteBatch = new SpriteBatch(_graphics.GraphicsDevice); 32 33 // Load our font (DebugViewXNA needs it for the DebugPanel) 34 Content.Load<SpriteFont>("font"); 35 36 // Create our World with a gravity of 10 vertical units 37 if (_world == null) 38 { 39 _world = new World(Vector2.UnitY*10); 40 } 41 else 42 { 43 _world.Clear(); 44 } 45 46 if (_debugView == null) 47 { 48 _debugView = new DebugViewXNA(_world); 49 50 // default is shape, controller, joints 51 // we just want shapes to display 52 _debugView.RemoveFlags(DebugViewFlags.Controllers); 53 _debugView.RemoveFlags(DebugViewFlags.Joint); 54 55 _debugView.LoadContent(GraphicsDevice, Content); 56 } 57 58 // Create and position our floor 59 _floor = BodyFactory.CreateRectangle( 60 _world, 61 ConvertUnits.ToSimUnits(480), 62 ConvertUnits.ToSimUnits(50), 63 10f); 64 _floor.Position = ConvertUnits.ToSimUnits(240, 775); 65 _floor.IsStatic = true; 66 _floor.Restitution = 0.2f; 67 _floor.Friction = 0.2f; 68 } 69 70 protected override void Update(GameTime gameTime) 71 { 72 // Allows the game to exit 73 if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) 74 Exit(); 75 76 // Create a random box every second 77 _timer += (float) gameTime.ElapsedGameTime.TotalSeconds; 78 if (_timer >= 1.0f) 79 { 80 // Reset our timer 81 _timer = 0f; 82 83 // Determine a random size for each box 84 var random = new Random(); 85 var width = random.Next(20, 100); 86 var height = random.Next(20, 100); 87 88 // Create it and store the size in the user data 89 var box = BodyFactory.CreateRectangle( 90 _world, 91 ConvertUnits.ToSimUnits(width), 92 ConvertUnits.ToSimUnits(height), 93 10f, 94 new Point(width, height)); 95 96 box.BodyType = BodyType.Dynamic; 97 box.Restitution = 0.2f; 98 box.Friction = 0.2f; 99 100 // Randomly pick a location along the top to drop it from 101 box.Position = ConvertUnits.ToSimUnits(random.Next(50, 400), 0); 102 } 103 104 // Advance all the elements in the world 105 _world.Step(Math.Min((float) gameTime.ElapsedGameTime.TotalMilliseconds*0.001f, (1f/30f))); 106 107 // Clean up any boxes that have fallen offscreen 108 foreach (var box in from box in _world.BodyList 109 let pos = ConvertUnits.ToDisplayUnits(box.Position) 110 where pos.Y > _graphics.GraphicsDevice.Viewport.Height 111 select box) 112 { 113 _world.RemoveBody(box); 114 } 115 116 base.Update(gameTime); 117 } 118 119 protected override void Draw(GameTime gameTime) 120 { 121 GraphicsDevice.Clear(Color.FromNonPremultiplied(51, 51, 51, 255)); 122 123 _spriteBatch.Begin(); 124 125 var projection = Matrix.CreateOrthographicOffCenter( 126 0f, 127 ConvertUnits.ToSimUnits(_graphics.GraphicsDevice.Viewport.Width), 128 ConvertUnits.ToSimUnits(_graphics.GraphicsDevice.Viewport.Height), 0f, 0f, 129 1f); 130 _debugView.RenderDebugData(ref projection); 131 132 _spriteBatch.End(); 133 134 base.Draw(gameTime); 135 } 136 } 137 Lines 4: Declare the debug view we’ll use for rendering (more on that later). Lines 8: Declare _world variable of type class World. World is the main object to interact with the Farseer engine. It stores all the joints and bodies, and is responsible for stepping through the simulation. Lines 12-17: Create the graphics device we’ll be rendering on. This is an XNA component and we’re just setting it to be the same size as the phone and toggling it to be full screen (no system tray). Lines 34: We create a SpriteFont here by adding it to the project. It’s called “font” because that’s what the DebugView uses but you can name it whatever you want (and if you’re not using DebugView for your production app you might have several fonts). Lines 37-44: We create the physics environment that Farseer uses to contain all the objects by specifying it here. We’re using Vector2.UnitY*10 to represent the gravity to be used in the environment. In other words, 10 units going in a downward motion. Lines 46-56: We create the DebugViewXNA here. This is copied from the […] from the code you downloaded and provides the ability to render all entities onto the screen. In a production release you’ll be doing the rendering yourself of each object but we cheat a bit for the demo and let the DebugView do it for us. The other thing it can provide is to render out a panel of debugging information while the simulation is going on. This is useful in tracking down objects, figuring out how something works, or just keeping track of what’s in the engine. Lines 49-67: Here we create a rigid body (Farseer only supports rigid bodies) to represent the floor that we’ll drop objects onto. We create it by using one of the Farseer factories and specifying the width and height. The ConvertUnits class is copied from the samples code as-is and lets us toggle between display units (pixels) and simulation units (usually metres). We’re creating a floor that’s 480 pixels wide and 50 pixels high (converting them to SimUnits for the engine to understand). We also position it near the bottom of the screen. Values are in metres and when specifying values they refer to the centre of the body object. Lines 77-78: The game Update method fires 30 times a second, too fast to be creating objects this quickly. So we use a variable to track the elapsed seconds since the last update, accumulate that value, then create a new box to drop when 1 second has passed. Lines 89-94: We create a box the same way we created our floor (coming up with a random width and height for the box). Lines 96-101: We set the box to be Dynamic (rather than Static like the floor object) and position it somewhere along the top of the screen. And now you created the world. Gravity does the rest and the boxes fall to the ground. Here’s the result: Farseer Physics Engine Demo using XNA Lines 105: We must update the world at every frame. We do this with the Step method which takes in the time interval. [more] Lines 108-114: Body objects are added to the world but never automatically removed (because Farseer doesn’t know about the display world, it has no idea if an item is on the screen or not). Here we just loop through all the entities and anything that’s dropped off the screen (below the bottom) gets removed from the World. This keeps our entity count down (the simulation never has more than 30 or 40 objects in the world no matter how long you run it for). Too many entities and the app will grind to a halt. Lines 125-130: Farseer knows nothing about the UI so that’s entirely up to you as to how to draw things. Farseer is just tracking the objects and moving them around using the physics engine and it’s rules. You’ll still use XNA to draw items (using the SpriteBatch.Draw method) so you can load up your usual textures and draw items and pirates and dancing zombies all over the screen. Instead in this demo we’re going to cheat a little. In the sample code for Farseer you can download there’s a project called DebugView XNA. This project contains the DebugViewXNA class which just handles iterating through all the bodies in the world and drawing the shapes. So we call the RenderDebugData method here of that class to draw everything correctly. In the case of this demo, we just want to draw Shapes so take a look at the source code for the DebugViewXNA class as to how it extracts all the vertices for the shapes created (in this case simple boxes) and draws them. You’ll learn a *lot* about how Farseer works just by looking at this class. That’s it, that’s all. Simple huh? Hope you enjoy the code and library. Physics is hard and requires some math skills to really grok. The Farseer Physics Engine makes it pretty easy to get up and running and start building games. In future posts we’ll get more in-depth with things you can do with the engine so this is just the beginning. Enjoy!

    Read the article

< Previous Page | 407 408 409 410 411 412 413 414 415 416 417 418  | Next Page >