Kleines Darstellungsproblem....

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Blitzkrieg Bop

Betreff: Kleines Darstellungsproblem....

BeitragFr, Apr 09, 2004 22:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
Also, ich will folgendes erreichen:
Wenn der Mauszeiger uaf ein Bild klickt,soll dieses bild nochmal gezeichnet werden und zwar mit den maus koordinaten, damit man das neue bild zu einem plkatz bewegen kann. Ist man nun an diesem Platz, und hier tritt das Prob auf, soll man, bei tastendruck das bild auf die aktuellen x,y koordinaten legen.

[/code]
~ Hey Ho Let's Go ~
 

Blitzkrieg Bop

BeitragFr, Apr 09, 2004 22:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Crying or Very sad Crying or Very sad
~ Hey Ho Let's Go ~

TheProgrammer

BeitragFr, Apr 09, 2004 22:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Meinst du sowas:

Code: [AUSKLAPPEN]

Graphics 640,480,32,2
SetBuffer BackBuffer()
AppTitle "Programm"

pos_X = 100
pos_Y = 100

While Not KeyHit(1)
 Cls

 Rect pos_X,pos_Y,100,100,1

 Select wahl
 Case 0

  If RectsOverlap(MouseX(),MouseY(),1,1,pos_X,pos_Y,100,100) Then
   If MouseHit(1) Then
    wahl = 1
    m_x = MouseX()-pos_X
    m_y = MouseY()-pos_Y
   EndIf
  EndIf

 Case 1
  pos_X = MouseX()-m_x
  pos_Y = MouseY()-m_y
  If MouseHit(1) Then wahl = 0
 End Select

 Flip
Wend
End
aktuelles Projekt: The last day of human being

Hubsi

BeitragFr, Apr 09, 2004 22:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
mh=MouseHit(1)
If mh And Maus_auf_Bild Then
  bild_drive=1-bild_drive
  correctx=MouseX()-bildx
  correcty=Mousey()-bildy
EndIf

If bild_drive
  bildx=MouseX()-correctx
  bildy=MouseY()-correcty
EndIf


Edit: Tja, mal wieder zu lahm Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Blitzkrieg Bop

BeitragFr, Apr 09, 2004 23:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Fast!
Das Bild was ma Anfang da ist, soll auch weiter hin an sienem Platz sein, und ein zweites Bild wird dann an die neue Poition gemalt
~ Hey Ho Let's Go ~
 

David

BeitragFr, Apr 09, 2004 23:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Dann erstell mit CopyImage einfach ne Kopie vom alten Bild

Code: [AUSKLAPPEN]

Graphics 800, 600, 32

SetBuffer BackBuffer()

Global Image = LoadImage( "Image.tga" )
Global bDragging = False
Global XPos, YPos, CXPos, CYPos

While Not KeyHit( 1 )

   DrawImage Image, 0, 0

   If ( MouseDown( 1 ) )
      If ( RectsOverlap( MouseX(), MouseY(), 1, 1, XPos, YPos, ImageWidth( Image ), ImageHeight( Image ) ) ) Then
         bDragging = True
      
         CXPos = MouseX() - XPos
         CYPos = MouseY() - YPos
         
         NewImage = CopyImage( Image )
      End If
   Else
        bDragging = False
   End If

   If ( bDragging )
      XPos = MouseX() - CXPos
      YPos = MouseY() - CYPos   
   End If
   
   If ( NewImage )
      DrawImage( NewImage, XPos, YPos )
   End If

   
   Flip()
   Cls()
Wend

End


So im prinzip. Ist allerdings noch an allen Ecken und Enden verbesserungsbedüftig. Wink

grüße
  • Zuletzt bearbeitet von David am Fr, Apr 09, 2004 23:16, insgesamt einmal bearbeitet
 

Blitzkrieg Bop

BeitragFr, Apr 09, 2004 23:16
Antworten mit Zitat
Benutzer-Profile anzeigen
na toll.....aber man soll soviele bilder aus dem bild ma anfang kriegen, wie man will....quasi wie ine inem editor, wenn man ein tile auswählt, das man soviele malen kann, wie man will
~ Hey Ho Let's Go ~
 

David

BeitragFr, Apr 09, 2004 23:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Na toll, dann schlag ich vor das du halt mal selbst denkst ja?
Anhaltspunkte hast du ja nun. Deshalb programmiert man ja auch um etwas kreativ zu sein!

grüße

Hubsi

BeitragFr, Apr 09, 2004 23:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Type-Tut wär dann wohl hilfreich Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Blitzkrieg Bop

BeitragFr, Apr 09, 2004 23:21
Antworten mit Zitat
Benutzer-Profile anzeigen
JUHU!!!
Meinst du echt es geht gut mit Types? Weil Types kann ich 1a...
Wie genau hast du dir das vorgestellt?
~ Hey Ho Let's Go ~

TheProgrammer

BeitragFr, Apr 09, 2004 23:22
Antworten mit Zitat
Benutzer-Profile anzeigen
So?

Code: [AUSKLAPPEN]

Graphics 640,480,32,2
SetBuffer BackBuffer()

anz = 100 ; Anzahl der Rects

Dim posX(anz),posY(anz),col(anz)

posX(0) = 270
posY(0) = 190
col(0) = Rnd(100,255)

While Not KeyHit(1)
 Cls

 For I = 0 To array
  Color col(I),col(I),col(I)
  Rect posX(I),posY(I),100,100,1
 Next

 Select wahl
 Case 0
  For I = 0 To array
   If RectsOverlap(MouseX(),MouseY(),1,1,posX(I),posY(I),100,100) Then
    If MouseHit(1) Then
     wahl = 1
     array = array + 1
     col(array) = Rnd(100,255)
     xm = MouseX()-posX(I)
     ym = MouseY()-posY(I)
    EndIf
   EndIf
  Next
 Case 1
  posX(array) = MouseX()-xm
  posY(array) = MouseY()-ym
  If MouseHit(1) Then wahl = 0
 End Select

 Flip
Wend
End
aktuelles Projekt: The last day of human being
 

Blitzkrieg Bop

BeitragFr, Apr 09, 2004 23:27
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, so in etwa, nur das sich die farbe ändert ist komisch Embarassed


und warum ist oben links immer osn ding am aufblinken?
~ Hey Ho Let's Go ~

TheProgrammer

BeitragFr, Apr 09, 2004 23:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Dass sich die Farbe ändert hab ich extra gemacht (sieht man besser).
Das blinkende Ding ist nur da, weil für einen, kurzen
Schleifendurchgang der Wert von posX(x) und posY(x) noch null ist.
aktuelles Projekt: The last day of human being

TheProgrammer

BeitragFr, Apr 09, 2004 23:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Kleine Verbesserung:

Code: [AUSKLAPPEN]

Graphics 640,480,32,2
SetBuffer BackBuffer()
AppTitle "Darstellung"

anz = 100 ; Anzahl der Rects

Dim posX(anz),posY(anz),col(anz)

posX(0) = 270
posY(0) = 190
col(0) = Rnd(100,255)

While Not KeyHit(1)
 Cls

 If wahl = 1 Then
  posX(array) = MouseX()-xm
  posY(array) = MouseY()-ym
  If MouseHit(1) Then wahl = 0
 EndIf

 For I = 0 To array
  Color col(I),col(I),col(I)
  Rect posX(I),posY(I),100,100,1
 Next

 If wahl = 0 Then
  For I = 0 To array
   If RectsOverlap(MouseX(),MouseY(),1,1,posX(I),posY(I),100,100) Then
    If MouseHit(1) Then
     wahl = 1
     array = array + 1
     col(array) = Rnd(100,255)
     xm = MouseX()-posX(I)
     ym = MouseY()-posY(I)
    EndIf
   EndIf
  Next
 EndIf

 Flip
Wend
End
aktuelles Projekt: The last day of human being

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group