mehr bilder
Übersicht

Hunter99Betreff: mehr bilder |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() ich hab da ein kleines problem.... bei fast jedem mini 2d spiel kommen meistens die gleichen bilder mehr mals vor (zb.: bei einem spiel wo man fallende geldsäcke einsammeln muss) jetzt meine frage ist wie kann ich diese bilder (wenn ich so ein spiel proggen will) reinladen ohne jedes einzelne bild immer wider mit dem gleichen befehl zu laden? ich habs mal bei einem spiel von mir gemacht, dass ich jedes bild einzel einfügte.. am anfang dachte ich das würde noch einfach gehen, bis ich jedoch merkte, dass ich mehre levels gleich vergessen kann (code-chaos!) |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
du musst ein bild nur einmal laden, danach kannst du es so oft benutzen wie du willst, bis dein programm zu ende ist oder du es mit "freeimage bild" wieder aus dem Speicher entfernst, was sowieso sinnvoll ist.
wenn es nun weit an deiner frage vorbei bin, dann solltest du es denke ich mal noch besser formulieren. Um das Beispiel mit den Geldsächen aufzugreifen, dafür brauchst du am besten noch Types. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
Hagbard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
reinladen musst du nur einmal, vor der Hauptschleife: Code: [AUSKLAPPEN] Graphics 640, 480 sack = LoadImage("sack.bmp") Repeat DrawImage sack, 200, 200 Until KeyHit(1) End |
||
- Zuletzt bearbeitet von Hagbard am Sa, Apr 17, 2010 16:11, insgesamt einmal bearbeitet
BlackTermi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du kannst dein geladenes Bild ja in mehreren Variablen speichern...
ein beispiel (weil ich das nicht beschreiben kann) testbild = loadimage("vomtestbildordner/testbildfff.bmp") Dim Bilderdim(99) for i = 0 to 99 Bilderdim(i)=testbild next jetzt hast du in jeder variable des dim feldes dein bild drin.... was aber sehr unsinnig wäre, für dein spiel bräuchtest du eher types, die ich jetzt aber nicht mehr erklären will da das schon oft genug getan wurde |
||
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
@BlackTermi
warum einfach die Variable 99 mal zuweisen?? Einfach immer das selbe bild malen, das reciht! |
||
BlackTermi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja aber was z.b. wenn er mit dem bild noch im programm herumspielen will? dann bräuchte er verschiedene... und ansonsten hast du recht (ich sagte ja auch bereits das es so ziemlich unsinnig ist) | ||
![]() |
Klip |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN] Graphics 200,300,32,2 Geht doch ohne Probleme, die alten Bilder werden ja nicht überschrieben. Wenn du die Koordinaten der Bilder noch verändern willst, dann brauchst du Types. |
||
Hunter99 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jo aber dank dem cls befehl ist das bild nur einmal pro runde zu sehen (runde = schlaufe)
BlitzBasic: [AUSKLAPPEN] Graphics 200,300,32,2 muss ich denn das ganze anders machen?.... ohne cls?[/b] |
||
konstantin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Cls macht deinen Buffer blank, das heisst, er wird wieder komplett schwarz. Somit verschwindet das alte Bild.
Wenn du Cls wegmachst, wird es funktionieren, aber du malst halt nur auf das bild der vorherigen runde drauf, was nicht besonders schlau ist. |
||
Hunter99 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja da kommt wieder ein problem auf wenn ich cls weg lasse... was ist wenn ich noch ein 2tes bild bewegen will.... das bild zieht streifen... hier ein beispiel:
BlitzBasic: [AUSKLAPPEN] Graphics 800,600,32,2 was muss ich machen damit es klappt? |
||
konstantin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
da musst du CLS auch wieder einbauen.
ansonsten musst du dir die position der anderen bilder merken und ebenfalls jedes mal neu zeichnen |
||
Hunter99 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja und da kommt mein eigendliches problem dass wenn ich mehere bilder dazuladen will, die aber gleich sind... muss ich die doch net immer wieder mit loadimages laden... oder doch???? ich meine wenn man moorhuhn nachproggen will kann man da ja net jedes huhn einzeln reinladen.... | ||
konstantin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Musst du ja auch nicht. Du kannst ein Bild so oft malen wie du willst (in Wirklichkeit werden nur die Daten vom Bild (also das Bild) in den Backbuffer kopiert). Du musst es halt nur an verschiedenen Koordinaten zeichnen, die du irgendwo speicherst, zum beispiel in types. | ||
Hunter99 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jo und wenn ich wieder ein bild rumfliegen lasse?... muss ich denn die bewegung anderst machen??? weil das bild wird dann sozusagen mehrmals daraufgeladen | ||
Hunter99 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich weiss ich weiss... jetzt verstehts keiner mehr...
![]() also nochmal... mein problem ist es, dass wenn ich ein spiel progenn will gezwungen bin die bilder die mehrmals vorkommen immer wieder mit dem gleichen befehl "loadimage" zu laden. warum? weil ich nur die variante mit cls kenne... denn wenn ich cls net nehmen würde, dann würde es ja gehen (indem ich immer drawimage benutze)... wenn ich aber nun dazu noch ein bild bewegen will (zb eine maus) dann zieht dieses bild streifen (weil das bild auch immer wieder hingemalt wird) .... darum das cls.... nun gibt es eine andere variante ohne cls ODER ohne immer loadimage (eigentlich nur loadimag) zu benutzen... was mir keinen source-chaos erzeugen würde. thx |
||
Michi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
BlitzBasic: [AUSKLAPPEN]
wo ist das problem? Bilder nur einmal laden, aber beliebig oft malen. so einfach ist das. |
||
Aber..Wozu soll er gut sein???
IBM-Ingeneur über die Idee des Mikroprozessors, 1968 Code: [AUSKLAPPEN] __ <_/__\_> <--- die Wayne-Zeichnung |
Hunter99 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() ![]() |
||
Hunter99 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() wenn ich jetzt dem bild eine colisionsabfrage einbaue dann gild das für jedes bild... und das programm weiss nicht welches bild hauptsächlich damit gemeint ist |
||
konstantin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Wert=IMAGESCOLLIDE (Bild1, X1, Y1, Frame1, Bild2, X2, Y2, Frame2)
lern programmieren ! ich hab absolut keine lust, dir jeden stopfen in die nase zu hauen. und so rennt der frosch auch im Beginners-Corner nicht. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group