Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //What's below is an example of how to turn the C++ Examples for SFML into C# ones. I'll be working on this so don't think it is finished. :p
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using SFML;
- using SFML.Graphics;
- using SFML.Audio;
- using SFML.Window;
- using System.IO;
- //using System.Drawing;
- namespace CSharpSFMLTest1
- {
- class SFMLMainTest2
- {
- RenderWindow window;
- Font exfont;
- Text extext2, extext3, extextmouse1, extextmouse2, extextmouse3, extextmouse4, extextmouse5, extextmouse6;
- public SFMLMainTest2()
- {
- exfont = new Font("Fonts/00Starmap/00TT.TTF");
- extext2 = new Text("Key Pressed: ", exfont, 30);
- extext3 = new Text("Key Released: ", exfont, 30);
- extextmouse1 = new Text("Mouse Pressed: ", exfont, 30);
- extextmouse2 = new Text("Mouse Released: ", exfont, 30);
- extextmouse3 = new Text("Mouse Wheel: ", exfont, 30);
- extextmouse4 = new Text("Mouse At: ", exfont, 30);
- extextmouse5 = new Text("Mouse Entered At: ", exfont, 30);
- extextmouse6 = new Text("Mouse Exited At: ", exfont, 30);
- }
- public void StartSFMLProgram2()
- {
- window = new RenderWindow(new VideoMode(800, 600), "SFML C# Test 1");
- Image image = new Image((uint)TestImages.ClosedGridLone1Side.Width,
- (uint)TestImages.ClosedGridLone1Side.Height,
- GetRGBValues(TestImages.ClosedGridLone1Side));
- //Sprite exsprite = new Sprite(new Texture("Images/ClosedGridCorner.png"));
- Sprite exsprite = new Sprite(new Texture(image));
- //Font exfont = new Font("Fonts/ancientrunes.ttf");
- Text extext = new Text("My Font!!!", exfont, 30);
- extext2.Position = new Vector2f(0,100);
- extext3.Position = new Vector2f(0, 140);
- extextmouse1.Position = new Vector2f(0, 180);
- extextmouse2.Position = new Vector2f(0, 220);
- extextmouse3.Position = new Vector2f(0, 260);
- extextmouse4.Position = new Vector2f(0, 300);
- extextmouse5.Position = new Vector2f(0, 340);
- extextmouse6.Position = new Vector2f(0, 380);
- window.Closed += new EventHandler(OnClosed);
- window.KeyPressed += new EventHandler<KeyEventArgs>(KeyEventPressed);
- window.KeyReleased += new EventHandler<KeyEventArgs>(KeyEventReleased);
- window.MouseButtonPressed += new EventHandler<MouseButtonEventArgs>(MouseEventPressed);
- window.MouseButtonReleased += new EventHandler<MouseButtonEventArgs>(MouseEventReleased);
- window.MouseWheelMoved += new EventHandler<MouseWheelEventArgs>(MouseEventWheelChange);
- window.MouseMoved += new EventHandler<MouseMoveEventArgs>(MouseEventMoved);
- window.MouseEntered += new EventHandler(MouseEventEntered);
- window.MouseLeft += new EventHandler(MouseEventExited);
- while (window.IsOpen())
- {
- window.DispatchEvents();
- window.Clear();
- window.Draw(exsprite);
- window.Draw(extext);
- window.Draw(extext2);
- window.Draw(extext3);
- window.Draw(extextmouse1);
- window.Draw(extextmouse2);
- window.Draw(extextmouse3);
- window.Draw(extextmouse4);
- window.Draw(extextmouse5);
- window.Draw(extextmouse6);
- window.Display();
- }
- }
- void OnClosed(object sender, EventArgs e)
- {
- window.Close();
- }
- void KeyEventPressed(object sender, KeyEventArgs e)
- {
- extext2.DisplayedString = "Key Pressed: " + e.Code;
- }
- void KeyEventReleased(object sender, KeyEventArgs e)
- {
- extext3.DisplayedString = "Key Released: " + e.Code;
- }
- void MouseEventPressed(object sender, MouseButtonEventArgs e)
- {
- extextmouse1.DisplayedString = "Mouse Pressed: " + e.Button + " At: ("+e.X+","+e.Y+")";
- }
- void MouseEventReleased(object sender, MouseButtonEventArgs e)
- {
- extextmouse2.DisplayedString = "Mouse Released: " + e.Button + " At: (" + e.X + "," + e.Y + ")";
- }
- void MouseEventWheelChange(object sender, MouseWheelEventArgs e)
- {
- extextmouse3.DisplayedString = "Mouse Wheel: " + e.Delta + " At: (" + e.X + "," + e.Y + ")";
- }
- void MouseEventMoved(object sender, MouseMoveEventArgs e)
- {
- extextmouse4.DisplayedString = "Mouse At: (" + e.X + "," + e.Y + ")";
- }
- void MouseEventEntered(object sender, EventArgs e)
- {
- extextmouse5.DisplayedString = "Mouse Entered At: (" + Mouse.GetPosition().X + "," + Mouse.GetPosition().Y + ")";
- }
- void MouseEventExited(object sender, EventArgs e)
- {
- extextmouse6.DisplayedString = "Mouse Exited At: (" + Mouse.GetPosition().X + "," + Mouse.GetPosition().Y + ")";
- }
- //http://stackoverflow.com/questions/7350679/convert-a-bitmap-into-a-byte-array-in-c
- private static byte[] ImageToByteArray(System.Drawing.Image resourceimage)
- {
- System.Drawing.ImageConverter imgcon = new System.Drawing.ImageConverter();
- return (byte[])imgcon.ConvertTo(resourceimage, typeof(byte[]));
- }
- // Yes Straight up C&P from here:
- //http://social.msdn.microsoft.com/Forums/vstudio/en-US/47c5a003-1d26-4213-9370-fba3aa170c21/fastest-method-to-convert-bitmap-object-to-byte-array?forum=csharpgeneral
- // A Case of either use full quantified names for SFML or C#. >.>
- private static byte[] GetRGBValues(System.Drawing.Bitmap bmp)
- {
- // Lock the bitmap's bits.
- System.Drawing.Rectangle rect = new System.Drawing.Rectangle(0, 0, bmp.Width, bmp.Height);
- System.Drawing.Imaging.BitmapData bmpData = bmp.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadOnly, bmp.PixelFormat);
- // Get the address of the first line.
- IntPtr ptr = bmpData.Scan0;
- // Declare an array to hold the bytes of the bitmap.
- int bytes = bmpData.Stride * bmp.Height;
- byte[] rgbValues = new byte[bytes];
- // Copy the RGB values into the array.
- System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes);
- bmp.UnlockBits(bmpData);
- return rgbValues;
- }
- }
- class MySFMLProgram
- {
- RenderWindow _window;
- public void StartSFMLProgram()
- {
- _window = new RenderWindow(new VideoMode(800, 600), "SFML window");
- _window.SetVisible(true);
- _window.Closed += new EventHandler(OnClosed);
- while (_window.IsOpen())
- {
- _window.DispatchEvents();
- _window.Clear(Color.Red);
- _window.Display();
- }
- }
- void OnClosed(object sender, EventArgs e)
- {
- _window.Close();
- }
- }
- /*
- */
- //http://hongouru.blogspot.com/2010/10/c-how-to-add-fonts-ttf-true-type-fonts.html
- public class MovingSprite : Sprite
- {
- public MovingSprite() : base()
- {}
- public MovingSprite(Texture texture)
- : base(texture)
- {
- CenterOrigin();
- }
- public MovingSprite(Texture texture, IntRect intrect)
- : base(texture, intrect)
- {
- CenterOrigin();
- }
- public MovingSprite(MovingSprite copy)
- : base(copy)
- { }
- public void CenterOrigin()
- {
- if(this.Texture != null && !this.TextureRect.Equals(null))
- {
- this.Origin = new Vector2f(this.TextureRect.Width / 2, this.TextureRect.Height / 2);
- }
- }
- public void MoveSprite(float xvec, float yvec)
- {
- this.Position += new Vector2f(xvec,yvec);
- }
- public void MoveSpriteByDirection(float angledirection, float speed)
- {
- //MoveSprite();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement