24. november 2007 - 21:57Der er
3 kommentarer og 1 løsning
Flytte billede ved at holde knap nede og ramme andre billeder
Hej
Jeg er rimelig ny indenfor C#. Som mit første "rigtige" projekt kunne jeg godt tænke mig at lave et simpelt spil (ved godt C++ er mere beregnet til sådan noget)
Jeg indsætter f.eks 5 picturebox'es hvor der er et forskelligt billede i hver.
Man skal så så kunne flytte pictureBox1 (billedet) ved at bruge pilene på tastaturet: op, ned, højre og venstre. Hvis man så rammer ind i pictureBox 2,3 eller 4 så kommer der en alert "Du ramte det forkerte billede" og det skal gentage sig, så lige meget hvor mange gange man rammer ind i dem.
Hvis man så istedet rammer ind i pictureBox5 så skal den alert "Du ramte det rigtige billede"
Håber nogle vil hjælpe mig, havde ikke mere end 75 point tilbage
Hvis du vil lave meget simple spil i C# så kan du bruge GDI+, ved at lytte på det event der kommer når din Form tegnes. Det gøres ved at lave event på "Paint". På den måde kan du tegne ting direkte på formen (både billeder og cirkler osv.). På den måde slipper du for picturebox.
Hvis du vil lave rigtige spil i C# så skal du klart kigge på xna frameworket: msdn.microsoft.com/xna/. Med xna kan du lave flotte 2d og 3d spil og det er meget let. XNA bygger på DirectX, så det skal også bruges.
Hvis du bruger messenger og får brug for lidt hjælp så kan du lige skrive tilbage, så smider jeg min mail ;)
Hvis du vil gøre det på din måde så har jeg lavet dette du kan kigge på:
---Form1.cs---
using System; using System.Drawing; using System.Windows.Forms;
namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
int speed = 5; Point lastPoint;
void checkAll() { if (pictureBox1.Bounds.IntersectsWith(pictureBox2.Bounds)) { MessageBox.Show("Du ramte ind i billede 2"); pictureBox1.Location = lastPoint; } if (pictureBox1.Bounds.IntersectsWith(pictureBox3.Bounds)) { MessageBox.Show("Du ramte ind i billede 3"); pictureBox1.Location = lastPoint; } if (pictureBox1.Bounds.IntersectsWith(pictureBox4.Bounds)) { MessageBox.Show("Du ramte ind i billede 4"); pictureBox1.Location = lastPoint; } if (pictureBox1.Bounds.IntersectsWith(pictureBox5.Bounds)) { MessageBox.Show("Du vinder!"); } } private void Form1_KeyDown(object sender, KeyEventArgs e) { lastPoint = pictureBox1.Location; Point newPoint = pictureBox1.Location;
if (e.KeyCode == Keys.Up) newPoint.Y -= speed; else if (e.KeyCode == Keys.Down) newPoint.Y += speed; else if (e.KeyCode == Keys.Left) newPoint.X -= speed; else if (e.KeyCode == Keys.Right) newPoint.X += speed;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.