Linie durch Mausklick?
Übersicht

wellensittichBetreff: Linie durch Mausklick? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo!
ich habe mich gerade erst angemeldet und schon das erste Problem^^: Ich weis, das das wohl eineblöde/einfache Frage ist aber ich komm nicht auf die lösung! also, ich möchte eine einfache linie zeichnen, indem ich per linke maustaste die x1 und y1 koordinaten angebe, und durch nochmaliges klicken auf die linke an einer anderen stelle (oder auch mit rechter maustatse wenn das einfacher ist) die x2 und y2 koordinaten. ich habe so angefangen, dass ich diese koordinaten in einer variable speicher, und danach in den befehl "line" einsetzte....so in etwa: if mousclick(1) then mousex = erste mousey = zweite ........ und so weiter...aba ich denke mal das das schon der völlig falsche ansatz ist oder^^ ich hoffe auf eine baldige antwort xD MFG wellensittich PS: nur am rande erwähnt, ich beginne gerade erst mit blitz basic zu programmieren also nicht zu streng sein^^ ![]() |
||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm, du brauchst dafür mehrere Variablen. Z.B. indem du:
pos1x, pos1y pos2x, pos2y toggle nimmst. Dann machst du aus dem Code: [AUSKLAPPEN] if mousclick(1) then mousex = erste mousey = zweite ........ folgendes Code: [AUSKLAPPEN] if mousehit(1) then if toggle pos2x = mousex() pos2y = mousey() else pos1x = mousex() pos1y = mousey() endif toggle = not toggle endif Die Variable "toggle" wechselt bei jedem Mausklick zwischen 0 und 1 (durch die Zeile toggle = not toggle). Somit werden die beiden Zuweisungen immer abwechselnd aufgerufen. Hab das jetzt extra mal so umständlich geschrieben weil du ja gesagt hast, du fängst gerade erst an. Zu empfehlen sind allerdings hierbei eher Arrays oder Types, mit Types könntest du für jede Linie die du zeichnen möchtest, die Anfangs und Endkoordinaten speichern. |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
- Zuletzt bearbeitet von Firstdeathmaker am Sa, Jul 19, 2008 18:08, insgesamt einmal bearbeitet
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Stilvoll wäre das wohl mit einem Array gelöst, aber so sollte es auch gehen:
Code: [AUSKLAPPEN] local x1,x2,y1,y2 waitmouse() x1 = mousex() y1 = mousey() waitmouse() x2 = mousex() y2 = mousey() line x1,y1,x2,y2 waitmouse() |
||
Starfare: Worklog, Website (download) |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Für ganz schlauen xD :
Code: [AUSKLAPPEN] Graphics 800,600,16,2
SetBuffer BackBuffer() Type l Field x1,y1,x2,y2 End Type Global MX,MY,MHIT=1 Dim TEMP(1,1) Repeat mx = MouseX() my = MouseY() If MouseHit(1) Then TEMP(MHIT-1,0) = MX TEMP(MHIT-1,1) = MY MHIT = MHIT + 1 If MHIT > 2 Then MHIT = 1 l.l = New l l\x1 = TEMP(0,0) l\y1 = TEMP(0,1) l\x2 = TEMP(1,0) l\y2 = TEMP(1,1) EndIf EndIf Text 1,1,"X1 : "+TEMP(0,0) Text 1,15,"Y1 : "+TEMP(0,1) Text 1,30,"X2 : "+TEMP(1,0) Text 1,45,"Y2 : "+TEMP(1,1) Text 1,60,"HITS : "+MHIT For l.l = Each l Oval l\x1-2,l\y1-2,4,4 Oval l\x2-2,l\y2-2,4,4 Line l\x1,l\y1,l\x2,l\y2 Next Flip Cls Until KeyHit(1) End Du musst ihn jetzt nicht verstehn, aber wenn du mehrere Linien haben willst, ist das eine Lösung... mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich verstehe nicht weshalb du MHIT auf 1 setzt, anstatt es auf 0 zu lassen und das MHIT-1 zu entfernen... | ||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
ozzi789Betreff: Hatte gerade zu viel Zeit :) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier ein , meiner Meinung einfaches, Beispiel
Code: [AUSKLAPPEN] Graphics 800,600,32,2 ;Standart Prozedur :) SetBuffer BackBuffer() Color 255,0,0 ; Die Farbe auf Rot setzten , der Optik wegen While Not KeyHit(1) ;Schleife durchgehn bis ESC gedrückt wird Cls ;Bildschrim löschen If MouseHit(1) ;Falls mausgedrüclt wird If c=0 ; und dazu noch c(lick) = 0 ist posx=MouseX() ; Posx soll den Wert der Maus haben posy=MouseY() ; Posy soll den Wert der Maus haben c=1 ; c(lick) wird auf 1 gesetzt EndIf If c=2 ; Falls c(lick) gleich 2 ist , noch nicht beachten posx2=MouseX() ; bekannt nur das es posx2 und posy2 sind posy2=MouseY() c=0 ; c(lick) wird auf 0 gesetzt EndIf EndIf If c=1 Then c=2 ; Falls die Maus gedrückt wurde und c=1 ist (siehe oben) , soll c=2 sein (siehe oben) Color 255,255,255 ;Farbe auf weis, für den Text Text 0,20,"x"+posx+" y"+posy+" x2"+posx2+" y2"+posy2 ;Hier kanst du die Koordinaten der Punkte (die du geklickt hast) ansehn Text 0,0,"c:"+c ; Hier den Wert von c Color 255,0,0 ; Farbe auf Rot Line posx,posy,posx2,posy2 ; Die Linie wird gezeichnet :) If c=0 ; Nicht beachten ist nur das die akktuele Linie Rot ist und die andere weis :) Color 255,255,255 Line posx2,posy2,MouseX(),MouseY() Color 255,0,0 Else Color 255,255,255 Line posx,posy,MouseX(),MouseY() Color 255,0,0 EndIf Flip 60 ;Flipen Wend ;Ende der Schleife End ;Ende ! Mfg ozzi ![]() |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
wellensittich |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke an alle Antworten!
Ich habs jetzt hingegrikt. PS: ich will später ja mal ein eigenes spiel programmieren, vielleicht ein ego shooter^^, nun würde ich gerne wissen, wie lange dauert es etwa bis man soweit ist dies zu können und wie lange dauert dann dass programmieren an sich? MFG wellensittich |
||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
wellensittich hat Folgendes geschrieben: Danke an alle Antworten!
Ich habs jetzt hingegrikt. PS: ich will später ja mal ein eigenes spiel programmieren, vielleicht ein ego shooter^^, nun würde ich gerne wissen, wie lange dauert es etwa bis man soweit ist dies zu können und wie lange dauert dann dass programmieren an sich? MFG wellensittich Also falls du viel Motivation mit bringst und fleissig, erstmal kleine Sachen Codest, wirst du schon bald kleine Erfolge haben, vlt ein Spaceshooter oder Pong-Clone ![]() Einen Ego-Shooter alleiene zu programmieren ist sehr unwahrscheinlich, aber wenn du so weit bist, kannst du ja einen Grafiker suchen usw ![]() |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein Ego shooter kann er ja ruhig probieren, heißt ja nicht, dass er nicht instande wäre, das nicht zu tun. Es muss ja kein CS-Clone sein, ein ego shooter kann auch ein shooter sein, wo man z.b. Dosen abschießt... Naja egal...
Für einen sehr einfach gehaltenen Ego-shooter kannst du villeicht (jenachdem, wie viel zeit du hast) in 1-3 Wochen schaffen... Aber trotzdem würd ich dir raten, erst mit einfachen sachen anzufangen, damit man überhaubt die syntax und den Aufbau der Programme Lernt. Dann viel erfolg ! mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Wellensittich: Also wenn es was vernünftiges werden soll, dann muss man schonmal ein Jahr einrechnen. Aber kleinere Projekte (Egoshooter) bekommt man mit ein bisschen Übung auch innerhalb einer Woche hin.
Auf die Frage wie lange man braucht um alle Fähigkeiten dazu zu erlangen, kann ich keine konkrete Antwort geben. Das hängt maßgeblich von der Intelligenz ab ![]() |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und wen du Fragen hast , mir sind ja da ![]() |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group