I am just a hobby programmer.. and even tough I know how, I don't want to mix windows forms and XNA for my level editor.
Has anyone done this before? Are there any examples around how to create "Windows like" controls for XNA, including events like mouse over, click and double-click and even accept keyboard input(if possible using language specific keyboard input)?
Below you find the basic layout of my editor but it needs so much more.
Yeah.
I'm now creating something like that.
See my project on Bitbucket.
I'm making own lib and voxel engine for Minecraft-like game. Just for fun.
So, in GameHelper lib you can fing folders Input (keyboard and mouse input) and GUI (forms and controls with events). I will be happy if it helps you, but there is almost no comment :P
Examples of use you can find in the Player class in main project (see ProcessInput method).
If you need I can give you better examples :)
Related
I have an assignment which, if I could implement it any way I wanted, would be relatively easy. Alas, there are a number of restrictions on the implementation. I need to create a Visual Studio project which uses C#.Net Windows Presentation Form (WPF) for the GUI and Visualization Toolkit (VTK) with C++ for 3D rendering. If you look that up on-line, you'll soon find something specifically designed for this--ActiViz.Net. Unfortunately, using ActiViz.Net is specifically forbidden.
I've been able to build VTK and the example projects in Visual Studio. I'm still not entirely comfortable with it, but I at least know how to do some basic rendering. WPF doesn't seem too bad on its own. But how do I combine these into a single project, with the GUI influencing the rendering? So for example, I'd use WPF to make a button that said "enlarge sphere". I'd use VTK to render a sphere, either in the same window that had the button, or in a separate window. When the user clicks the button, it will run an event method in C#. And that method will somehow tell the C++ code using VTK to make the sphere larger.
At the moment, I'm not even sure how to make a single project with both of these parts, let alone how to communicate between them. Really, the best I can think of right now is two separate programs, with the GUI program launching the 3D program, and influencing the rendering by writing out a file that the rendering program reads. Not very elegant, I know. Any better ideas?
I will preface this by I am new to XNA and I realize what I am asking for doesn't exist.
However I am curious if I wanted to create something similar to a menustrip from winforms in XNA, how would I do that? Is there a best way? Or even a way?
I appreciate it, thanks!
Well, if you're only targeting windows, you can always render XNA in a winforms project or wpf app. Once you do that, you can use the built-in controls to render the menu.
If however you're looking for something that will work on xbox or windows phone, you will have to do the work of rendering and positioning the menu yourself using whatever rendering techniques you are familiar with (ie. SpriteBatch, etc.)
I found a possible solution, that will need further investigation:
http://neoforce.codeplex.com/
This should give me UI control w/o having to recode everything, unless I can just add an XNA pane to my winforms app
Edit:
neoforce appears to not work well with c# 2010. I did however find this: http://create.msdn.com/en-US/education/catalog/sample/winforms_series_1 which does work, to do as Joel Martinez mentioned of drawing an XNA form inside of a winform. It is not trivial but this example code should be enough for a jump start.
I was wondering If there was a way to have an xna game within a windows forms or in vice versa. I have found several examples online, but I couldn't understand what they were doing. I was also wondering if there was a way to make a sprite act like a button on a winforms...is it possible to click on a sprite?
Yes, on all.
Sprite act like a button on winforms:
use the onclick event
Xna Game within Windows Forms:
You would need to add a reference to the Xna.framework.something ... sorry kinda out of touch which class implements it but a lot of examples on the xna forums by the community
It should generate a toolbox control to be able to drag and drop.
Example: Nick Gravelyn's Tile Editor... it's youtube based which take you through it step by step.
Winforms into Xna Game:
I would say not to rely on adding a winform objects to xna games as it would not always work. e.g: running on xbox360 :D
Though, it would be same thing as above for the answer.
Examples: Winforms components into xna
My goal is to gain a better understanding of the characteristics of C#, and become more comfortable creating simple apps. I am fairly competent with Flash (Actionscript 3), and found an old Tic-Tac-Toe game I'd written. I started wondering about porting this code into a C# application. Not knowing much about C#, I'm wondering how difficult the migration would be.
On the one hand, the underlying game logic is syntactically similar, and therefore would be easy to port.
However, as far as the graphics are concerned, I don't even know where to begin. So far, I've only exposed myself to Windows Forms and Console apps in C#.
I'm wondering if these Flash concepts have similar analogs in C#, or if the procedures and syntax are radically different:
Placing graphic elements on a stage
Rendering lines from start/end coordinates
Event listeners on movie clips
Swapping the image inside a graphic element (or, in my Flash version, nextFrame() in a movie clip)
You may want to try developping your little game using Silverlight. Silverlight applications, coded using C# and Xaml, are pretty similar in form with flash applications, and you should find everything you need without trouble.
So I suggest you download the Silverlight SDK (free) and give it a try.
Firstly, Flash is to WPF (close enough) as ActionScript is to C#.
The WPF/Silverlight model is much more similar to Flex that it is to Flash. Everything is added to the UI tree as a object, even lines.
Likewise, adding event handlers to controls (like a button click) can be done in the "code behind" (the code that lives with the view), but the recommendation is to use the MVVM pattern. If you are new to the concepts of separation of concerns and unit testing, feel free to start with the simpler "code behind" method.
While WPF and Silverlight are very similar, I'd recommend starting with Silverlight as the SDK and available samples are richer. You can easily move onto WPF later on (though porting an application from Silverlight to WPF is not automatic).
Swapping images, as you mentioned, would be done via "Visual States" in Silverlight (or possibly changing the image reference, which is more "hacky").
Have a look at the following links to get started:
Learn # Silverlight.net
Silverlight on MSDN
Shapes and Drawing (Silverlight)
If you're looking specifically to do games and the like, you may wish to look into the free XNA framework. However, there will be differences as Flash gives you far more ability to "set up" things beforehand and modify them.
Placing graphic elements on a stage
If you go the XNA route, you will be drawing sprites using the spritebatch, you tell them where and how to draw and that's where they will go
Rendering lines from start/end coordinates
In windows forms you can do this via a simple System.Drawing call, however if you wish to do this in XNA, you will either have to make a 1 pixel square and stretch/rotate it to what you want, or use 3d primitives (Though this will limit you to a 1 pixel line)
Event listeners on movie clips
Look into delegates, but there isn't really an equivalent for movie clips to my knowledge
Swapping the image inside a graphic element (or, in my Flash version, nextFrame() in a movie clip)
This is fairly simple, depending on what you mean. If you want to, say, animate a sprite. You can do this by moving the source rectangle or changing the texture of the spritesheet. If you mean the screen as a whole, this is mostly handled for you provided you use the spritebatch. In windows forms you'll have to do more of it yourself, but the base concepts are the same.
Overall it's not that bad, but if that doesn't sound appealing check out Silverlight. It's basically C# styled flash so you may find the transition easier.
Good luck and hope this helps.
What I am using:
Visual Studio 2010
Windows Media Center
Language C#
The Program
A part of my program needs to display movies by their covers and be able to scroll through them, much like netflix. I was told that directx would be good to accomplish this. Basically I just want it to be easy to view, use, and flow nicely.
Help?
Any Ideas as to what to use. (I was also looking into writing it as a pluggin for windows media player, but i read somewhere you can only have html based menus?)
Any suggestions would be appreciated.
Thanks
-Scott
Have a look at the following.
http://channel9.msdn.com/Blogs/scobleizer/Charlie-Owen-Your-first-Media-CenterVista-application-and-a-look-at-their-secret-room
The problem with using Direct3D for an application like this is that you have to start creating your own window manager.
You don't have the default events available to you and you will have to basically create your own GUI which is easier in WPF as those events and helpers exist.