AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign per Script erstellte Images in eine Array eingliedern
Thema durchsuchen
Ansicht
Themen-Optionen

per Script erstellte Images in eine Array eingliedern

Offene Frage von "mkinzler"
Ein Thema von Mortex · begonnen am 13. Okt 2017 · letzter Beitrag vom 14. Okt 2017
Antwort Antwort
Mortex

Registriert seit: 13. Okt 2017
5 Beiträge
 
#1

per Script erstellte Images in eine Array eingliedern

  Alt 13. Okt 2017, 17:58
Hallo,

ich programmiere zurzeit ein eigenes Jump ’n’ Run und bin gerade dabei es erst einmal zu strukturieren. Ich möchte alle Objekte im Spiel als Images verwenden, d.h.: Ich will z.Bsp. per Script in eine Groupbox namens "Groupbox Spielfeld" ein Image namens "Spieler" und 19 weitere Images namens "Gegner1" bis "Gegner19" erstellen. Wie das funktioniert, weiß ich bereits. Nun möchte ich aber diese frisch erstellten Images in eine Array "Charakter: array [1..20] of TImage;" einfügen, also wie: siehe angehängte Txt-Datei.
(Zu diesem Array kommen weitere Arrays für die Position, Vorhandensein und Textur der Images Hinzu, ebenfalls [1..20])
Delphi gibt mir aber eine Fehlermeldung aus: undefinierter Bezeichner Spieler, undefinierter Bezeichner Gegner1,.... undefinierter Bezeichner gegner19.

Was muss ich tun, dass Delphi diesen Code compilieren kann, sodass die 20 per Script erstellten Images gleich in die Array eingegliedert werden. Es wäre zu mühsam alle Images im Userform manuell zu erstellen und zu beschriften, da mindestens 100 weitere Images dazukommen werden, auf die ich dann auch zugreifen möchte (wie z.B. Hindernisse und Items)

Kann mir jemand mit diesem Problem helfen oder muss ich komplett umdenken?
Angehängte Dateien
Dateityp: txt Script.txt (1,3 KB, 18x aufgerufen)
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#2

AW: per Script erstellte Images in eine Array eingliedern

  Alt 13. Okt 2017, 18:02
Ich hab mir dein Script nicht angeguckt. Aber das hier... Charakter: array [1..20] of TImage; bitte abändern in Charakter: array [0 .. 19] of TImage;
  Mit Zitat antworten Zitat
Mortex

Registriert seit: 13. Okt 2017
5 Beiträge
 
#3

AW: per Script erstellte Images in eine Array eingliedern

  Alt 13. Okt 2017, 18:08
Ok, aber es hat auch mit [1..20] in anderen Projekten funktioniert...
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#4

AW: per Script erstellte Images in eine Array eingliedern

  Alt 13. Okt 2017, 18:16
Dass das funktioniert ist klar. Aber es ist falsch denn ein Array hat eine 0-basierte Zählung. Ein Array fängt bei 0 an, nicht bei 1.

Charakter[0] => erster Eintrag
Charakter[1] => zweiter Eintrag
Charakter[2] => dritter Eintrag
usw
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.869 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: per Script erstellte Images in eine Array eingliedern

  Alt 14. Okt 2017, 16:08
Dass das funktioniert ist klar. Aber es ist falsch denn ein Array hat eine 0-basierte Zählung. Ein Array fängt bei 0 an, nicht bei 1.
Ein dynamischer Array ja; ein statischer kann jede beliebige Grenzen haben.
Zitat:

Für dein Vorhaben brauchst du gar kein Array. Du kannst doch direkt auf "Spieler" und "GegnerX" zugreifen.
Wenn es auch Ziel ist, möglichst viel Performance zu verbraten.
Markus Kinzler
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#6

AW: per Script erstellte Images in eine Array eingliedern

  Alt 14. Okt 2017, 16:10
Zitat:
ein statischer kann jede beliebige Grenzen haben.
Verstehe ich nicht. Ich habe doch gar nicht von einer Grenze geschrieben sondern nur davon, dass ein Array (Zählung) bei 0 anfängt, nicht bei 1.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.108 Beiträge
 
Delphi 2009 Professional
 
#7

AW: per Script erstellte Images in eine Array eingliedern

  Alt 13. Okt 2017, 18:18
Was sollen denn diese ganzen Zuweisungen am Ende des "Scripts"? Derzeit funktionieren sie nicht, weil du den Array-Einträgen einfach irgendwelche Bezeichner zuweist, die gar nicht existieren.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Mortex

Registriert seit: 13. Okt 2017
5 Beiträge
 
#8

AW: per Script erstellte Images in eine Array eingliedern

  Alt 13. Okt 2017, 18:43
Wie ich es schon erklärt habe: Die Images werden erstellt und bekommen einen Namen. Und mit diesem Namen Sollen sie in der Array zugeteilt werden. Wie mache ich das, dass die Namen gefunden werden...sie sind da...aber nicht ganz. Und das verstehe ich als Anfänger nicht.
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#9

AW: per Script erstellte Images in eine Array eingliedern

  Alt 13. Okt 2017, 18:50
Für dein Vorhaben brauchst du gar kein Array. Du kannst doch direkt auf "Spieler" und "GegnerX" zugreifen.

Delphi-Quellcode:
(FindComponent('Spieler') as TImage). .....
(FindComponent('Gegner2') as TImage). .....

Oder halt so. Guck dir den Code genau an und lerne die Unterschiede zu deinem kennen!

Delphi-Quellcode:
var
 bit: TImage;
 i, AnzahlCharakter: Integer;
 Charakter: array [0 .. 19] of TImage;
begin
 AnzahlCharakter := Length(Charakter);

 bit := TImage.Create(GroupBoxSpielfeld);
 bit.Parent := GroupBoxSpielfeld;
 bit.Name := 'Spieler';
 bit.left := 0;
 bit.top := 10;
 bit.width := 50;
 bit.height := 50;
 bit.picture.LoadFromFile('Daten/Texturen/Leer.bmp');

 Charakter[0] := bit;

 For i := 1 to AnzahlCharakter - 1 do
  begin
   bit := TImage.Create(GroupBoxSpielfeld);
   bit.Parent := GroupBoxSpielfeld;
   bit.Name := 'Gegner' + InttoStr(i + 1);
   bit.left := 50 + i * 50;
   bit.top := 0;
   bit.width := 50;
   bit.height := 50;
   bit.picture.LoadFromFile('Daten/Texturen/Leer.bmp');

   Charakter[i] := bit;
  end;
end;
Kleiner Tipp: Delphi verzeiht viel. Aber lerne schon jetzt, dass man Groß- und Kleinschreibung respektieren sollte.

Geändert von Glados (13. Okt 2017 um 18:58 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz