system: MacOSX 10.3.8 w/ mono1.1.5
code:
________________________________________________________________________ __________________________________
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace Bouncy
{
/ /----------------------------------------------------------------------- -------
// Ball
/ /----------------------------------------------------------------------- -------
public class Ball
{
public Ball( System.Drawing.Size bounds )
{
_armPen = new Pen(Color.Red, (float)3.0);
_center = new Point(3,3);
_size = new Size( bounds.Width + 5, bounds.Height + 5);
_velocity = new Point(1,1);
}
// bounce the ball around in a bounded rectangle
public void Update( System.Drawing.Size bounds )
{
_center.X += _velocity.X;
if( _center.X < 0 ) { _center.X = 0; _velocity.X = -_velocity.X; }
if( _center.X > bounds.Width ) { _center.X = bounds.Width; _velocity.X = -_velocity.X; }
_center.Y += _velocity.Y;
if( _center.Y < 0 ) { _center.Y = 0; _velocity.Y = -_velocity.Y; }
if( _center.Y > bounds.Height ) { _center.Y = bounds.Height; _velocity.Y = -_velocity.Y; }
}
// draw the 'ball'
public void Draw(Graphics g)
{
g.DrawRectangle( _armPen, new Rectangle( _center,
_size) );
} private Color _ballColor;
private Pen _armPen;
private Size _size;
private Point _velocity;
private Point _center;
}/ /----------------------------------------------------------------------- -------
// MainForm
/ /----------------------------------------------------------------------- -------
public class MainForm : System.Windows.Forms.Form
{
[STAThread]
static void Main()
{
Application.Run(new MainForm());
}
public MainForm()
{
InitializeComponent();
} protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.timer1 = new
System.Windows.Forms.Timer(this.components);
this.drawBox = new System.Windows.Forms.GroupBox();
this.SuspendLayout(); // timer1
this.timer1.Enabled = true;
this.timer1.Tick += new
System.EventHandler(this.timer1_Tick);
this.timer1.Interval = 1000/60; // drawBox
this.drawBox.Location = new System.Drawing.Point(120,
60);
this.drawBox.Name = "drawBox";
this.drawBox.Size = new System.Drawing.Size(400, 200);
this.drawBox.TabIndex = 3;
this.drawBox.TabStop = false;
this.drawBox.Text = "Drawing Area";
this.drawBox.Visible = false;// MainForm
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.BackColor = System.Drawing.Color.LightBlue;
this.ClientSize = new System.Drawing.Size(640, 320);
this.Controls.AddRange(new System.Windows.Forms.Control[] { this.drawBox });
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
this.MaximizeBox = false;
this.Name = "MainForm";
this.Text = "MainForm";
this.Load += new System.EventHandler(this.OnLoad);
this.ResumeLayout(false);
}
private void OnLoad(object sender, System.EventArgs e)
{
_ball = new Ball( drawBox.Size );backBrush = new SolidBrush(Color.Black);
InitForSimpleDrawing();
} private void timer1_Tick(object sender, System.EventArgs e)
{
// redraw the whole form
_ball.Update( this.drawBox.Size );
DrawSimple();
} private void DrawSimple()
{
Graphics clientDC = this.CreateGraphics();clientDC.FillRectangle(backBrush, drawBox.Left, drawBox.Top, drawBox.Width, drawBox.Height);
_ball.Draw(clientDC);
drawBox.Invalidate();
}
private System.ComponentModel.IContainer components;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.GroupBox drawBox;
private SolidBrush backBrush;
private Ball _ball;
}
}_______________________________________________ Mono-winforms-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-winforms-list
