Problem Editor

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

WEBLink

Betreff: Problem Editor

BeitragMo, Dez 29, 2003 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, hab ein kleines Problem und zwar mache ich derzeit mehrere Editoren die ich später alle mit Quellcode veröffentlichen möchte. Derzeit häng ich aber leider an folgendes:

Code:

Graphics 800,600,0,1

; Maus

mouse = LoadImage("gfx\mouse.bmp")

; Chipsets
anzahl = 2
chipmax = 10000

Dim Ebene1(anzahl) ; Anzahl der chips in Ebene 1
Dim Ebene1a(100)
Dim Ebeseavex(chipmax)
Dim Ebeseavey(chipmax)


For Ebene1Chip = 0 To anzahl ; Chips werden einmal durchgegangen

Ebene1a(Ebene1Chip) = LoadImage("gfx\"+Ebene1Chip+".bmp") ; Laden aller Chips

Next




MaskImage mouse,0,255,0


SetBuffer BackBuffer()
Repeat
Cls

mx  = MouseX()
my = MouseY()




Text 25, 550,"Ebene 1:"

For Ebene1Chip = 1 To anzahl; Chips werden fürs zeichnen durchgegangen

DrawImage Ebene1a(Ebene1Chip), 75 + (20 * Ebene1Chip) , 550 ; Chips werden gezeichnet (nebeneinander)

If ImagesOverlap(Ebene1a(Ebene1Chip), 75 + (20 * Ebene1Chip) , 550, mouse, mx,my) Then
Text mx,my - 20, ""+Ebene1Chip+""
If MouseHit(1) Then Ebene1paint = Ebene1Chip : push = 1 FlushMouse
EndIf


Next

If push = 1 Then

DrawImage Ebene1a(Ebene1paint) , mx , my
If MouseHit(1) Then

possave = possave + 1
Ebeseavex(possave) = mx
Ebeseavey(possave) = my

FlushMouse
EndIf

EndIf

Text 100,100,""+possave+""

If possave > 0 Then
For possave2 = 1 To possave

DrawImage Ebene1a(Ebene1paint),Ebeseavex(possave2),Ebeseavey(possave2)

Next
EndIf

If MouseHit(2) Then push = 0 FlushMouse

If push = 0 Then
DrawImage mouse, mx, my
EndIf

FlushMouse
Flip

Until KeyDown(1) End


Wie soll es jetzt anders sein man kann die Chips so setzen wie man möchte aber leider, wenn man ein anderes auswählt verändern sich alle anderen schon gesetzten mit.

Wie kann ich das Problem jetzt am besten lösen.

PS: Es ist wichtig das der Code genauso bleibt

(Sorry für den unübersichtlichen Code)

Hip Teen

BeitragMo, Dez 29, 2003 15:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Du speicherst nicht, welche Ebene gerade aktiv ist. Leg noch ein Dim Feld an, in dem du die Ebene gespeichert wird. Beim zeichnen musst du das natürlich auch beachten. Ich poste gleich mal ein Code Beispiel

WEBLink

BeitragMo, Dez 29, 2003 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein zweites Dim Feld hatte ich mir´auch schon überlegt aber wie und wohin machen?

Freu mich auf den Code *g*

Hip Teen

BeitragMo, Dez 29, 2003 19:32
Antworten mit Zitat
Benutzer-Profile anzeigen
So, hier ist der Code. Die Zeilen, die ich verändert bzw. hinzugefügt habe (insgesammt 3) habe ich durch ein entsprechenden Kommentar markiert (wird man schon finden wenn man sucht Wink. Lange rede kurzer sinn
Code:
Graphics 800,600,0,1

; Maus

mouse = LoadImage("gfx\mouse.bmp")

; Chipsets
anzahl = 2
chipmax = 10000

Dim Ebene1(anzahl) ; Anzahl der chips in Ebene 1
Dim Ebeseavefarbe(100) ; Farbe des chips in der ebene VERÄNDERT
Dim Ebene1a(100)
Dim Ebeseavex(chipmax)
Dim Ebeseavey(chipmax)


For Ebene1Chip = 0 To anzahl ; Chips werden einmal durchgegangen

Ebene1a(Ebene1Chip) = LoadImage("gfx\"+Ebene1Chip+".bmp") ; Laden aller Chips

Next




MaskImage mouse,0,255,0


SetBuffer BackBuffer()
Repeat
Cls

mx  = MouseX()
my = MouseY()




Text 25, 550,"Ebene 1:"

For Ebene1Chip = 1 To anzahl; Chips werden fürs zeichnen durchgegangen

DrawImage Ebene1a(Ebene1Chip), 75 + (20 * Ebene1Chip) , 550 ; Chips werden gezeichnet (nebeneinander)

If ImagesOverlap(Ebene1a(Ebene1Chip), 75 + (20 * Ebene1Chip) , 550, mouse, mx,my) Then
Text mx,my - 20, ""+Ebene1Chip+""
If MouseHit(1) Then Ebene1paint = Ebene1Chip : push = 1 FlushMouse
EndIf


Next

If push = 1 Then

DrawImage Ebene1a(Ebene1paint) , mx , my
If MouseHit(1) Then

possave = possave + 1
Ebeseavex(possave) = mx
Ebeseavey(possave) = my
Ebeseavefarbe(possave) = Ebene1paint;verändert!

FlushMouse
EndIf

EndIf

Text 100,100,""+possave+""

If possave > 0 Then
For possave2 = 1 To possave

DrawImage Ebene1a(Ebeseavefarbe(possave2)),Ebeseavex(possave2),Ebeseavey(possave2) ;VERÄNDERT!

Next
EndIf

If MouseHit(2) Then push = 0 FlushMouse

If push = 0 Then
DrawImage mouse, mx, my
EndIf

FlushMouse
Flip

Until KeyDown(1) End
  • Zuletzt bearbeitet von Hip Teen am Di, Dez 30, 2003 14:23, insgesamt einmal bearbeitet

WEBLink

BeitragDi, Dez 30, 2003 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Thx, ich denke mal stark das es so hinhauen kann.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group