AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Pokemon Pokedex programmieren - funktioniert nicht!
Thema durchsuchen
Ansicht
Themen-Optionen

Pokemon Pokedex programmieren - funktioniert nicht!

Ein Thema von entwickler · begonnen am 4. Nov 2011 · letzter Beitrag vom 28. Dez 2011
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von entwickler
entwickler

Registriert seit: 16. Feb 2011
Ort: Herten
78 Beiträge
 
Delphi 5 Professional
 
#11

AW: Pokemon Pokedex programmieren - funktioniert nicht!

  Alt 5. Nov 2011, 12:30
Wow, bei mir funktioniert das jetzt auch, nur ein kleiner Fehler ist noch drin: Wenn ich z. B. 'Arceus' indas Testprogramm eingebe, bekomme ich hinterher ein Bild von 'Kikugi'.

Du musstest einfach nur x und y vertauschen:

Delphi-Quellcode:
procedure GetPokemon(Pokemon : TPokemon; Image : TImage);
  var
    Bitmap : TBitmap;
    x, y :Integer;
  begin
    Pokemon_Pictures := TPokemon_Pictures.Create(Application);
      try
        Bitmap := TBitmap.Create;
          try
            Bitmap.Assign(Pokemon_Pictures.Image1.Picture.Graphic);
            if (Pokemon>=Bisasam) and (Pokemon<=Arceus) then
                begin
                y := Ord(Pokemon) div 25; // vertauscht
                x := Ord(Pokemon) Mod 25; // vertauscht
                Image.Canvas.CopyRect(rect(0, 0, 80, 80), BitMap.Canvas, rect(x*80,y*80, (x+1)*80,(y+1)* 80));
                end
              else
                raise Exception.Create('Angefordertes Pokemon konnte nicht gefunden werden!');
        finally
        Bitmap.Free;
        end;
    finally
      Pokemon_Pictures.Free;
    end;
  end;
Vielen Dank für deine/ eure Hilfe! Ein Pokemon scheine ich jedoch vergessen haben aufzulisten...

Es ist Porygon2:

Delphi-Quellcode:
type
  TPokemon =
  (Bisasam, Bisaknosp, Bisaflor, Glumanda, Glutexo, Glurak, Schiggy, Schillok, Turtok,
    Raupy, Safcon, Smettbo, Hornliu, Kokuna, Bibor, Taubsi, Tauboga, Tauboss, Rattfratz,
    Rattikarl, Habitak, Ibitak, Rettan, Arbok, Pikachu, Raichu, Sandan, Sandamer, Nidoran_w,
    Nidorina, Nidoqueen, Nidoran_m, Nidorino, Nidoking, Piepi, Pixi, Vulpix, Vulnona, Pummeluff,
    Knuddeluff, Zubat, Golbat, Myrapla, Duflor, Giflor, Paras, Parasek, Bluzuk, Omot, Digda,
    Digdri, Mauzi, Snobilikat, Enton, Entoron, Menki, Rasaff, Fukano, Arkani, Quapsel, Quaputzi,
    Quappo, Abra, Kadabra, Simsala, Machollo, Maschock, Machomei, Knofensa, Ultrigaria, Sarzenia,
    Tentacha, Tentoxa, Kleinstein, Georok, Geowaz, Ponita, Gallopa, Flegmon, Lahmus, Magnetilo,
    Magneton, Porenta, Dodu, Dodri, Jurob, Jugong, Sleima, Sleimok, Muschas, Austos, Nebulak,
    Alpollo, Gengar, Onix, Traumato, Hypno, Krabby, Kingler, Voltobal, Lektrobal, Owei, Kokowei,
    Tragosso, Knogga, Kicklee, Nockchan, Schlurp, Smogon, Smogmog, Rihorn, Rizeros, Chaneira,
    Tangela, Kangama, Seeper, Seemon, Goldini, Golking, Sterndu, Starmie, Pantimos, Sichlor,
    Rossana, Elektek, Magmar, Pinsir, Tauros, Karpador, Garados, Lapras, Ditto, Evoli, Aquana,
    Blitza, Flamara, Porygon, Amonitas, Amoroso, Kabuto, Kabutops, Aerodactyl, Relaxo, Arktos,
    Zapdos, Lavados, Dratini, Dragonir, Dragoran, Mewtu, Mew,
    Endivie, Lorblatt, Meganie, Feurigel, Igelavar, Tornupto, Karnimani, Tyracroc, Impergator,
    Wiesor, Wiesenior, Hoothoot, Noctuh, Ledyba, Ledian, Webarak, Ariados, Iksbat, Lampi, Lanturn,
    Pichu, Pii, Fluffeluff, Togepi, Togetic, Natu, Xatu, Voltilamm, Waaty, Ampharos, Blubella,
    Marill, Azumarill, Mogelbaum, Quaxo, Hoppspross, Hubelupf, Papungha, Griffel, Sonnkern,
    Sonnflora, Yanma, Felino, Morlord, Psiana, Nachtara, Kramurx, Laschoking, Traunfugil,
    Icognito, Woingenau, Girafarig, Tannza, Forstellka, Dummisel, Skorgla, Stahlos, Snubbull,
    Granbull, Baldorfish, Scherox, Pottrott, Skaraborn, Sniebel, Teddiursa, Ursaring, Schneckmag,
    Magcargo, Quiekel, Keifel, Corasonn, Remoraid, Octillery, Botogel, Mantax, Panzaeron,
    Hunduster, Hundemon, Seedraking, Phanpy, Donphan,
 Porygon2, // vergessen!
 Damhirplex, Farbeagle, Rabauz,
    Kapoera, Kussilla, Elekid, Magby, Miltank, Heiteira, Raikou, Entei, Suicune, Larvitar, Pupitar,
    Despotar, Lugia, Ho_Oh, Celebi,
    Geckarbor, Reptain, Gewaldro, Flemmli, Jungglut, Lohgock, Hydropi, Moorabbel, Sumpex, Fiffyen,
    Magnayen, Zigzachs, Geradaks, Waumpel, Schaloko, Papinella, Panekon, Pudox, Loturzel, Lombrero,
    Kappalores, Samurzel, Blanas, Tengulist, Schwalbini, Schwalboss, Wingull, Pelipper, Trasla,
    Kirlia, Guardevoir, Gehweiher, Maskeregen, Knilz, Kapilz, Bummelz, Muntier, Letarking, Nincada,
    Ninjask, Ninjatom, Flurmel, Krakeelo, Krawumms, Makuhita, Hariyama, Azurill, Nasgnet, Eneco,
    Enekoro, Zobiris, Flunkifer, Stollunior, Stollrak, Stolloss, Meditie, Meditalis, Frizelbliz,
    Voltenso, Plusle, Minun, Volbeat, Illumise, Roselia, Schluppuck, Schlukwech,
    Kanivanha, Tohaido, Wailmer, Wailord, Camaub, Camerupt, Qurtel, Spoink, Groink, Pandir,
    Knacklion, Vibrava, Libelldra, Tuska, Noktuska, Wablu, Altaria, Sengo, Vipitis, Lunastein,
    Sonnfel, Schmerbe, Welsar, Krebscorps, Krebutack, Puppance, Lepumentas, Liliep, Wielie,
    Anorith, Armaldo, Barschwa, Milotic, Formeo, Kecleon, Shuppet, Banette, Zwirrlicht, Zwirrklop,
    Tropius, Palimpalim, Absol, Isso, Schneppke, Firnontor, Seemops, Seejong, Walraisa, Perlu,
    Aalabyss, Saganabyss, Relicanth, Liebiskus, Kindwurm, Draschel, Brutalanda, Tanhel, Metang,
    Metagross, Regirock, Regice, Registeel, Latias, Latios, Kyogre, Groudon, Rayquaza, Jirachi,
    Deoxys,
    Chelast, Chelcarain, Chelterrar, Panflam, Panpyro, Panferno, Plinfa, Pliprin, Impoleon,
    Staralili, Staravia, Staraptor, Bidiza, Bidifas, Zirpurze, Zirpeise, Sheinux, Luxio, Luxtra,
    Knospi, Roserade, Koknodon, Rameidon, Schilterus, Bollterus, Burmy, Burmadame, Moterpel,
    Wadribie, Honweisel, Pachirisu, Bamelin, Bojelin, Kikugi, Kinoso, Schalellos, Gastrodon,
    Ambidiffel, Driftlon, Drifzepeli, Haspiror, Schlapor, Traunmagil, Kramshef, Charmian, Shnurgarst,
    Klingplim, Skunkapuh, Skuntank, Bronzel, Bronzong, Mobai, Pantimimi, Wonneira, Plaudagei,
    Kryppuk, Kaumalat, Knarksel, Knakrack, Mampfaxo, Riolu, Lucario, Hippopotas, Hippoterus,
    Pionskora, Piondragi, Glibunkel, Toxiquak, Venuflibis, Finneon, Lumineon, Mantirps,
    Shnebedeck, Rexblisar, Snibunna, Magnezone, Schlurplek, Rihornior, Tangoloss, Elevoltek,
    Magbrant, Togekiss, Yanmega, Folipurba, Glaziola, Skorgro, Mamutel, Porygon_Z, Galagladi,
    Voluminas, Zwirrfinst, Frosdedje, Rotom, Selfe, Vesprit, Tobutz, Dialga, Palkia, Heatran,
    Regigigas, Giratina, Cresselia, Phione, Manaphy, Darkrai, Shaymin, Arceus);
Traue einem PC nur soweit, wie du ihn werfen kannst.

Geändert von entwickler ( 5. Nov 2011 um 12:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von entwickler
entwickler

Registriert seit: 16. Feb 2011
Ort: Herten
78 Beiträge
 
Delphi 5 Professional
 
#12

AW: Pokemon Pokedex programmieren - funktioniert nicht!

  Alt 11. Nov 2011, 21:26
Die Fortsetzung habe ich nun gepostet unter:

http://www.delphipraxis.net/164427-p...ml#post1135784
Traue einem PC nur soweit, wie du ihn werfen kannst.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: Pokemon Pokedex programmieren - funktioniert nicht!

  Alt 11. Nov 2011, 23:18
2 Dinge frage ich mich jetzt gerade?

1. Wozu erzeugst du eine Instanz von TPokemon_Pictures ? Nur als Container für ein Bitmap? Und als Owner Application ?
2. Was sollen wir nun mit diesen ganzen HuffelPuffs-Enums?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von entwickler
entwickler

Registriert seit: 16. Feb 2011
Ort: Herten
78 Beiträge
 
Delphi 5 Professional
 
#14

AW: Pokemon Pokedex programmieren - funktioniert nicht!

  Alt 12. Nov 2011, 12:09
@ Sir Rufo

1. Anders hat es anfangs bei mir nicht funktioniert. Ich habe erst eine jpg in das Image geladen und anschließend wollte ich die jpg- Datei als Grafik an die EXE übergeben. Nachdem irgendein Fehler auftrat hab ich das so versucht - und es hat funktioniert. Die Variable Bitmap(TBitmap) habe ich hinterher benutzt, um die JPG in einen Bitmap zu verwandeln, sonst, so Delphi, kann ich nichts aus derGrafik ausschneiden. Wie hättest du/ hätten Sie das denn gemacht?

2. Ganz einfach: Die Grafiken können dann hinterher auf Wunsch einzeln in einem Image angezeigt werden, einzelne Kommentare können dann aus einer Datenbank geladen und beispielsweise im Label o.ä. angezeigt werden (siehe Thema).
Traue einem PC nur soweit, wie du ihn werfen kannst.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#15

AW: Pokemon Pokedex programmieren - funktioniert nicht!

  Alt 12. Nov 2011, 13:04
[OT]
IHR ...
Wie hättet Ihr das denn gemacht?

[/OT]
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#16

AW: Pokemon Pokedex programmieren - funktioniert nicht!

  Alt 12. Nov 2011, 17:22
1. so
Delphi-Quellcode:
procedure GetPokemon(Pokemon : TPokemon; Image : TImage);
  var
    Bitmap : TBitmap;
    x, y :Integer;
  begin

    // Einen Owner gibt man nur dann an, wenn dieser Owner für das Entsorgen der
    // Instanz verantwortlich sein soll ... dem ist hier aber nicht, also schon mal
    // auf jeden Fall als Owner nil übergeben (kein Owner)

    Pokemon_Pictures := TPokemon_Pictures.Create( nil );
      try
        Bitmap := TBitmap.Create;
          try
            Bitmap.Assign(Pokemon_Pictures.Image1.Picture.Graphic);
            if (Pokemon>=Bisasam) and (Pokemon<=Arceus) then
                begin
                y := Ord(Pokemon) div 25; // vertauscht
                x := Ord(Pokemon) Mod 25; // vertauscht
                Image.Canvas.CopyRect(rect(0, 0, 80, 80), BitMap.Canvas, rect(x*80,y*80, (x+1)*80,(y+1)* 80));
                end
              else
                raise Exception.Create('Angefordertes Pokemon konnte nicht gefunden werden!');
        finally
        Bitmap.Free;
        end;
    finally
      Pokemon_Pictures.Free;
    end;
  end;
Sehe ich das richtig, du hast da ein Formular (TPokemon_Pictures) mit einem Image, in dem die Bilder gespeichert sind ... schon recht gruselig
denn ...
2. Ganz einfach: Die Grafiken können dann hinterher auf Wunsch einzeln in einem Image angezeigt werden, einzelne Kommentare können dann aus einer Datenbank geladen und beispielsweise im Label o.ä. angezeigt werden (siehe Thema).
Wozu denn so ein MischMasch?
Einmal liegen die Informationen als Bild vor (aus dem werden Teile dann ausgeschnitten) - fest im Programm oder wird das extern geladen?
Dann wiederum ein Enum fest verdrahtet im Programm, welche dann als Referenz auf diese Teil-Bilder benutzt werden.
Und dann noch eine Datenbank wo (ja ganz dynamisch) weitere Informationen zu finden sind.

Entweder alles fest verdrahten oder alles dynamisch, aber nicht so ein Gewurschtel

Leg doch einfach alles in die Datenbank (Namen, Bilder, Informationen) und lade dir einfach alles von selbiger.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von entwickler
entwickler

Registriert seit: 16. Feb 2011
Ort: Herten
78 Beiträge
 
Delphi 5 Professional
 
#17

AW: Pokemon Pokedex programmieren - funktioniert nicht!

  Alt 28. Dez 2011, 19:53
Gute Idee mit der Datenbank - so werde ich es machen.

Scheint mir, jetzt wo du's schreibst, auch irgendwie die einfachste Methode zu sein.

Vielen Dank euch allen!
Traue einem PC nur soweit, wie du ihn werfen kannst.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 16:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz