Anfängerfrage
Übersicht

![]() |
MangudaiBetreff: Anfängerfrage |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo alle miteinander
also ich hab mal versucht auch ein bissl zu programmieren, aber ich schein zu blöd dafür zu sein ![]() folgendes programm soll ein quadrat an der stelle zeichenen an der ich die maustaste drücke. tut es auch ![]() ![]() so hier der unglaublich kompexe code an dem ich jetzt 2 tage ![]() tüftle. Code: [AUSKLAPPEN] Graphics 1024,768,0,1 SetBuffer BackBuffer() Repeat x=MouseX() y=MouseY() Cls If MouseHit(1) Then Rect x,y,10,10,1 Line x-5,y,x+5,y Line x,y-5,x,y+5 Flip Until KeyHit(1) End aja bitte keine negative kritik sowas vertrag ich nicht ![]() lg mangudai |
||
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du musst speichern wo das Quadrat liegt, und ob es da ist.
Code: [AUSKLAPPEN] Graphics 1024,768,0,1
SetBuffer BackBuffer() Global RectX,RectY,RectVisible Repeat x=MouseX() y=MouseY() Cls If MouseHit(1) Then RectX = x RectY = y RectVisible = True End If If RectVisible Then Rect RectX,RectY,10,10 End If Line x-5,y,x+5,y Line x,y-5,x,y+5 Flip Until KeyHit(1) End |
||
![]() |
Mangudai |
![]() Antworten mit Zitat ![]() |
---|---|---|
rectvisible = true GENIAL
danke für die schnelle hilfe ![]() lg mangudai |
||
![]() |
Flachzange |
![]() Antworten mit Zitat ![]() |
---|---|---|
Blödsinn! Das geht auch kürzer:
Code: [AUSKLAPPEN] Global x=-100 Global y=-100 while not keyhit(1) if mousehit(1) then x=MouseX() y=MouseY() endif Rect x,y,10,10 wend Da sparste ein bissl... |
||
I'm no superman...! |
- Zuletzt bearbeitet von Flachzange am Di, Apr 20, 2004 17:30, insgesamt einmal bearbeitet
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oberblödsinn ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Flachzange |
![]() Antworten mit Zitat ![]() |
---|---|---|
dann setzte die startkoordinaten halt auf negative werte außerhalb des sichtbaren Bereichs!
Ich hab zwar gemeckert, allerdings hab ich auch ne Alternative präsentiert. Nun, was ist mit dir, Hubsi? Oohhh... ![]() |
||
I'm no superman...! |
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Type Box Field x, y, w, h, f End Type Graphics 800,600,16,2 Color 0,0,255 Repeat Cls ShowBox() Oval MouseX()-2, MouseY()-2, 4, 4, 1 If MouseDown(1) Then Box(MouseX(), MouseY(), 100,50,1) Flip Until KeyHit(1) End Function Box(x,y,w,h,f) b.box = New box b\x = x b\y = y b\w = w b\h = h b\f = f End Function Function ShowBox() For b.box = Each box Rect b\x, b\y, b\w, b\h, b\f Next End Function |
||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
![]() |
Michi1988 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Travis muss gleich übertreiben und zeigen was er kann ![]() Er is nen Anfänger und wenn du ihn gleich mit OOP und Arreys zulaberst liecht BB schneller wieder inner ecke als du "Michi1988 ist der weltbeste programmierer" sagen kannst. ![]() Gruß Michi |
||
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() ![]() |
||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
![]() |
Michi1988 |
![]() Antworten mit Zitat ![]() |
---|---|---|
*g*
Aber gut, das Beispiel von Edlothiol is schon okay für den Anfang. @Travis Stell dir vor, er kennst OOP und Arrays früher als den Befehl Print |
||
- Zuletzt bearbeitet von Michi1988 am Di, Apr 20, 2004 20:52, insgesamt einmal bearbeitet
![]() |
Flachzange |
![]() Antworten mit Zitat ![]() |
---|---|---|
schießt etwas übers ziel hinaus...zuviel ballast für sein problem! aber sonst...fein fein! *g* | ||
I'm no superman...! |
dubitat |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
travis wir wissen alle das du ein super programmierer bist aber immer gleich mit dem komplexesten loslegen(types)? hast doch auch nicht mit types gleich nach print gelernt oder? | ||
Erare humanum est - Irren ist Menschlich |
![]() |
Michi1988 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke an alle die Travis nun ein bissl gekitzelt haben.
Ende damit. Danke! |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Flachzange hat Folgendes geschrieben: dann setzte die startkoordinaten halt auf negative werte außerhalb des sichtbaren Bereichs!
Statement:
Ich hab zwar gemeckert, allerdings hab ich auch ne Alternative präsentiert. Nun, was ist mit dir, Hubsi? Oohhh... ![]() Warum mit solchem Quatsch die Performance drücken? Wenn man einem Newbie solchen Code vor die Beine wirft, wird er es nie ordentlich lernen. Ist es dann erst nicht nur mehr ein Recteck, sondern hunderte Objekte, soll er sie dann auch aus dem Sichtbereich schieben? Edlothiol hat ja eine vernünftige Methode aufgezeigt. |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Mangudai |
![]() Antworten mit Zitat ![]() |
---|---|---|
hey travis das is supercool danke ![]() eigentlich wollt ich ja selber draufkommen wie ich beliebig viele rechtecke malen kann, aber wenn ich mir den code so anschaue wär ich wohl eh nie von allein drauf gekommen ![]() @flachzange ich bin etwa hubsis meinung. was soll mir dein code bringen wenn ich ihn nicht versteh??? bist aber herzlich eingeladen mir zu erklären was das mit den negativen globalen variablen aufsich hat ![]() |
||
lg Mangudai |
![]() |
Flachzange |
![]() Antworten mit Zitat ![]() |
---|---|---|
*lol*
Hubsi du bist echt der Held im Erdbeerfeld! Ich wette mit dir das mein Code um einiges schneller ist als die präsentierten Alternativen! Wenn du das nicht erkennst tust du mir leid und das ist dann halt deine Verblendung bleibt dein eigenes Problem! Also ich erkläre den Code für den lesefaulen Anfänger nochmal ![]() immer wenn im Mainloop die linke Maustaste gedrückt wird werden den Variablen X und Y die aktuellen Mauskoordinaten zugewiesen! Anschließend wird stets das Rechteck an die aktuell gespeicherten Koordinaten gezeichnet. Easy oder? Da ich mir jetzt aber eine If-Abfrage sparen wollte, lasse ich das Rect wenn noch keine Maustaste gedrückt wurde außerhalb des sichtbaren Bereichs zeichnen (damit anfangs noch nix zu sehn is). Da im weiteren Verlauf des Programmes IMMER ein Rect sichtbar sein wird wäre es hirnrissig (!!!) Performance an eine weitere If-Abfrage zu verschwenden die immer prüft ob schonmal geklickt wurde! Ist ja wohl mehr als müßig! Letzendlich drückt Hubsis Version über längere Zeit mehr! So! Desweiteren programmiere ich immer so, dass es für das AKTUELLE Problem am effektivsten gelöst wird. Aber HIER gehts halt nur um ein Rechteck und nicht um DOT 3 Lightning auf einer Mesh der Notre-Dame! Is doch wahr! |
||
I'm no superman...! |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Überarbeitete Version: Deine Kurzsichtigkeit ist grandios. Heute zeigen wir ihm die schlechtmöglichste Lösung und morgen regen wir uns auf, weil sein Spaceshooter 2 Ghz Mindestanforderung hat ![]() Was den unfassbaren Speedunterschied angeht: Code: [AUSKLAPPEN] Graphics 640,480,0,1 ; Edlothiol
SetBuffer BackBuffer() Global RectX,RectY,RectVisible time=MilliSecs() For a=1 To 10000 Cls If MouseHit(1) Then RectX = MouseX() RectY = MouseY() RectVisible = True End If If RectVisible Then Rect RectX,RectY,10,10 End If Flip 0 Next Print MilliSecs()-time WaitKey() End Code: [AUSKLAPPEN] Graphics 640,480,0,1 ; Flachzange
SetBuffer BackBuffer() Global X=-100,Y=-100 time=MilliSecs() For a=1 To 10000 Cls If MouseHit(1) Then x=MouseX() y=MouseY() EndIf Rect x,y,10,10 Flip 0 Next Print MilliSecs()-time WaitKey() End |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Flachzange |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es ist definitiv NICHT die schlechtere Version. Nenn mich kurzsichtig, aber ich nenne dich verblendet! Im übrigen ist deine Argumentation schlichtweg Bullshit! Wenn mans mal auf den Punkt bringt versuchst du ja hier einen universelle Lösung für jedes Problem zu formulieren. Ich kann darum nur eins wiederholen: Wir zeichnen hier nur ein Rechteck! Wozu Universalismus führt, hat ja Microsoft schon eindrucksvoll gezeigt!
Vielleicht solltest du etwas ruhiger an Probleme rangehen. Denn dann schießt du zum einen nicht mit Kanonen auf Spatzen und zum anderen verzettelst du dich dann nicht in irgendeinem Gerede, dass deinen Fehler kaschieren soll. Ich hab keinen Bock mich hier weiter über so ne Lapalie auszukotzen. Meinetwegen soll er das Ding doch mit WritePixelFast und ner Matrix für den Linienverlauf bewerkstelligen! Damit kriegt er auch ein paar DIN A4 Seiten voll! Das war doch deine Intention oder, Hubsi? ![]() Viel Spaß beim weiteren Spammen! |
||
I'm no superman...! |
HOT-BITGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hoi !
lol, das ist ja echt lustig. Aber es wiederholt sich halt alles wieder. Warum soll es anderen anders gehen ? @Flachzange: Siehst du nun, wohin das führen kann ? Ich habe das alles schon hinter mir, und werde es in der Form nicht mehr haben, denn ich helfe nur noch in Ausnahmefällen. Mir kommt in diesem Fall vor, daß beide irgendwie Recht haben. Toni |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gedanklich gehe ich gerade folgendes Szenario durch:
Zitat: Flachzange: "Bei dem einen Rechteck kannst Du es immer zeichnen, auch wenn es nicht gebraucht wird."
Mangudai: "Prima! Das ist ja einfach!" 2 Monate später: Mangudai: "Ich hab hier einen einfachen Spaceshooter zusammengeschraubt (Danke nochmal an Flachzange ![]() Code: [AUSKLAPPEN] Ellenlanger, umständlicher und speedfressender Code
Flachzange: Ist doch klar! Du zeichnest alle Gegner des Levels, auch wenn man sie nicht sehen kann! Mecker, mecker... Tja, und wenn sie nicht gestorben sind, dann coden sie noch heute. Wenn Du jetzt Dein aggressives Gehabe einstellen könntest damit das Geflame hier ein Ende findet? |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group