![]() |
AW: Pokemon Pokedex programmieren - funktioniert nicht!
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:
Vielen Dank für deine/ eure Hilfe! Ein Pokemon scheine ich jedoch vergessen haben aufzulisten...
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; 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); |
AW: Pokemon Pokedex programmieren - funktioniert nicht!
|
AW: Pokemon Pokedex programmieren - funktioniert nicht!
2 Dinge frage ich mich jetzt gerade?
1. Wozu erzeugst du eine Instanz von
Delphi-Quellcode:
? Nur als Container für ein Bitmap? Und als Owner
TPokemon_Pictures
Delphi-Quellcode:
?
Application
2. Was sollen wir nun mit diesen ganzen HuffelPuffs-Enums? |
AW: Pokemon Pokedex programmieren - funktioniert nicht!
@ 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). |
AW: Pokemon Pokedex programmieren - funktioniert nicht!
[OT]
IHR ... Wie hättet Ihr das denn gemacht? :wink: [/OT] |
AW: Pokemon Pokedex programmieren - funktioniert nicht!
1. so
Delphi-Quellcode:
Sehe ich das richtig, du hast da ein Formular (TPokemon_Pictures) mit einem Image, in dem die Bilder gespeichert sind ... schon recht gruselig ;)
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; denn ... Zitat:
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. |
AW: Pokemon Pokedex programmieren - funktioniert nicht!
Gute Idee mit der Datenbank - so werde ich es machen.
Scheint mir, jetzt wo du's schreibst, auch irgendwie die einfachste Methode zu sein. :gruebel: Vielen Dank euch allen! :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 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-2025 by Thomas Breitkreuz