Autor Beitrag
bellasaphira
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 29.01.18 21:27 
Hallo Community,

wir machen in Informatik in der Schule zurzeit Projektarbeit und unsere Gruppe hatte sich für das Thema Mensch ärgere dich nicht entschieden, doch sind Probleme bei der Programmierung der Images aufgetaucht, die als Spielfiguren dienen sollen:

Es wurde schon eine Prozedur programmiert, bei der man drei Mal würfeln darf, wie das der Fall ist, wenn alle Spielfiguren im Haus sind oder zum Teil auch im Stall. Nur ist es mir noch nicht gelungen, diese Bedingung auch umzusetzen. Gibt es eine Möglichkeit, hier mit der Pixelhöhe zu arbeiten und also zu sagen, wenn die Images in einem bestimmten Pixelbereich liegen, dass dann die Prozedur aufgerufen werden soll? Falls ihr einen anderen Lösungsvorschlag habt, ich bin für alles offen^^

Danke schon mal im Voraus :)
Frühlingsrolle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2062
Erhaltene Danke: 376

[Win NT] 5.1 x86 6.1 x64
[Delphi] 7 PE, 2006, 10.1 Starter, Lazarus - [C#] VS Exp 2012 - [Android API 15] VS Com 2015, Eclipse, AIDE - [C++] Builder 10.1
BeitragVerfasst: Mo 29.01.18 22:29 
Guten Abend bellasaphira und willkommen,

mein Vorschlag wäre, du nimmst als Spielfeld eine TPaintBox Komponente und zeichnest die Figuren entsprechend darauf. Dafür kannst du z.B. die TIcon Klasse verwenden, wenn es sich um Icons handelt, TBitmap, wenn es sich um ein eine BMP Datei handelt, TJpegImage wenn es eine JPG/JPEG Datei ist (uses jpeg; nachtragen) usw.

Ein Beispiel:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var
  Spielfigur: TIcon;
begin
  Spielfigur := TIcon.Create;  // TIcon Objekt erzeugen
  try
    Spielfigur.Width := 32;    // Breite und
    Spielfigur.Height := 32;   // Höhe festlegen
    Spielfigur.LoadFromFile('D:\Spielfigur.ico');  // Grafik aus einer Datei laden. 
    PaintBox1.Canvas.Draw(2020, Spielfigur);     // Spielfigur auf der Position 20/20 platzieren
  finally
     Spielfigur.Free;          // TIcon Objekt freigeben
  end;
end;

Die Funktion ptinrect() ist so eine, die ermittelt, ob sich etwas in einem bestimmten Bereich befindet. TRect ist dabei eine 4-eckige Fläche, in der man sucht, und TPoint entspricht einer Position (X/Y).

_________________
„Politicians are put there to give you the idea that you have freedom of choice. You don’t. You have no choice. You have owners. They own you. They own everything." (George Denis Patrick Carlin)
Symbroson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 332
Erhaltene Danke: 47

Linux Raspbian, Win10
C, C++, Python, Java, JavaScript, Delphi7, Casio Basic
BeitragVerfasst: Di 30.01.18 01:19 
ein anderer Ansatz: du musst doch irgendwie wissen, wo sich gerade deine Spielfiguren befinden. Dh. du solltest auch wissen, wieviele Männchen einer Farbe gerade zu Hause sind. Oder nicht?

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
Frühlingsrolle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2062
Erhaltene Danke: 376

[Win NT] 5.1 x86 6.1 x64
[Delphi] 7 PE, 2006, 10.1 Starter, Lazarus - [C#] VS Exp 2012 - [Android API 15] VS Com 2015, Eclipse, AIDE - [C++] Builder 10.1
BeitragVerfasst: Di 30.01.18 01:56 
Die Logik sollen sich die Schüler überlegen. Im Moment geht es eher ums Design. Bevor Fragen aufkommen, warum Grafiken flackern/flickern/flimmern, weil sie ein TImage auf einer TForm bewegen, sollten sie auf die TPaintBox ausweichen und es "besser" machen.

_________________
„Politicians are put there to give you the idea that you have freedom of choice. You don’t. You have no choice. You have owners. They own you. They own everything." (George Denis Patrick Carlin)
bellasaphira Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 07.02.18 21:31 
Dankeschön für die Hilfe von euch beiden^^

Ich habe mich nun doch für die Variante mit der Pixelhöhe entschieden habe, da ich mich mit der PaintBox nicht auskenne und bald Abgabetermin ist.

Wenn ich mal wieder genug Zeit habe, werde ich mich damit auseinandersetzen :D