Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 03.09.2008, 19:38 Titel: |
|
|
hast du die UDTs extra als PTR gedimmt? warum nicht einfach ganz normal den UDT benutzen?
und was RGB(0,255,0) und RGB(255,0,0) angeht, da kannste ne menge zeit sparen wenn du const color_green = rgb(0,255,0) usw machst _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 03.09.2008, 19:54 Titel: |
|
|
Deine "Ameisen" haben eine seltsame Vorliebe für 45°-Winkel. Das riecht nach Integerdivision, wo eigentlich eine Fliesskommadivision hingehört hätte.
Nur so nebenbei: Das Programm liesse sich noch (ein Bisschen) optimieren, wenn aus den Funktionen red(), blue(), gree() "inline" Funktionen würden.
Lutz Ifer _________________ Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft. |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 03.09.2008, 20:15 Titel: |
|
|
und i-was mit der mausprüfung is faul... der macht sehr viel schneller wenn die maus nicht im fenster is...
@Lutz:
statt :
Code: |
tx = int((rnd *3) -1) '... Schauen wir mal wo man so hintreten kann
ty = int((rnd *3) -1) 'Einfach mal auf gut Glück
|
nimm:
Code: |
tx = (rnd *2) -1 '... Schauen wir mal wo man so hintreten kann
ty = (rnd *2) -1 'Einfach mal auf gut Glück
|
_________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 03.09.2008, 20:40 Titel: |
|
|
@The_Muh: Ja das hab ich auch später gesehen. So siehts schon viel besser aus ... Vielen Dank für die Tipps! Werd das ganze aber noch etwas ausarbeiten wenn noch anregungen da sind, immer her damit  |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 03.09.2008, 20:42 Titel: |
|
|
Das in die Hauptschleife:
Code: |
if in = "p" then
if pause = 0 then
pause = 1
else
pause = 0
end if
end if
if pause = 0 then apx->work : apx=apx->nx_px
|
und das als endbedinung für die hauptschleife:
Code: | loop until in = "q" or in = chr(27) or in = chr(255,107) |
_________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 05.09.2008, 12:50 Titel: |
|
|
was ist chr(255,107) ? |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 05.09.2008, 13:18 Titel: |
|
|
Alt+F4 alias "fenster schließen" _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 05.09.2008, 13:26 Titel: |
|
|
@The_Muh:
Was meinst du mit:
"hast du die UDTs extra als PTR gedimmt? warum nicht einfach ganz normal den UDT benutzen? "
Wenn ich zur laufzeit neuen Speicherplatz für beliebig viele "Wanderpixel" belegen will, dann geht wohl kaum ein Weg um Pointer drum herum. Besonders wenn ich diese dann noch verketten will.
Hier eine neue Version mit euren Einflüssen und Ideen:
http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=710
Zum beginnen einfach "p" drücken!
Tasten:
c = löscht den Bildschirm und baut die Wanderpixel neu auf
p = pause
l = löscht den 1. Wegpunkt in der Kette (da muss ich aber noch was einbauen, da könnte was abstürzen wenn man alle wegpunkte entfernt)
+ = Es werden 10 Wanderpixel hinzugefügt
- = Es wird 1 Wanderpixel entfernt
Bin gespannt wie es weitergehen kann  |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 05.09.2008, 13:27 Titel: |
|
|
PS: Mit REDIM arbeite ich nicht gerne. |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 05.09.2008, 13:47 Titel: |
|
|
Folgendes ist mir aufgefallen:
Sobald sich wege kreuzen oder die Pixel sich an einem Wegpunkt "stauen" dann pflanzt sich der Stau rückwärts fort.. genau wie im im richtigen Leben *lol* |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 05.09.2008, 14:17 Titel: |
|
|
Kann man das eigentlich auch in OpenGL programmieren? also mit 3 dimensionen? |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 05.09.2008, 14:32 Titel: |
|
|
OneCypher hat Folgendes geschrieben: | PS: Mit REDIM arbeite ich nicht gerne. |
Mit dem edit-Button auch nicht, hm?
Das Programm läuft bei mir so quälend langsam, dass ich mal eine Messung und Ausgabe eingebaut habe, wie lange es für einen Schleifendurchlauf braucht. Und prompt läuft es sehr flott
Woran liegt das? Ich habe das Gefühl, dass ohne meinen PRINT-Befehl gar nichts läuft und auch das Beenden ewig dauert. *wunder* _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 05.09.2008, 14:40 Titel: |
|
|
Rüüühhsscchtüüüsch .. "edit" benutzen doch nur leute die was zu verbergen haben *ggg*
@nemored: Ich arbeite hier mit WinXP Pro auf einem 1,86GHz Core2Duo 1GB Ram. Und da läufts auch mit 10000 wanderpixel noch recht flott. Allerdings muss ich zugeben das es auf einem anderen Rechner der Offiziell flotter sein soll, nicht so flott ist.
Dieser andere Rechner läuft mit Ubuntu 8.04 und hat die propritären Nvidia-Treiber installiert. Hat ne 2,4GHz Core2Quad CPU und 3GB Ram.
Warum das auf dem 2. Rechner langsamer läuft versteh ich in der Tat nicht!
Obs an den X-Treiber von NVidia liegt? Im Heise Ticker und in der CT hab ich schon öfters wegen Performance-verlusten unter Linux mit den Nvidia-treibern gelesen...
Angeblich sollte man ja ein "sleep 1" in die Hauptschleife einfügen damit das Betriebssystem auch kurz die Kontrolle über die Events bekommt.
Aber sobald ich das in die Hauptschleife einfüge läufts wirklich grotten langsam... Da lass ich das lieber ohne "sleep 1" laufen... |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 05.09.2008, 14:56 Titel: |
|
|
Natürlich hat mein Laptop nicht den Hyperprozessor - mag mir ja z. B. im Zug nicht die Knie verbrennen - aber mehr als 10 Sekunden Reaktionszeit zum Programm beenden ist mir zu langsam.
Tatsächlich ist die Geschwindigkeit aber ganz passabel, wenn ich nur irgendwo eine Ausgabe einfüge. LOCATE 1,1 : PRINT "a" reicht da schon. Ansonsten rechnet er eine ganze Weile vor sich her und gibt irgendwann einmal ein Zwischenergebnis aus. Merkt das Programm ohne mein PRINT nicht, dass es schon etwas ausgeben soll? Bin etwas ratlos. Vor allem, weil es ja auch die Reaktion auf die Programmende-Taste verzögert. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 05.09.2008, 15:02 Titel: |
|
|
@nemored: Was für ein OS benutzt du?
Ich hab merkwürdigkeiten unter Linux mit der funktion getmouse beobachtet. Warum es bei dir schneller wird sobald du eine textausgabe generierst versteh ich auch nicht. Bzw kann ich bei mir nicht nachvollziehen. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 05.09.2008, 15:39 Titel: |
|
|
OneCypher hat Folgendes geschrieben: | @nemored: Was für ein OS benutzt du? |
Linux Ubuntu 8.04
(da soll noch einer sagen, PRINT würde die Programmgeschwindigkeit bremsen )
Mit GETMOUSE habe ich normalerweise keine Probleme.
edit: mit SLEEP 1 und ohne PRINT läuft das Programm zwar wesentlich langsamer, aber es läuft. Ich kann mir nur vorstellen, dass das Programm so sehr mit der Berechnung beschäftigt ist, dass es gar nicht mehr zum zeichnen kommt.  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 05.09.2008, 15:55 Titel: |
|
|
wie wärs mit screensync ?
also in die hauptschleife reinbauen:
if apx = spx then screensync
Du lässt Ubuntu 8.04 auf einem laptop laufen hmm... okay, dann wird das wohl kein älterer laptop sein.. sonst bräuchte der 10 minuten zum hochfahren nach meinen erfahrungen.
Und WinXp hast du bei dir nicht installiert? .. ich schätze das liegt wirklich am OS. Oder an irgendwelchen Treibern.
edit: das einsetzen von "if apx = spx then screensync" bewirkt eine wirklich krasse verlangsamung auf dem Core2Duo (1,86GHz)... Bin mal gespannt wie sich das bei dir auswirkt |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 05.09.2008, 16:47 Titel: |
|
|
OneCypher hat Folgendes geschrieben: | Du lässt Ubuntu 8.04 auf einem laptop laufen hmm... okay, dann wird das wohl kein älterer laptop sein.. sonst bräuchte der 10 minuten zum hochfahren nach meinen erfahrungen. |
dreieinhalb Jahre
OneCypher hat Folgendes geschrieben: | Und WinXp hast du bei dir nicht installiert? |
Wozu?
Zitat: | das einsetzen von "if apx = spx then screensync" bewirkt eine wirklich krasse verlangsamung auf dem Core2Duo (1,86GHz) |
bei mir ebenso, aber damit klappt es wesentlich besser:
Code: | if timer-t > .1 then
screensync
t = timer
end if
|
Eine Aktualisierung jede 10tel Sekunde reicht mir erst einmal.
edit:
stimmt ja gar nicht, es sind ja schon viereinhalb. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 05.09.2008, 16:57 Titel: |
|
|
@nemored: Hast du zufällig den original NVidia-Treiber installiert?
Unter WinXP laufen leider immer noch viele beliebte Programme. Auch die Treiberunterstützung seitens Hardware-herstellern ist immer noch besser. Wird wohl auf absehbare Zeit auch nicht anders sein.
Ich schätze schon das es unter Linux genau deswegen oft zu Performance-Engpässen kommen kann.
Einfach deswegen weil dort oft nicht durchgängig Treiber werkeln die nicht vom Hersteller gepflegt werden. Sei es als OpenSource-Projekt wie viele Treiber von Intel, oder als propritäre Geschichte wie schon erwähnt Nvidia... |
|
Nach oben |
|
 |
|