Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 24.09.2007, 16:47 Titel: |
|
|
Hm.. also bitte nicht zu nah an dem beispiel mit pset halten. man könnte beispielsweise noch etwas mit dem farbwert machen... was weiss ich.. arithmetischer mittelwert mit den angrenzenden pixeln bilden und dann diesen wert setzen... |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 24.09.2007, 18:03 Titel: |
|
|
So kompliziert wollen wir es nicht machen, wieso nicht, wie immer, mit pointern arbeiten?
Code: | #define pixel(x, y) cast(uinteger ptr, screenptr)[x + y * w]
Screen 18, 32
Dim As Integer w, h
Screeninfo w, h
pixel(100, 100) = RGB(100, 255, 100)
sleep |
Anders geht es nicht, also eine richtige funktion kannst du nicht machen. _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 24.09.2007, 19:20 Titel: |
|
|
Was spricht eigl. gegen DIM SHARED?
Einfaches Beispiel:
Code: | dim as integer eingabe
dim shared as integer x
input "Bitte eine Zahl eingeben..";eingabe
x = eingabe ' eingabe nach x übertragen
function blubb as string
print x
function = "eine unglauliche Funktion^^"
end function
print blubb
sleep
|
_________________ Bis irgendwann...  |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 24.09.2007, 19:48 Titel: |
|
|
UIIIII, du hast da einen ganz schönen bock geschossen
DIM Shared x - X ist eine allerweltsvariable, da kann SEHR VIEL schief gehn, wenn du die als shared deklarierst. Shared ist insofern "suboptimal", da man auch mit anderen variablen viel durcheinander bringen kann... übergibt man die variablen als parameter, hat man wunderbar im blick, was benötigt wird und was nicht. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 24.09.2007, 20:36 Titel: |
|
|
Nur zur Korrektur/Ergänzung:
Objektorientierung (wozu Klassen nat. auch gehören) gibt's "erst" seit C++. Und ja, dort kann man z.B. den Zuweisungs-Operator ( überladen. (*1
Das kannst du aber genauso gut auch mit FB machen. (Kein Beispiel parat, da in FB noch nicht allzu intensiv mit beschäftigt. Such aber mal, ytwinky hat da mal 'ne Übersetzung eines englischen Artikels veröffentlicht.)
*1
Code: |
#include <iostream>
#include <string>
class cTest
{
public:
cTest& operator=(const std::string& sBlubb)
{
std::cout<<sBlubb<<std::endl;
return *this;
}
};
int main(int argc, char *argv[])
{
cTest myObject;
std::string myString;
myString="Hello World!";
myObject=myString;
}
|
_________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 24.09.2007, 21:05 Titel: |
|
|
Meinst du den hier?
Denn der hier kann's nicht sein, wg. keine Übersetzung
[edit]
Für diejenigen, die nicht auf die Idee kommen, daß die Dateien auch auch auf ytwinky.freebasic.de zu finden sind, habe ich die Links berichtigt..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO..
Zuletzt bearbeitet von ytwinky am 24.09.2007, 22:22, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 24.09.2007, 21:53 Titel: |
|
|
Hmm irgendwie ist fängt dir Adresse mit file:///I: an  _________________ Bis irgendwann...  |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 24.09.2007, 21:55 Titel: |
|
|
AndT hat Folgendes geschrieben: | Hmm irgendwie ist fängt dir Adresse mit file:///I: an  |
Das hat irgendwie bestimmt nen Grund  |
|
Nach oben |
|
 |
Cherry
Anmeldungsdatum: 20.06.2007 Beiträge: 249
|
Verfasst am: 26.09.2007, 22:39 Titel: |
|
|
dein Vorhaben müsste gehen, wenn du Properties verwendert... |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 09.11.2007, 16:41 Titel: Zusammenfassung: |
|
|
Ich habs mit properties probiert. Sieht vom prinzip auch nicht schlecht aus!
Einzige problem ist, das man einem property nicht mehr als einen index mitgeben kann.
Da kann ich aber ein wenig herrumarbeiten:
Code: |
type postype
x as integer
y as integer
end type
Type scrmem
Declare Property pixel(Byval index As postype, Byval value As UInteger)
Declare Property pixel(Byval index As postype) As UInteger
dummy As Integer
End Type
Property scrmem.pixel(Byval index As postype, Byval value As UInteger)
pset(index.x,index.y), value
End Property
Property scrmem.pixel(Byval index As postype) As UInteger
Property = point(index.x, index.y)
End Property
declare function p(x1 as integer,y1 as integer) as postype
function p(x1 as integer,y1 as integer) as postype
dim tmp as postype
tmp.x = x1
tmp.y = y1
return tmp
end function
'-----
Dim scr1 As scrmem
screen 14,32
scr1.pixel(p(100,100)) = RGBA(0,0,255,0)
print scr1.pixel(p(100,100))
sleep
|
Letztenendes möchte ich nichts anderes machen als den bildschirminhalt als 2 dimensionales objekt ansprechen. Da die objektorientierung aber in FBasic noch in den kinderschuhen steckt muss ich mich wohl mit dieser lösung zufrieden geben. Oder weiss jemand wie ich unter FBasic ein 2 dimensionales "objekt" erstelle? |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 09.11.2007, 17:27 Titel: |
|
|
Nun, zunächst einmal mit
Code: | type 2dobjekt
x as integer ' oder double oder was immer du brauchst
y as integer
end type
|
Dann kommt es darauf an, was du mit dem Objekt anstellen willst. Um beispielsweise eine Addition zu definieren, kannst du OPERATOR verwenden. Schlag mal in der Befehlsreferenz nach, da ist unten ein Beispiel für die Addition von zweidimensionalen Vektoren dabei.
Ich hoffe, dass ich die Frage jetzt soweit richtig verstanden habe ... _________________ 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: 09.11.2007, 17:53 Titel: |
|
|
Ja .. ähm ne.. nich wirklich.
Ich möchte ein objekt, welches mir abhängig vom index, einen wert zurückgibt bzw einen wert, abhänig vom index abspeichert.
Im prinzip nichts anderes als dim 2DObjekt(1 to 100, 1 to 100) as integer.
Nur das was passiere soll wenn ich z.B.
2DObjekt(32,55) = 12345
aufrufe.
In meinem Beispiel (aus meinem vorherigen Beitrag) übergibt eine Funktion die x und y koordinaten als type (postype) an den index des property. Jeweils als "Holer" und als "Setzer"
Beim "Holen" liest er mittels Point(x,y) die farbe an der koordinate aus, beim "Setzen" schreibt er mittels Pset(x,y), value die Farbe auf den Bildschirm.
So ein objekt wäre ganz praktisch. Ich kann mir neben der ein und ausgabe eines farbwertes auf dem bildschirm auch andere technische gebiete vorstellen. Aber den sinn eines objektes wird hier ja wohl niemand in frage stellen wollen oder?  |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 09.11.2007, 18:09 Titel: |
|
|
So in diesem Sinne ist das in FreeBASIC (meines Wissens) nicht möglich, jedenfalls nicht mit "Live-Anzeige". Mit einem abstrakten "Bildschirm", der nicht automatisch angezeigt wird, kannst du das natürlich machen (also eben ein Array), aber das ist ja nicht das, worauf du hinaus willst. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
|