示例#1
0
 public WriteableBitmap(int width, int height)
 {
     this.PixelWidth = width;
     this.PixelHeight = height;
     this.canvas = (CanvasElement)Document.GetElementById("gameCanvas");
     this.context = (CanvasContext2D)this.canvas.GetContext(Rendering.Render2D);
 }
示例#2
0
        //------------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------------
        public void Initialize(CanvasElement canvas, int screenX, int screenY)
        {
            this._screenX = screenX;
            this._screenY = screenY;

            /*no functions to minimize delegate creation*/
            JsInputProvider that = this;

            canvas.AddEventListener("keydown", delegate(ElementEvent e) {
                that._keys[e.KeyCode] = true;
            }, true);

            canvas.AddEventListener("keyup", delegate(ElementEvent e) {
                that._keys[e.KeyCode] = false;
            }, true);

            canvas.AddEventListener("mousedown", delegate(ElementEvent e) {
                that._keys[Keys.MouseLeft] = true;
            }, true);

            canvas.AddEventListener("mouseup", delegate(ElementEvent e) {
                that._keys[Keys.MouseRight] = true;
            }, true);

            canvas.AddEventListener("mousemove", delegate(ElementEvent e) {

                /*convert to screen space*/
                that._mouseX = (((float)(((MouseEvent)(Object)e).PageX - e.Target.OffsetLeft) / this._screenX) - 0.5f) * 2.0f;
                that._mouseY = (((float)(((MouseEvent)(Object)e).PageY - e.Target.OffsetTop) / this._screenY) - 0.5f) * 2.0f;
            }, true);
        }
示例#3
0
        public void Run()
        {
            _backgroundImageElement = Document.GetElementById("backgroundImage").As<ImageElement>();
            _imageStripElement = Document.GetElementById("imageStrip").As<ImageElement>();
            _tankCanvas = Document.GetElementById("fishTankCanvas").As<CanvasElement>();
            _fishesCanvas = Document.GetElementById("fishesCanvas").As<CanvasElement>();

            Debug.Assert(_backgroundImageElement != null);
            Debug.Assert(_imageStripElement != null);
            Debug.Assert(_tankCanvas != null);
            Debug.Assert(_fishesCanvas != null);

            _tankCanvasContext = (CanvasContext2D)_tankCanvas.GetContext(Rendering.Render2D);
            _fishesCanvasContext = (CanvasContext2D)_fishesCanvas.GetContext(Rendering.Render2D);

            _fishes = new List<Fish>();
            for (int i = 0; i < FishTank.FishCount; i++) {
                double x = Math.Floor(Math.Random() * (_width - FishTank.FishWidth) + FishTank.FishWidth / 2);
                double y = Math.Floor(Math.Random() * (_height - FishTank.FishHeight) + FishTank.FishHeight / 2);
                double z = Math.Floor(Math.Random() * (FishTank.ZFar - FishTank.ZNear));

                _fishes.Add(new Fish(this, x, y, z, _imageStripElement, _fishesCanvasContext));
            }

            OnWindowResize(null);
            Window.AddEventListener("resize", OnWindowResize, false);

            _tickHandler = OnTick;
            Window.SetTimeout(_tickHandler, (int)(3600 / FramesPerSecond));
        }
示例#4
0
        public static CanvasInformation Create(CanvasElement canvas, int w, int h)
        {
            if (w == 0) w = 1;
            if (h == 0) h = 1;
            canvas.Width = w;
            canvas.Height = h;

            var ctx = (CanvasRenderingContext2D)canvas.GetContext("2d");
            return new CanvasInformation(ctx, jQuery.FromElement(canvas));
        } 
       public Bitmap(int w, int h)
       {
           width = w;
           height = h;

           canvas = (CanvasElement) Document.GetElementById("canvas");
           context = (CanvasRenderingContext2D) canvas.GetContext(CanvasContextId.Render2D); // "2d"    
           context.GlobalCompositeOperation = CompositeOperation.Copy;  // ### it was: CompositeOperation         
           imagedata = context.CreateImageData(w,1);  // w,h
       }
        public static CanvasInformation Create(CanvasElement canvas, int w, int h,bool pixelated)
        {
            if (w == 0) w = 1;
            if (h == 0) h = 1;
            canvas.Width = w;
            canvas.Height = h;

            var ctx = (CanvasRenderingContext2D) canvas.GetContext("2d");

        
            if (pixelated)
            {
                ctx.Me().webkitImageSmoothingEnabled = false;
                ctx.Me().mozImageSmoothingEnabled = false;
                ctx.Me().imageSmoothingEnabled = false;
            }
            return new CanvasInformation(ctx, jQuery.FromElement(canvas));
        }
示例#7
0
        //------------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------------
        private void InitEnvironment(CanvasElement canvas)
        {
            /*initialize the core*/
            SystemCore.Environment = new Environment();

            /*suported resource types*/
            ResourceManager resourceManager = new ResourceManager();

            resourceManager.AddLoader(new ImageLoader());
            resourceManager.AddLoader(new JsonLoader());
            resourceManager.AddLoader(new AudioLoader());
            resourceManager.AddLoader(new ShaderLoader(((WebGLGraphics)this._engine.Graphics).Context));

            SystemCore.ResourceManager = resourceManager;
            SystemCore.Logger = new JsLoggingProvider();
            SystemCore.Timer = new Timer();
            SystemCore.Input = new JsInputProvider();

            ((JsInputProvider)SystemCore.Input).Initialize(canvas, 800, 600);
        }
 public void TexImage2D(uint target, int level, uint internalformat, uint format, uint type, CanvasElement canvas) { }
示例#9
0
 public void DrawImage(CanvasElement image, double dx, double dy) {
 }
示例#10
0
 public void texImage2D(int target, int level, CanvasElement canvas, bool flipY)
 {
     return;
 }
 public void TexSubImage2D(uint target, int level, int xoffset, int yoffset, uint format, uint type, CanvasElement canvas) { }
示例#12
0
        public virtual void Dispose()
        {
            _initialized = false;
            StopTimer();
            DisposeSystems();

            _resourcesLoadedLabel = null;
            _resourcesToLoadLabel = null;

            Document.RemoveEventListener("blur", _blurListener, true);
            Document.RemoveEventListener("focus", _focusListener, true);

            Document.RemoveEventListener("keydown", _keyDownListener, true);
            Document.RemoveEventListener("keyup", _keyUpListener, true);

            _canvas = null;
            _resourceLoaded = null;
            _maskedResourceLoaded = null;

            GameObject.Clear();
        }
示例#13
0
        public void Start()
        {
            _initialized = false;
            _loaded = false;

            GameObject.Objects = new List<GameObject>();
            _resourcesToLoad = 0;
            _resourcesLoaded = 0;
            _gameSystems = new List<GameSystem>();

            jQuery.FromElement(Overlay).Empty();

            _resourcesLoadedLabel = Document.GetElementById("LoadedResources");
            _resourcesLoadedLabel.InnerHTML = _resourcesLoaded.ToString();
            _resourcesToLoadLabel = Document.GetElementById("TotalResources");
            _resourcesToLoadLabel.InnerHTML = _resourcesToLoad.ToString();

            if (ShowWaitMessage) jQuery.Select(".WaitMessage").Show();
            else jQuery.Select(".WaitMessage").Hide();

            // Get reference to canvas element
            _canvas = (CanvasElement)jQuery.Select(".GameCanvas").GetElement(0);

            Document.AddEventListener("blur", _blurListener, true);
            Document.AddEventListener("focus", _focusListener, true);

            Document.AddEventListener("keydown", _keyDownListener, true);
            Document.AddEventListener("keyup", _keyUpListener, true);

            Init();

            InitializeSystems();

            _initialized = true;
            HideWaitScreen();
        }
示例#14
0
 public void texImage2D(int target, int level, CanvasElement canvas, bool flipY, bool asPremultipliedAlpha)
 {
     return;
 }
示例#15
0
        public static int OffsetX(CanvasElement canvas, ElementEvent e)
        {
            int x = 0;
            MouseCanvasElement element = (MouseCanvasElement)(object)canvas;
            MouseEvent me = (MouseEvent)(object)e;
            if (element.offsetParent != null)
            {
                do
                {
                    x += element.offsetLeft;
                } while ((element = element.offsetParent) != null);
            }

            // Add padding and border style widths to offset
            //x += me.stylePaddingLeft;

            //x += me.styleBorderLeft;

            return me.PageX - x;
        }
示例#16
0
文件: Program.cs 项目: dested/CTFMMO
        private static void start()
        {
            canvas = (CanvasElement)Document.GetElementById("canvas");
            context = (CanvasRenderingContext2D)canvas.GetContext(CanvasContextId.Render2D);

            Offset = new Vector2(0, 0);

            Vector2 draggingPos = null;
            canvas.OnMousedown = @event =>
            {
                int mouseX = ((dynamic)@event).pageX;
                int mouseY = ((dynamic)@event).pageY;
                draggingPos = new Vector2(mouseX, mouseY);
            };
            canvas.OnMouseup = @event =>
            {
                /*
                                if (draggingPos == null) return;

                                int mouseX = ((dynamic)@event).pageX;
                                int mouseY = ((dynamic)@event).pageY;

                                draggingPos = new Vector2(draggingPos.X - mouseX, draggingPos.Y - mouseY);

                                Offset = new Vector2(Offset.X + draggingPos.X, Offset.Y + draggingPos.Y);
                                draw();


                */
                draggingPos = null;
            };
            Document.OnMousemove = @event =>
            {
                if (draggingPos == null) return;

                int mouseX = ((dynamic)@event).pageX;
                int mouseY = ((dynamic)@event).pageY;

                Offset = new Vector2(Offset.X + (draggingPos.X - mouseX) * 6, Offset.Y + (draggingPos.Y - mouseY) * 6);

                draggingPos = new Vector2(mouseX, mouseY);
                Draw();
            };



            canvas.Width = Document.Body.ClientWidth - 100;
            canvas.Height = Document.Body.ClientHeight - 100;
            context.Save();
            context.Font = "50px Arial";
            context.FillText("Loading...", canvas.Width / 2, canvas.Height / 2);
            context.Restore();


            Window.OnKeydown = @event =>
            {
                if (((dynamic)@event).keyCode == 17)
                {
                    drawLines = !drawLines;
                }
                Draw();
            };


        
             


            Window.SetTimeout(() =>
            {
                Console.WriteLine("Started");
                Console.Profile();

                Stopwatch sw = new Stopwatch();
                sw.Start();
                tree = new RTree<Player>();
                players = new List<Player>();
                for (int j = 0; j < numberOfPlayers; j++)
                {
                    var player = new Player(nextId());
                    player.X = rand.Next(0, gameSize);
                    player.Y = rand.Next(0, gameSize);
                    players.Add(player);
                    tree.Add(new Rectangle(player.X, player.Y), player);
                }

                buildClusters(viewRadius);

                sw.Stop();
                Console.ProfileEnd();
                Console.WriteLine(string.Format("Time {0}", sw.ElapsedMilliseconds));
                Console.WriteLine("Done");
                Draw();
            });
        }
示例#17
0
 public Pattern CreatePattern(CanvasElement canvas, string repetition) {
     return null;
 }
示例#18
0
 public void texSubImage2D(int target, int level, int xoffset, int yoffset, CanvasElement canvas, bool flipY)
 {
     return;
 }
示例#19
0
 public void DrawImage(CanvasElement image, double sx, double sy, double sw, double sh, double dx, double dy, double dw, double dh) {
 }
示例#20
0
        public void Setup(CanvasElement canvas)
        {
            canvas.AddEventListener("dblclick", OnDoubleClick, false);
            //canvas.AddEventListener("mousemove", OnMouseMove, false);
            //canvas.AddEventListener("mouseup", OnMouseUp, false);
            //canvas.AddEventListener("pointerdown", OnPointerDown, false);
            canvas.AddEventListener("mousedown", OnMouseDown, false);
            canvas.AddEventListener("mousewheel", OnMouseWheel, false);
            canvas.AddEventListener("DOMMouseScroll", OnMouseWheel, false);  // this is for firefox as it does not support mousewheel
            canvas.AddEventListener("touchstart", OnTouchStart, false);
            canvas.AddEventListener("touchmove", OnTouchMove, false);
            canvas.AddEventListener("touchend", OnTouchEnd, false);
            canvas.AddEventListener("gesturechange", OnGestureChange, false);
            canvas.AddEventListener("gesturestart", OnGestureStart, false);
            canvas.AddEventListener("gestureend", OnGestureEnd, false);
            Document.Body.AddEventListener("keydown", OnKeyDown, false);
            //canvas.AddEventListener("MSGestureChange", OnGestureChange, false);
            //canvas.AddEventListener("mouseout", OnMouseUp, false);

            // MS Touch code
            canvas.AddEventListener("pointerdown", OnPointerDown, false);

            canvas.AddEventListener("pointermove", OnPointerMove, false);

            canvas.AddEventListener("pointerup", OnPointerUp, false);

            // End MS touch code

            RenderContext.ViewCamera.Lat = StartLat;
            RenderContext.ViewCamera.Lng = StartLng;
            RenderContext.ViewCamera.Zoom = StartZoom;

            RenderContext.TargetCamera = RenderContext.ViewCamera.Copy();

            if (RenderContext.gl == null)
            {

                foregroundCanvas = (CanvasElement)Document.CreateElement("canvas");
                foregroundCanvas.Width = canvas.Width;
                foregroundCanvas.Height = canvas.Height;
                fgDevice = (CanvasContext2D)foregroundCanvas.GetContext(Rendering.Render2D);
            }
            webFolder = new Folder();
            webFolder.LoadFromUrl("http://www.worldwidetelescope.org/wwtweb/catalog.aspx?X=ImageSets5", SetupComplete);

            WebFile webFile = new WebFile("http://www.worldwidetelescope.org/wwtweb/weblogin.aspx?user=12345678-03D2-4935-8D0F-DCE54C9113E5&Version=HTML5&webkey=AX2011Gqqu&platform=web");
            webFile.Send();
        }
示例#21
0
        public static int OffsetY(CanvasElement canvas, ElementEvent e)
        {
            int y = 0;
            MouseCanvasElement element = (MouseCanvasElement)(object)canvas;
            MouseEvent me = (MouseEvent)(object)e;
            if (element.offsetParent != null)
            {
                do
                {
                    y += element.offsetTop;
                } while ((element = element.offsetParent) != null);
            }

            // Add padding and border style widths to offset
            //y += me.stylePaddingTop;

            //y += me.styleBorderTop;

            return me.PageY - y;
        }
示例#22
0
        private void initializeMinimap()
        {
            this.minimapCanvas = Document.GetElementById("minimapCanvas").As<CanvasElement>();

            this.minimapCanvas.Width = this.game.Map.GetWidth() * Renderer.MinimapBlockSize;
            this.minimapCanvas.Height = this.game.Map.GetHeight() * Renderer.MinimapBlockSize;
            this.minimapCanvas.Style.Width = this.minimapCanvas.Width.ToString() + "px";
            this.minimapCanvas.Style.Height = this.minimapCanvas.Height.ToString() + "px";

            this.minimapCtx = (CanvasContext2D)this.minimapCanvas.GetContext(Rendering.Render2D);
        }