Mesh verändert sich auf Mausklick, wie geht das?
Übersicht

KevinBetreff: Mesh verändert sich auf Mausklick, wie geht das? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich wollte mal wissen wie sich das Mesh (.3ds Datei) auf Mausklick verändert ich meine so dass ich eine Mauer hab und auf mausklick soll sich die mauer verändern. (Also die mauer soll bescriftet werden mit Graffity oder soetwas) |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist recht wage formuliert: Irgendein Mausklick, oder ein Klick auf die Mauer? "Verändern" ist auch ziemlich allgemein - wenn es nichts spezielles ist, würd' ich dich an Tutorials & Beginners FAQ verweisen, da es dann eine recht elementare Fragestellung ist, die du dir sowieso am besten selbst erarbeitest, wenn du programmieren lernen möchtest. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Kevin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich mein natürlich nur auf die Mauer^^ grass mit Graffity... | ||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also entweder du machst zwei modells uns lädst das andere wenn man klickt, oder du nimmst das alte und legst die Graffity Texture oben drauf..
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! |
Kevin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das is so wie bei GTA.. ich meine wie bei Grafitti Studio ( http://www.vandalsquad.com/ ) dass man es mit der Maus selber zeichnen muss | ||
Kevin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jetzt nochmal verständlicher:
Also ich Programmiere ein Spiel, in dem Spiel hat man eine Virtuelle Stadt und man soll in der Stadt Grafittis selber Zeichnen können. Es sollte nicht so wie in GTA San Andreas sein. Ich hoffe mir kann Jemand helfen. |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Finde ich zwar immer noch nicht sooo toll beschrieben, aber wenn meine Phantasie da was halbwegs Richtiges hinein interpretiert, dann empfehle ich dir, in den B3D-Samples Ordner zu schauen:
samples\birdie\texpaint könnte sein was du suchst. mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
https://www.blitzforum.de/help/?cat=8
und speziell z.B. https://www.blitzforum.de/help/SetTexel3D 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! |
Kevin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mit dem Sample gehts.... aber bei mehreren Objekten in einer .3ds Datei skinnen die sich alle Gleich!
er Läd meine Textur nicht, und ich kann die Farbe nicht Ändern (also das gesprayte) Bitte um Hilfe |
||
- Zuletzt bearbeitet von Kevin am Mi, Dez 22, 2010 21:29, insgesamt einmal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was soll man dir ohne Code denn sagen? | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Kevin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Graphics3D 1024,768 HWMultiTex True HidePointer SetBuffer BackBuffer() lit=CreateLight() LightColor lit,0,0,0 PositionEntity lit,0,0,-2 cam=CreateCamera() CameraRange cam,.1,1000 PositionEntity cam,0,0,-3 bloodtex=CreateTexture(100,100) model=LoadMesh("Testt.3ds") EntityTexture model,bloodtex,0,1 TextureBlend bloodtex,3 EntityPickMode model,2 ; spr=CreateSprite() EntityTexture spr,bloodtex,0,1 PositionEntity spr,4,4,4 Global ent Global tria Global surf Global sx0#,sx1#,sx2#,sxp# Global sy0#,sy1#,sy2#,syp# Global un0#,vn0# Global un1#,vn1# Global u0#,v0# Global u1#,v1# Global u2#,v2# While Not KeyDown(1) Include "Kamera.bb" EntityTexture spr,bloodtex xm=MouseX() ym=MouseY() If MouseDown(1) Then Check_Hit(cam,xm,ym,bloodtex) End If TurnEntity model,0,.1,0 UpdateWorld RenderWorld Line xm-4,ym,xm+4,ym Line xm,ym-4,xm,ym+4 Line sx0,sy0,sx1,sy1 Line sx1,sy1,sx2,sy2 Line sx2,sy2,sx0,sy0 Plot sxp,syp Flip Wend FreeEntity lit FreeEntity cam EndGraphics End Function Check_Hit(cam,x,y,tex) ent=CameraPick(cam,x,y) surf=PickedSurface() tria=PickedTriangle() If ent<>0 Then u0#=VertexU(surf,TriangleVertex(surf,tria,0)) u1#=VertexU(surf,TriangleVertex(surf,tria,1))-u0 u2#=VertexU(surf,TriangleVertex(surf,tria,2))-u0 v0#=VertexV(surf,TriangleVertex(surf,tria,0)) v1#=VertexV(surf,TriangleVertex(surf,tria,1))-v0 v2#=VertexV(surf,TriangleVertex(surf,tria,2))-v0 x0#=VertexX(surf,TriangleVertex(surf,tria,0)) x1#=VertexX(surf,TriangleVertex(surf,tria,1)) x2#=VertexX(surf,TriangleVertex(surf,tria,2)) y0#=VertexY(surf,TriangleVertex(surf,tria,0)) y1#=VertexY(surf,TriangleVertex(surf,tria,1)) y2#=VertexY(surf,TriangleVertex(surf,tria,2)) z0#=VertexZ(surf,TriangleVertex(surf,tria,0)) z1#=VertexZ(surf,TriangleVertex(surf,tria,1)) z2#=VertexZ(surf,TriangleVertex(surf,tria,2)) TFormPoint x0,y0,z0,ent,0 CameraProject cam,TFormedX(),TFormedY(),TFormedZ() sx0#=ProjectedX() sy0#=ProjectedY() TFormPoint x1,y1,z1,ent,0 CameraProject cam,TFormedX(),TFormedY(),TFormedZ() sx1#=ProjectedX()-sx0 sy1#=ProjectedY()-sy0 TFormPoint x2,y2,z2,ent,0 CameraProject cam,TFormedX(),TFormedY(),TFormedZ() sx2#=ProjectedX()-sx0 sy2#=ProjectedY()-sy0 CameraProject cam,PickedX(),PickedY(),PickedZ() sxp#=ProjectedX()-sx0 syp#=ProjectedY()-sy0 sx0=0 sy0=0 us1#=u1/sx1 vs1#=v1/sy1 us2#=u2/sx2 vs2#=v2/sy2 un0#=((sxp*us1)) vn0#=((syp*vs1)) un1#=((sxp*us2)) vn1#=((syp*vs2)) If un0=0 Or vn0=0 Then Paint_Blood(tex,(u0+un1)*TextureWidth(tex),(v0+vn1)*TextureHeight(tex)) Else paint_Blood(tex,(u0+un0)*TextureWidth(tex),(v0+vn0)*TextureHeight(tex)) End If End If End Function Function Paint_Blood(tex,x,y) SetBuffer TextureBuffer(tex) Color 255,0,0 s#=4 Oval x-s/2,y-s/2,s,s Color 255,255,255 SetBuffer BackBuffer() End Function |
||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ohne auf deinen Code einzugehen....
Kevin hat Folgendes geschrieben: Mit dem Sample gehts.... aber bei mehreren Objekten in einer .3ds Datei skinnen die sich alle Gleich! Das ist ganz normal, in deiner 3ds Datei befinden sich schließlich mehrere Objekte also werden beim Befehl "Texturiere 3ds-Mesh" auch alle Objekte in der 3ds texturiert. Du musst schon die Objekte einzeln laden, ODER betreffende Childs (ca. "Unterobjekte", siehe FindChild![]() Kevin hat Folgendes geschrieben: er Läd meine Textur nicht, und ich kann die Farbe nicht Ändern (also das gesprayte) Die Frabe einer Textur kann man auch nicht ändern. Nur die Farbe der Vertex eines 3d Modells. Also entweder du lädst verschiedenfarbige Texturen oder du greifst auf den Texturbuffer zu und überschreibst die Pixel mit anderen Farbwerten.
Ist vermutlich aber alles zu kompliziert, da du noch mit B3D anfängst. Also alles in allem ein schwieriges Thema für dich. |
||
Kevin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich meine Dass die Farbe aus der Spraydose anders werden soll!
Und ich wollte noch wissen wie Dass Grafitti bei neustart des Spiels erhalten bleibt. Und auf einer bestimmten Taste soll alles wieder im Ursprung sein. MfG Kevin |
||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst das "Graffiti" in eine Textur malen.
Aber ganz ehrlich das ist nicht mal ansatzweise für dein Wissensstand geeignet. Man erlernt nicht Programmierung in B3D bzw. das Verständnis für 3D Prozesse wenn man mit dem Kopf durch die Wand rennt. Fang doch klein an ![]() |
||
Kevin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja aber ich habe scho neinige gute programme gebastelt, aber bei dem hier bin ich echt Ratlos | ||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Um das um zu setzen kann man a) Für jedes Objekt eine neue Textur erstellen, in die direkt gemalt wird: Langsam, Speicherintensiv, schwer um zu setzen oder b) Sprites/Quads Decals benutzen die auf die Dauer Speicherintensiv sind, und nicht sehr viel einfacher zu programmieren sind. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja also wenn es dir unbedingt so viel bedeutet... ich würde es so machen:
- leere Textur via CreateTexture ![]() - Graffiti kann über das zeichnen in den TextureBuffer ![]() ![]() ![]() - So gewonnene Textur auf ein quadratisches Mesh (Einseitiges Quadrat) legen (EntityTexture ![]() - Dieses Mesh kann beliebig gefärbt werden EntityColor ![]() - Ermitteln der Mausklick-Koordinaten in 3D (wo hat Mauszeiger auf Bildschirm geklickt -> berechnen der 3D Koord. an Mauer) - Positionieren des quadr., eingefärbten Meshes mit Graustufen Textur auf ermittelten Koordinaten. Rotation des quadr. Meshes so dass es weg von Mauer zeigt (damit Graffiti gerade an Wand). Graffiti Mesh ein kleines bisschen weg von Wand bewegen damit es keine Z-Buffer Fehler gibt. Aktion nochmals für ein neues Graffiti ausführen. Ich denke du wirst auf massig Probleme treffen. Ich würde mich an deiner Stelle erstmal an was anderem versuchen oder dir dies für später aufheben. ![]() |
||
Kevin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also das mit dem Zeichnen hab ich Jetzt so wie ich es haben wollte. aber das mit dem speichern, das ist für mich Unlösbar (zur zeit) | ||
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was willst du denn speichern? | ||
Mein DeviantArt Profil
Gewinner des BAC #136 |
Kevin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
die Graffitis will ich beim nächsten spielstand da haben wo sie vor dem spielstart waren. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group