Popularny problem z kompilacją
Witam. Podczas debugowania programu pisanego w C# pojawia się taki oto błąd:
[code]
Error 1 The type or namespace name 'Form1' could not be found (are you missing a using directive or an assembly reference?)[/code]
Wiem, że jest to dosyć częsty błąd i wynika on z rozbieżności nazw ale dokładnie nie wiem o co chodzi i co trzeba pozmieniać. Jest to program Windows Forms.
Oto kod programu z tymże błędem:
(jest to kod aplikacji windows forms "tetris" zrobiony na podstawie tego kursu: http://www.centrumxp.pl/dotNet/1185,Tetris-w-C.aspx )
[code]using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
static class Program
{
///
/// The main entry point for the application.
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
[/code]
A tutaj kod z Form1:
[code]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Tetris
{
public partial class Form1 : Form
{
private Plansza_Tetris Plansza_do_gry;
private Plansza_Tetris nastepny;
private Label Pkt, Poziom;
private Label lblPkt, lblPoziom;
private Label info;
public int level;
public int punkty;
private bool szybka;
private bool gra;
private bool pauza;
public Form1()
{
InitializeComponent();
Inicjuj();
}
private void Inicjuj()
{
level = 1;
punkty = 0;
gra = false;
pauza = false;
licznik.Interval = 1000;
szybka = false;
this.Plansza_do_gry = new Plansza_Tetris(10, 18);
this.nastepny = new Plansza_Tetris(4, 4);
this.Plansza_do_gry.Location = new System.Drawing.Point(15, 15);
this.Plansza_do_gry.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.Plansza_do_gry.Name = "Plansza_do_gry";
this.Plansza_do_gry.TabIndex = 0;
this.Plansza_do_gry.Paint += new PaintEventHandler(this.Plansza_Paint);
this.nastepny.Location = new System.Drawing.Point(180, 15);
this.nastepny.Name = "nastepny";
this.nastepny.TabIndex = 0;
this.nastepny.Paint += new PaintEventHandler(this.Plansza_Paint);
this.Controls.Add(this.nastepny);
this.Controls.Add(this.Plansza_do_gry);
this.lblPkt = new Label();
this.lblPoziom = new Label();
this.Pkt = new Label();
this.Poziom = new Label();
this.info = new Label();
this.lblPkt.AutoSize = true;
this.lblPkt.Location = new System.Drawing.Point(180, 120);
this.lblPkt.Name = "lblPkt";
this.lblPkt.Size = new System.Drawing.Size(35, 13);
this.lblPkt.TabIndex = 0;
this.lblPkt.Text = "Punkty:";
this.lblPoziom.AutoSize = true;
this.lblPoziom.Location = new System.Drawing.Point(180, 100);
this.lblPoziom.Name = "lblPoziom";
this.lblPoziom.Size = new System.Drawing.Size(35, 13);
this.lblPoziom.TabIndex = 0;
this.lblPoziom.Text = "Poziom:";
this.Pkt.AutoSize = true;
this.Pkt.Location = new System.Drawing.Point(230, 120);
this.Pkt.Name = "Pkt";
this.Pkt.Size = new System.Drawing.Size(35, 13);
this.Pkt.TabIndex = 0;
this.Pkt.Text = "0";
this.Poziom.AutoSize = true;
this.Poziom.Location = new System.Drawing.Point(230, 100);
this.Poziom.Name = "Poziom";
this.Poziom.Size = new System.Drawing.Size(35, 13);
this.Poziom.TabIndex = 0;
this.Poziom.Text = "1";
this.info.AutoSize = true;
this.info.Location = new System.Drawing.Point(180, 140);
this.info.Name = "info";
this.info.Size = new System.Drawing.Size(50, 50);
this.info.TabIndex = 0;
this.info.Text = "Enter - Start\n"
+ "Esc - Koniec\n"
+ "Spacja - Pauza\n"
+ "<- -> - lewo / prawo\n"
+ "strzalka w gore - obrot w prawo\n\n"
+ "strzalka w dol - przyspieszenie\n"
+ " (nacisnac raz zeby przyspieszyc\n"
+ " i drugi raz zeby zwolnic)\n\n"
+ "W / Q - obrót w prawo / lewo";
this.Controls.Add(this.lblPoziom);
this.Controls.Add(this.lblPkt);
this.Controls.Add(this.Pkt);
this.Controls.Add(this.Poziom);
this.Controls.Add(this.info);
}
private void licznik_Tick(object sender, EventArgs e)
{
if (!Plansza_do_gry.wdol())
{
if (szybka)
{
szybka = false;
if (level < 11)
licznik.Interval = 1000 - 100 * (level - 1);
else if (level < 21)
licznik.Interval = 100 - 10 * (level - 1);
else licznik.Interval = 10;
}
int pkt = Plansza_do_gry.linie();
punkty += (pkt * pkt);
Pkt.Text = punkty.ToString();
if (punkty >= level * 10)
{
level++;
Poziom.Text = level.ToString();
if (level < 11)
licznik.Interval -= 100;
else if (level < 21)
licznik.Interval -= 10;
else licznik.Interval = 10;
}
figura f = nastepny.getfigura();
if (!Plansza_do_gry.rysujfigure(5, 0, f))
{
licznik.Stop();
licznik.Interval = 1000;
MessageBox.Show("koniec");
gra = false;
f = null;
Plansza_do_gry.reset();
nastepny.reset();
level = 1;
punkty = 0;
Pkt.Text = "0";
Poziom.Text = "1";
return;
}
nastepny.reset();
nastepny.rysujfigure(0, 0, new figura());
}
}
private void Plansza_Paint(object sender, PaintEventArgs e)
{
Plansza_Tetris p = (Plansza_Tetris)sender;
p.odswiez();
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter && !gra)
{
gra = true;
Plansza_do_gry.rysujfigure(5, 0, new figura());
nastepny.rysujfigure(0, 0, new figura());
licznik.Start();
}
else if (e.KeyCode == Keys.Left && gra && !pauza) Plansza_do_gry.wlewo();
else if (e.KeyCode == Keys.Right && gra && !pauza) Plansza_do_gry.wprawo();
else if (e.KeyCode == Keys.Q && gra && !pauza) Plansza_do_gry.obroc_w_lewo();
else if ((e.KeyCode == Keys.W || e.KeyCode == Keys.Up) && gra && !pauza) Plansza_do_gry.obroc_w_prawo();
else if (e.KeyCode == Keys.Down && gra && !pauza)
{
if (szybka)
{
licznik.Interval = 1000 - 100 * (level - 1);
szybka = false;
}
else if (!szybka)
{
licznik.Interval = 50;
szybka = true;
}
}
else if (e.KeyCode == Keys.Escape && gra)
{
gra = false;
Plansza_do_gry.reset();
nastepny.reset();
level = 1;
punkty = 0;
Poziom.Text = "1";
Pkt.Text = "0";
licznik.Stop();
licznik.Interval = 1000;
}
else if (e.KeyCode == Keys.Space && gra)
{
if (pauza)
{
licznik.Start();
pauza = false;
}
else
{
licznik.Stop();
pauza = true;
}
}
}
private void licznik_Tick_1(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
[/code]
[b][size=7][size=3]A gdyby to nie zobrazowało mojego problemu to jeszcze podsyłam cały projekt:[/size][/size][/b]
http://www41.zippyshare.com/v/5276777/file.html
Z góry dzięki :)
Odpowiedzi: 5
Wystarczyłoby postawić Breakpointa w metodzie do obsługi wciskanych klawiszy, żebyś się przekonał, że ona nie jest w ogóle wywoływana. Musisz dodać KeyEventHandlera.
No właśnie zdebugowałem i żadnych błędów ani ostrzeżeń. Gra sie uruchamia tylko że klocków nie ma :P możesz sprawdzić bo wysłałem cały projekt na serwer.
Do tego służy Debugger:).
Dzięki !! Odpala się :) ale, mam problem kolejny, tzn pojawia sie to okienko do gry i klawisz ENTER ma uruchamiać grę, wciskam enter i nic... klocków nie ma... Dlaczego? :(
Masz zadeklarowane dwie przestrzenie nazw: namespace WindowsFormsApplication1 i namespace Tetris.
Strona 1 / 1