jeg har læst om at man kan implementerer OpenGL i java, men jeg skal bare bruge grafikken til en simpelt brætspil, så kunne da godt tænke mig at vide hvorfor det altid bliver sådan lidt utydeligt når jeg tegner mine billeder i java med paintComponent(Graphics g) g.drawImage() og især når jeg roterer objekterne bliver det meget utydeligt.
hvordan vil i anbefale at lave grafik i java, hvis man vil have de forskellige komponenter til at vende og dreje som man ser det i flash spil?
Graphics pakken i Java kan ikke særlig meget! Som du nævner, så kan man benytte sig af computerens grafikkort i Java, F.eks. vha. OpenGL. Java har også nogle 3D-grafik biblioteker der kan klare det for dig og man kan lave ligeså pæne spil i Java som man kan i andre sprog.
Det du har brug for er måske mere Graphics2D biblioteket. Graphics2D bruges ligesom Graphics klassen til at tegne i Java, men 2D'eren har en masse udvidet funktionalitet. F.eks. kan du bruge antialiasing der tegner blødere kanter på din grafik og dermed får det til at se mindre pixeleret ud.
Jeg synes du skulle læse lidt om Graphics2D - eller bare gå i gang selv. Du får fat i et Graphics2D object sådan her:
public void paintComponent(Graphics g){ Graphics2D g2d = (Graphics2D)g; }
Hvis ikke dit du synes det går hurtigt nok, så skal du nok læse lidt om OpenGL i java... Men prøv Graphics2D først!
Jeg har allerede leget med Graphics2D. Det har jeg været nødt til for at få de BufferedImages som jeg har lavet roteret, men jeg kunne godt tænke mig at se et eksempel på hvordan du laver de blødere kanter (antialiasing) eftersom jeg ikk rigtig har kunnet finde noget omkring det..
også et andet lille spørgsmål, hvis jeg bruger 3D pakken istedet for 2D pakken laver den så generelt flottere grafik end 2D pakken eller er der blot flere muligheder med denne?. Jeg mener om man i 3D pakken stadig er nødt til at lave antialiasing på sine roterede billeder?
3D pakken gør ikke grafikken flottere som sådan - men den har, som du selv siger, nogle flere muligheder. Den har gjort en masse ting for dig i forvejen, så du ikke selv behøver at lave alt selv - men det virker overkill i forhold til hvad du vil lave.
Antialiasing bliver sat til Graphics2D objektet vha. RenderingHints:
Der findes en masse forskellige RenderingHints, der alle har til formål at styre satsen mellem ydeevne og udseende.
Håber du kan bruge det. Hvis du er meget engageret og vil læse mere om grafik i java, så skulle du anskaffe dig Filthy Rich Clients af Chet Haase og Romain Guy - den er eminent :)
Jeg har prøvet at implementere det i min kode, men sys ikke det har noget synlig effekt.
Er dette kun beregnet til de ting man selv tegner i java eller hvordan? Jeg har selv lavet grafikken i Photoshop og kunne godt tænke mig at det stod knivskarpt ligesom i photoshop, men dette er desværre ikke tilfældet.. selvom jeg sætter renderinghints om.
når jeg tegner bilederne ind bruger jeg bare drawImage() er der andre måder at gøre det bedre på ?
Ja, når du bruger BufferedImages - altså ekstern grafik. Når du tegner grafikken direkte i java virker det fint. Jeg tror du vil få et bedre resultat med overstående hint?
Kunne ikke få det til at virke, men det gør ikke så meget.. :) Det er bare til et skole projekt og dem prioriterer jeg ikke ligeså højt som mine egne :P lig bare et svar.
Ellers tak for hjælpen. jeg kan sikkert bruge noget af det på et senere tidspunkt
Hmm... Det undrer mig. Jeg har selv brugt det flittigt og fået det til at virke før! Men okay, man kan ikke vinde hver gang. Håber du får en god karakter :)
Det er bare bestået eller ej bestået, og det opfylder allerede kravene gange 5, så gider ikk ligge flere kræfter i det ligenu, så skulle det kun være hvis det var for egen vindings skyld, men det mener jeg ikk det er nu..
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.