Windows Mobile

נהנתם ? קנו לנו בירה :)

המדורגים ביותר בקטגוריה

הודעות פורום אחרונות

נפתח מועד נוסף של הסמינר "ניתוח קוד סטאטי מן התאורייה אל המעשה" 11 לדצמבר

4282 צפיות
מאת דניאל לייזרוביץ פורסם ב- 30 October 2013, 10:16
קטגוריות: אבטחת מידע, ++C/C, Windows, Linux, Android, Windows Mobile
http://www.i-dev.co.il/uploads/images/logo_esl.png
נפתח מועד נוסף של הסמינר "ניתוח קוד סטאטי מן התאורייה אל המעשה"
הסמינר מיועד למפתחי C/C++

הסמינר בתשלום אבל יש 25% הנחה למפתחים הרשומים ב i-Dev


סמינר מקצועי מתקדם בנושא ניתוח קוד סטאטי בשפות C/C++ בהנחיית ד"ר נורית דור


חברת ESL (המרכז הישראלי לניתוח קוד סטאטי) שמחה להזמין אותך לסמינר מקצועי מתקדם בנושא ניתוח קוד סטאטי בשפות C/C++ הכולל תרגול מעשי בסביבות פיתוח אשר יתקיים ב 11 לדצמבר 2013 במכללת סלע ומועבר על ידי ד"ר נורית דור וצוות מתרגלים של חברת ESL


ניתוח קוד סטטי הינו תחום אקדמאי ומעשי אשר שימושי מאוד למציאת שגיאות בקוד וכם עבור מגוון של שימושים אחרים. מטרת הסמינר להקנות ידע מקצועי ראשוני בתחום הניתוח קוד סטטי הכולל שיטות לניתוח קוד סטטי, הגדרות ומושגים בסיסיים בתחום זה, טכניקות לשיפור דיוק ומניעת false positives ו- false negatives.

הנכם מוזמנים לוובינר של פרוטקוד בנושא: ניהול רישיונות קוד פתוח בחברות טכנולוגיות קטנות, ב 25/9 בשעה 16:00 זמן ישראל

908 צפיות
מאת סילבי פרוסט פורסם ב- 10 September 2013, 14:27
קטגוריות: #C, ++C/C, Java, Windows, Linux, Windows Mobile
http://www.i-dev.co.il/uploads/images/post-224.png
Managing Open Source Licenses In Small Technology Companies

Open source software has proven its value in decreasing costs, improving productivity and shortening product introduction intervals. At the same time, organizations are beginning to recognize the importance of managing the obligations, security and quality aspects of open source software in their portfolios. More than ever, small technology companies need cost effective yet fully functional solutions to manage their code attributes.

הסמינר הבינלאומי לנושאי ניהול ובקרת תצורת תוכנה 2013 Perforce Merge מגיע לישראל

4164 צפיות
מאת דניאל לייזרוביץ פורסם ב- 16 June 2013, 21:59
קטגוריות: אבטחת מידע, MySQL, PHP, Java, Windows, Linux, Mac, Python, MsSQL, iOS, Android, Windows Mobile
http://www.i-dev.co.il/uploads/images/post-221.gif
אני שמח להזמין את ציבור המפתחים הישראלי לארוע חשוב ומיוחד.
בתאריך ה 3 ליולי 2013 בין השעות 9 בבוקר ו 13:45 בצהריים יתקיים במלון דניאל בהרצליה כנס Perforce Merge 2013. מדובר באחד הארועים המרכזיים של השנה בתחום ניהול ובקרת תצורה.

וובינר: איך בוחרים טכניקת פאזינג?

1069 צפיות
מאת כרמית צור פורסם ב- 20 May 2012, 11:13
קטגוריות: אבטחת מידע, HTML, Windows Mobile
http://www.i-dev.co.il/uploads/images/post_184.gif
פאזינג רגיל או מבוסס-מודל? חינמי או מסחרי? שירות או לבד? והאם אפשר לוותר על פאזינג?
יש לא מעט שאלות שצריך לשאול כשמתכננים בדיקות. איך יודעים מה לבחור?

בוובינר זה נציג אפשרויות פאזינג שונות ונסביר את היתרונות והחסרונות בכל שיטה. נסביר כיצד שיטות פאזינג שונות מתאימות למצבים שונים ואיך בוחרים את שיטת הפאזינג המתאימה.

דף סיכום לסמינר Infragistics כולל מצגות ודוגמאות קוד

1520 צפיות
מאת דניאל לייזרוביץ פורסם ב- 10 November 2011, 21:45
קטגוריות: ASP .Net, #C, JavaScript, HTML, VB .NET, Windows Mobile
http://www.i-dev.co.il/uploads/images/infragistics.png
לפני כחודש הזמנו אתכם לסמינר מקצועי של Infragistics, להלן סיכום הסמינר.
סמינר Infragistics בנושא רכיבי צד שלישי עבור טכנולוגיות מיקרוסופט התקיים השנה לראשונה בישראל ב 2 לנובמבר 2011 במלון דניאל בהרצליה.

הסמינר אורגן על ידי צוות Engineering Software Lab נציגי ומפעילי מרכז ההדרכה, תמיכה, ההטמעה ובצוע פרויקטים של Infragistics בישראל.

הזמנה לסמינר מקצועי של Infragistics

1268 צפיות
מאת דניאל לייזרוביץ פורסם ב- 16 October 2011, 20:32
קטגוריות: ASP .Net, #C, HTML, VB .NET, Windows Mobile
http://www.i-dev.co.il/uploads/images/infragistics.png
הייתי רוצה להזמין את חברי קהילת המפתחים לסמינר מקצועי של חברת Infragistics (חברה אותה אנו מייצגים בישראל ) בנושא פיתוח UI. את הכנס נעביר יחד עם אנשי פיתוח, תמיכה ושיווק של חברת Infragistics, כידוע מדובר בחברה מן המובילות בתחומה והמתמחה בבניית ערכות פיתוח (ערכות פקדים ורכיבים) לממשקי משתמש לכל טכלוגיות מיקרוסופט, דהינו ל Winforms, ASP.NET, Sharpoint, WPF, Silverlight, וגם ל jQuery ו LightSwitch .

איך ניתן לבצע אנימציה ב windows mobile 7

2104 צפיות
מאת ערן גרוס פורסם ב- 16 May 2011, 22:49
קטגוריות: Windows Mobile
לאחרונה רציתי להמיר משחק שבייעודו כתבתי לאייפון ולהוציא גם גרסא לwindows mobile 7.

פיתוח משחקים זה משהו אחר מכל אפלקצייה סלולרית, לרוב אנחנו בוחנים את הביצועים של הטלפון כאשר אנו רוצים להריץ אנימציות על המסך גם אם אנחנו משתמשים במאיץ הגרפי קרי OpenGL ES.

אני לא אפרט במדריך זה מה צריך לעשות כדי לתכנן משחק ולפתח אותו מהתחלה עד הסוף, אני רק אציין שזה משימה לא פשוטה ואם אתה לבד אז היא לא קלה שבעתיים.

אז אחד הדברים שרציתי לעשות או חיפשתי לעשות זה לאנמץ תמונות, אבל מכיוון שרציתי לשמור על ביצועיים טובים, לא רציתי לטעון לטלפון כל תמונה בנפרד כי אם כי מספר רב של תמונות ככל שאפשר.

אז איך עושים זאת?

בז'רגון המקצועי זה נקרא sprite sheet או atlas sprite sheet

אז איך מייצרים אחד כזה? ומזה בכלל?

טוב אז איך מייצרים אחד כזה תכף נראה, אבל למה אנחנו צרכים אחד כזה.
תארו לכם שאתם צרכים במהלך כל המשחק להציג 2000 תמונות שונות של אנימציות שונות.
מעבר לסרבול שבלטעון כל תמונה בנפרד, יש צריכת זכרון עודפת בכל פעם טוענים לזכרון תמונה נוספת ואיטיות עצומה בעבודה מול המאיץ הגרפי.
כשאנחנו עובדים מול המאיץ הגרפי אנחנו צרכים לתת לו פקודות מה להציג על המסך
אנחנו נעזרים ב OpenGL ES עכשיו כל פעם שאנחנו רוצים רנדור על המסך אנחנו צרכים לשנות את המצב שבו אנחנו נמצאים מה שנקרא machine state לכן אם היינו צריכים להציג כל תמונה בנפרד היה לנו ירידת חדה בביצועים עצם זה שאנחנו לכל תמונה צרכים לשנות את המצב הנוכחי שאנו נמצאים בו.
שימוש בקובץ יחיד חוסך לנו פעולות בכך שהוא מציג פעם אחת.

( כמובן יש גם פורמטים לתמונות כגון pvr שאני לא אסביר במדריך הזה)

תדמיינו תמונה גדולה 1024 על 1024
ובתוך התמונה הזאת הרבה מאוד תמונות קטנות, לצורך העניין כל התמונות שבעזרתם נאנמץ כדי שהשחקן יקבל תחושה של תנועה אנחנו מציגים לו מספר frames שבכל פעם הדמות או האובייקט זזים קצת.

http://www.thebest3d.com/pda/tutorials/array2animation/walksequence_spritesheet.png

אז איך עושים זאת לWindows Mobile 7 ?

1. טוב אז לשם כך נוריד את הקוד הבא

קוד

2. אחרי שהורדנו את הקובץ בספרייה שבחרנו מראש נפרוס אותו.

3. מטרתנו היא להשתמש בקוד שהורדנו בפרוייקט שלנו, לשם כך נצטרך להוסיף

SpriteSheetPipeline

SpriteSheetRunTime


כדי ששתי הספריות תהינה זמינות
נעמוד על ספריית ה refrence תחת content
נבחר להוסיף refrence על ידי לחיצה על המקש הימני
ואז נבחר להוסיף את SpriteSheetPipeline Project

4. נעמוד על הפרוייקט הראשי נבחר להוסיף reference ונוסיף את SpriteSheetRunTime

5. ניצור XML חדש שבתוכו נכניס את כל שמות הקבצים של התמונות הקטנות


 <?xml version="1.0" encoding="utf-8" ?>
    <XnaContent>
      <Asset Type ="System.String[]">
             <Item>L01_480_0.png</Item>
             <Item>L01_480_1.png</Item>
             <Item>L01_480_2.png</Item>
             <Item>L01_480_3.png</Item>
             <Item>L01_480_4.png</Item>
             <Item>L01_480_5.png</Item>
             <Item>L01_480_6.png</Item>
             <Item>L01_480_7.png</Item>
             <Item>L01_480_8.png</Item>
             <Item>L01_480_9.png</Item>
             <Item>L01_480_10.png</Item>
             <Item>L01_480_11.png</Item>
             <Item>L01_480_12.png</Item>
             </Asset>
    </XnaContent>





6. כמובן שנוסיף את ה XML הזה לפרוייקט את התמונות הקטנות עצמן לא צריך להוסיף כ sprite לפרוייקט אך לדאוג לעתיק אותן לספריית הפרוייקט היכן שממוקם ה XML

טוב בשלב הזה פה אני אציג את קוד הדוגמא ולמעשה תוכלו לראות את השימוש בxml לצורך יצירת האנימציה.



#region File Description
//-----------------------------------------------------------------------------
// SpriteSheetGame.cs
//
// Microsoft XNA Community Game Platform
// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
#endregion

#region Using Statements
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Graphics;
using SpriteSheetRuntime;
using System;
#endregion

namespace SpriteSheetSampleWindowsPhone
{
  /// <summary>
  /// This is the main type for your game
  /// </summary>
  public class SpriteSheetGame : Microsoft.Xna.Framework.Game
  {
    #region Fields

    GraphicsDeviceManager graphics;
    SpriteBatch spriteBatch;
    SpriteSheet spriteSheet;
    SpriteFont spriteFont;
    Texture2D checker;

#if WINDOWS_PHONE
    RenderTarget2D renderTarget;
#endif
    #endregion

    #region Initialization


    public SpriteSheetGame()
    {
      Content.RootDirectory = "Content";

      graphics = new GraphicsDeviceManager(this);

#if (!WINDOWS_PHONE)
      graphics.PreferredBackBufferWidth = 853;
      graphics.PreferredBackBufferHeight = 480;
#else
      // Frame rate is 30 fps by default for Windows Phone.
      TargetElapsedTime = TimeSpan.FromTicks(333333);
      // Pre-autoscale settings.
      graphics.PreferredBackBufferWidth = 480;
      graphics.PreferredBackBufferHeight = 800;

      graphics.SupportedOrientations = DisplayOrientation.Default;
      graphics.IsFullScreen = true;
#endif
    }


#if (WINDOWS_PHONE)
    /// <summary>
    /// Allows the game to perform any initialization it needs to before starting to run.
    /// This is where it can query for any required services and load any non-graphic
    /// related content.  Calling base.Initialize will enumerate through any components
    /// and initialize them as well.
    /// </summary>
    protected override void Initialize()
    {
      // TODO: Add your initialization logic here
#if WINDOWS_PHONE
      renderTarget = new RenderTarget2D(graphics.GraphicsDevice, 800, 480);
#endif

      base.Initialize();
    }
#endif

    /// <summary>
    /// Load your content.
    /// </summary>
    protected override void LoadContent()
    {
      spriteBatch = new SpriteBatch(GraphicsDevice);
      spriteSheet = Content.Load<SpriteSheet>("SpriteSheet");
      spriteFont = Content.Load<SpriteFont>("hudFont");
      checker = Content.Load<Texture2D>("Checker");
    }


    #endregion

    #region Update and Draw


    /// <summary>
    /// Allows the game to run logic.
    /// </summary>
    protected override void Update(GameTime gameTime)
    {
      HandleInput();

      base.Update(gameTime);
    }


    /// <summary>
    /// This is called when the game should draw itself.
    /// </summary>
    protected override void Draw(GameTime gameTime)
    {
#if WINDOWS_PHONE
      GraphicsDevice.SetRenderTarget(renderTarget);
#endif

      float time = (float)gameTime.TotalGameTime.TotalSeconds;

      GraphicsDevice.Clear(Color.CornflowerBlue);

      spriteBatch.Begin();

      // Draw a text label.
      spriteBatch.DrawString(spriteFont, "Here are some individual sprites,n" +
                                         "all stored in a single sprite sheet:",
                                         new Vector2(100, 80), Color.White);

      // Draw a spinning cat sprite, looking it up from the sprite sheet by name.
      spriteBatch.Draw(spriteSheet.Texture, new Vector2(200, 250),
                       spriteSheet.SourceRectangle("cat"), Color.White,
                       time, new Vector2(50, 50), 1, SpriteEffects.None, 0);

      // Draw an animating glow effect, by rapidly cycling
      // through 7 slightly different sprite images.
      const int animationFramesPerSecond = 20;
      const int animationFrameCount = 7;

      // Look up the index of the first glow sprite.
      int glowIndex = spriteSheet.GetIndex("glow1");

      // Modify the index to select the current frame of the animation.
      glowIndex += (int)(time * animationFramesPerSecond) % animationFrameCount;

      // Draw the current glow sprite.
      spriteBatch.Draw(spriteSheet.Texture, new Rectangle(100, 150, 200, 200),
                       spriteSheet.SourceRectangle(glowIndex), Color.White);

      spriteBatch.End();

      DrawEntireSpriteSheetTexture();

      base.Draw(gameTime);

#if WINDOWS_PHONE
      GraphicsDevice.SetRenderTarget(null);

      spriteBatch.Begin();
      spriteBatch.Draw(renderTarget as Texture2D,
         new Vector2(240, 400),
         null,
         Color.White,
         MathHelper.PiOver2,
         new Vector2(400, 240),
         1f,
         SpriteEffects.None,
         0);
      spriteBatch.End();
#endif
    }


    /// <summary>
    /// A real game would never do this, but when debugging, it is
    /// useful to draw the entire sprite sheet texture, so you can
    /// see how the individual sprite images have been arranged.
    /// </summary>
    void DrawEntireSpriteSheetTexture()
    {
#if WINDOWS_PHONE
      Vector2 location = new Vector2(500, 80);
#else
        Vector2 location = new Vector2(500, 80);
#endif

      // use linear wrapping for our checkerboard, but retain defaults for other arguments by passing null
      spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.LinearWrap, null, null);
      
      int w = spriteSheet.Texture.Width;
      int h = spriteSheet.Texture.Height;

      Rectangle rect = new Rectangle((int)location.X, (int)(location.Y + 70), w, h);

      // Draw a tiled checkerboard pattern in the background.
      spriteBatch.Draw(checker, rect, new Rectangle(0, 0, w, h), Color.White);

      spriteBatch.End();

      // start a new batch for the text and tile sheet since we don't want to use wrapping
      spriteBatch.Begin();

      // Draw a text label.
      spriteBatch.DrawString(spriteFont, "And here is the combinedn" +
                                         "sprite sheet texture:",
                                         location, Color.White);

      // Draw the (alphablended) sprite sheet texture over the top.
      spriteBatch.Draw(spriteSheet.Texture, rect, Color.White);

      spriteBatch.End();
    }


    #endregion

    #region Handle Input


    /// <summary>
    /// Handles input for quitting the game.
    /// </summary>
    private void HandleInput()
    {        
        // Allows the game to exit
        if ((GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
            || Keyboard.GetState().IsKeyDown(Keys.Escape))
            this.Exit();
    }


    #endregion
  }
}