Grafik laden oder "malen" ?
Übersicht

Gehe zu Seite Zurück 1, 2, 3 Weiter
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit Types ist es zumindest komfortabler. Man könnte bei Dim-Feldern auch ein Kontroll-Feld anlegen, das nur True für existiert oder False für gelöscht gesetzt ist.
Ich weiß nicht mit welchem Grafikproggi Du arbeitest, aber das kam davon das der Hintergrund der Bubbles nicht schwarz war sondern in einem seltsamen rot. Ich hab jetzt mal die Bubbles mit schwarzem Hintergrund hochgeladen: www.hubsi.biz/data/bubbles.zip. Alternativ kannst Du auch nach dem Laden der Grafiken MaskImage 201,39,39 einsetzen um die Transparenzfarbe auf dieses seltsame rot zu setzen ![]() Edit: Da war ich aber arg langsam ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mein Hintergrund war rot? Also bei mir war er transparent. Sehr komisch... Hab ihn auch gerade auf schwarz geändert und jetzt geht es. Vielen Dank für deine Mühe. /kiss
Ich arbeite übrigends mit Ulead Photo Impact. Das mit den Feldern teste ich dann mal alles durch. Vielen lieben Dank für Eure Hilfe, Gina. |
||
![]() |
Bfox |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gern geschehen! 8) | ||
Glauben ist Mangel an Wissen! |
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab da doch noch ne kleine Frage... ![]() Kann mir jemand erklären, warum die Bubbles immer so pixelig aussehen? Egal ob ich sie malen lasse, oder die Grafiken benutze, die Ränder sind nicht rund. Ich lasse es ja extra im Fenster mit 640x480 laufen (1600x1200 wäre sonst etwas fett... ![]() Muß ich bei den Grafiken vielleicht etwas anders machen? Thx, Gina. |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du könntest bei den Grafiken die Kanten von Deinem Malprogramm abrunden lassen, sofern die Funktion angeboten wird. Ansonsten läßt sich da nicht viel machen, weil man leider nur ganze Pixel anzeigen lassen kann ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab da die Funktionen Vignette und Antialising... Das müßte es sein. Muss ich mal austesten... Danke dir ![]() Erstmal habe ich folgendes probiert: Ich hab die Grafik in 320x320 erstellt und am Ende auf 32x32 verkleinert. Das sieht schonmal nicht schlecht aus... *freu* Thx, Gina. |
||
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bringt aber nichts, wenn das Bild transparent ist (sieht dann eher noch schlechter aus). So einfach kannst du mit B2D ( - Befehlen) nämlich nicht Antialias bzw. gealphablendete Pixel machen, und das bräuchtest du damits gut aussieht. Allerdings hat TheShadow da eine wirklich gute Lösung für gefunden: https://www.blitzforum.de/viewtopic.php?t=4070 | ||
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh, das ist ja schade. ![]() Ist aber gut zu wissen für spätere Projekte, wenn man mit "richtigem" Hintergrund arbeitet. Vielen Dank also für den Hinweis. ![]() Gina. |
||
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sooo... Habe das Ganze mal als Type-Feld umgebaut. Kann mir mal please jemand erklären, warum das jetzt so langsam ist? Hab ich was falsch gemacht?
Hier mal der Code: Code: [AUSKLAPPEN] GRAPHICS 640,480,0,2
SETBUFFER BACKBUFFER() ;Bubble-Grafiken laden bubble1 = loadimage("bubble1.png") ;blau bubble2 = loadimage("bubble2.png") ;rot bubble3 = loadimage("bubble3.png") ;gelb bubble4 = loadimage("bubble4.png") ;hellgrün bubble5 = loadimage("bubble5.png") ;grün bubble6 = loadimage("bubble6.png") ;pink ;------------------------------------------------ type Bubbles Field xPos, yPos, Farbe, Da End type ;------------------------------------------------ SeedRnd MilliSecs() dim Bubb.Bubbles(300) For i = 1 to 300 Bub.Bubbles = new Bubbles next WHILE NOT KEYHIT(1) for Bub.Bubbles = each Bubbles For x = 0 to 19 For y = 0 to 14 Bub\xPos = x*32 Bub\yPos = y*32 Bub\Farbe = rand(1,6) Bub\Da = 1 select Bub\Farbe case 1 DRAWIMAGE bubble1, Bub\xPos, Bub\yPos case 2 DRAWIMAGE bubble2, Bub\xPos, Bub\yPos case 3 DRAWIMAGE bubble3, Bub\xPos, Bub\yPos case 4 DRAWIMAGE bubble4, Bub\xPos, Bub\yPos Case 5 DRAWIMAGE bubble5, Bub\xPos, Bub\yPos Case 6 DRAWIMAGE bubble6, Bub\xPos, Bub\yPos End select Next Next next ;------------------------------------------------ flip waitkey wend end Ist schon schwer genug, das mit den Types ![]() Und HIER noch die neuen Grafiken ![]() Big Thx, Gina. |
||
![]() |
Bfox |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das
Code: [AUSKLAPPEN] Dim Bubb.Bubbles(300)
kannst du weglassen! ![]() |
||
Glauben ist Mangel an Wissen! |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab das ganze mal auf Speed optimiert:Code: [AUSKLAPPEN] Graphics 640,480,0,2
Lief aber schon vorher ganz ordentlich, wenn man das WaitKey() rausnimmt SetBuffer BackBuffer() Dim bubble(5) ;Bubble-Grafiken laden bubble(0) = LoadImage("bubble1.png") ;blau bubble(1) = LoadImage("bubble2.png") ;rot bubble(2) = LoadImage("bubble3.png") ;gelb bubble(3) = LoadImage("bubble4.png") ;hellgrün bubble(4) = LoadImage("bubble5.png") ;grün bubble(5) = LoadImage("bubble6.png") ;pink ;------------------------------------------------ Type Bubbles Field xPos, yPos, Da End Type ;------------------------------------------------ SeedRnd MilliSecs() ;Dim Bubb.Bubbles(300) For x = 0 To 19 For y = 0 To 14 Bub.Bubbles = New Bubbles Bub\xPos = x*32 Bub\yPos = y*32 Bub\Da = 1 Next Next While Not KeyHit(1) For Bub.Bubbles = Each Bubbles If Bub\Da Then DrawImage bubble(Rand(0,5)), Bub\xPos, Bub\yPos Next ;------------------------------------------------ Flip WaitKey ; <--- Absicht? Wend End ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Bfox
Das stand so in Renés Buch drin. ![]() @ Hubsi Das sieht ja richtig gut aus, und so schön schnell, danke dir. ![]() Warum war das nu so langsam bei mir? Gina. |
||
- Zuletzt bearbeitet von Gina am So, Jul 11, 2004 18:47, insgesamt einmal bearbeitet
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Funzte bei mir einwandfrei ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jup, bin heute etwas blond, sorry... ![]() PS: Das mit dem Waitkey, war erstmal Absicht. Er sollte erst bei Tastendruck alles neu machen... |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gina hat Folgendes geschrieben: Jup, bin heute etwas blond, sorry... ![]() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
Irgendwie verstehe ich das mit der Mausabfage nicht so ganz. Ich will, dass er bei dem Bubble, den ich angeklickt habe, Da auf 0 setzt und beim nächsten mal nicht zeichnet.
Habs etwa so probiert: Code: [AUSKLAPPEN] Repeat
xMaus = MouseX() yMaus = MouseY() xMaus = xMaus/32*32 yMaus = yMaus /32*32 Until Getmouse() = 1 For Bub.Bubbles = each Bubbles If xMaus = Bub\xPos and yMaus = yPos Then Bub\Da = 0 EndIf Next Aber das funktioniert irgendwie nicht... ![]() |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab das einfach mal eingebaut:
Code: [AUSKLAPPEN] Graphics 640,480,0,2
SetBuffer BackBuffer() Dim bubble(5) ;Bubble-Grafiken laden bubble(0) = LoadImage("bubble1.png") ;blau bubble(1) = LoadImage("bubble2.png") ;rot bubble(2) = LoadImage("bubble3.png") ;gelb bubble(3) = LoadImage("bubble4.png") ;hellgrün bubble(4) = LoadImage("bubble5.png") ;grün bubble(5) = LoadImage("bubble6.png") ;pink ;------------------------------------------------ Type Bubbles Field xPos, yPos, Da End Type ;------------------------------------------------ SeedRnd MilliSecs() For x = 0 To 19 For y = 0 To 14 Bub.Bubbles = New Bubbles Bub\xPos = x*32 Bub\yPos = y*32 Bub\Da = 1 Next Next While Not KeyHit(1) Cls ; Löschen mausx=MouseX() mausy=MouseY() mh=MouseHit(1) For Bub.Bubbles = Each Bubbles If mh ; Wenn Linksklick dann prüfen If mausx>bub\xpos And mausx<bub\xpos+32 And mausy>bub\ypos And mausy<bub\ypos+32 bub\da=False EndIf EndIf If Bub\Da Then DrawImage bubble(Rand(0,5)), Bub\xPos, Bub\yPos Next ;------------------------------------------------ Flip WaitKey Wend End |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tausend Dank, das funktioniert ja wunderbar... *freufreu*
Mit MouseDown() hatte ich es schonmal probiert, aber ich nehme an, das geht nur, wenn man das in einer Variable speichert? Welchen Unterschied macht es, ob ich MouseHit() oder MouseDown() benutze? Ich dachte MouseHit() nimmt man zum Mausklickzählen... ![]() Und dann stand in Renés Buch, dass man erst eine Maus zeichnen muss, da im Vollbild keine vorhanden ist. Heißt das, dass ich in jedem Spiel, wo ich einen Mauszeiger haben will so etwas drum herum basteln muss? Code: [AUSKLAPPEN] Graphics 640,480
SetBuffer BackBuffer() maus = LoadImage("pointer.bmp") Repeat Cls X = MouseX() Y = MouseY() DrawImage maus, X, Y ; If GetMouse() = 1 Then Oval X-10, Y-10, 20, 20, 1 Flip Until KeyHit(1) Und wie durchsucht man ein Typefeld rückwärts? Wenn ich Bub.Bubbles = Before (Bub) benutze, dann ist ihm das Objekt unbekannt. Oje, schon wieder so viele Fragen... ![]() Vielen lieben Dank jedenfalls, Gina. |
||
![]() |
Bfox |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also der Unterschied zwischen MouseHit() und MouseDown() ist:
Bei MouseHit() kann man nicht draufbleiben, die Funktion nimmt nur einen Klick je Druck an! Bei MouseDown() kannst du immer drauf bleiben! 8) Du kannst mit MouseHit() auch die Tastendrücke zählen das stimmt! Das mit dem Typefeld rückwärts auslesen weiß nicht ob das geht! ![]() Brobier mal alle Einträge in eine For Next Schleife zu Fertauschen! |
||
Glauben ist Mangel an Wissen! |
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bfox hat Folgendes geschrieben: Also der Unterschied zwischen MouseHit() und MouseDown() ist:
Bei MouseHit() kann man nicht draufbleiben, die Funktion nimmt nur einen Klick je Druck an! Bei MouseDown() kannst du immer drauf bleiben! 8) Aso, danke. Dann wäre MouseHit() in meinem Fall wohl besser. Zu den Types: Mit "For Bub.Bubbles = Each Bubbles" lese ich sie vom ersten bis letzten ein. Weiß jetzt nicht, was ich da vertauschen kann ![]() ![]() ![]() Ich probiere es jetzt mal mit Dim-Feldern. Die kann ich wenigstens direkt mit ihrer Nummer ansprechen... Besten Dank erstmal, Gina. |
||
Gehe zu Seite Zurück 1, 2, 3 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group