Doom3 2D-Fake
Übersicht

![]() |
TritonBetreff: Doom3 2D-Fake |
![]() Antworten mit Zitat ![]() |
---|---|---|
Als ich Doom3 gezockt habe, fand ich eigentlich die ganze Grafik toll.
Besonders aber diese ganzen, unglaublich detailierten und gut gemachten Pads im Spiel. u.A eines mit diesem Diagramm: ![]() Das fand ich toll und habs nachgecodet: ![]() Code: [AUSKLAPPEN] ;*** Doom3 2D-Fake ;*** 8.10.2004, by Triton ;*** http://www.silizium-net.de/ Graphics 800,600,16,3 SetBuffer BackBuffer() SeedRnd MilliSecs() font1=LoadFont("verdana",32,1) font2=LoadFont("verdana",24,1) ;Dim balken(3,3) ;hier kann man manuell unterschiedliche Balkenverschiebungen eingeben ;For x = 1 To 3 ; For y = 1 To 3 ; balken(x,y)=Rand(0,180) ; Next ;Next Global originx = 370 Global originy = 400 time1 = MilliSecs() While Not KeyDown(1) loops = loops+1 If MilliSecs() - time1 > 1000 Then fps = loops:loops = 0:time1 = MilliSecs() a = a + 3 If a > 360 Then a=0 Color 100,123,157 ;Ganz außen Rect 0,0,800,600 Color 40,50,65 ;Mitte Rect 10,10,790,520 Color 70,86,112 ;Balkenbg Rect 400,100,340,400 Color 190,200,215 ;balkenrand Rect 400,100,340,400,0 Color 75,108,118 ;"fps"-balken Rect 0,540,800,10 Rect 690,550,200,40 filltri(650,550,690,550,690,590,75,108,118,75,108,118) SetFont font1 Color 168,171,181 Text 50,50, "F L U C T U A T I O N" Text 685,550, fps+" FPS" Color 68,71,90 Text 20,550, "S C I E N C E S T A T I O N - S C A N" Color Abs(Sin(a*5)*127+128),Abs(Sin(a*5)*100+100),Abs(Sin(a*5)*32+32) Text 50,450, "R E C O R D I N G" Color 78,81,91 Text 50,480,"D A T A S T R E A M" SetFont font2 For x = 3 To 1 Step -1 For y = 1 To 3 Step 1 h# = Abs(Sin(a+(x-2*y)*50)*100+100) ;höhe der Balken r=h/2+155 g=h*0.8 b=h*0.8 rgb=255*$1000000 + r*$10000 + 0*$100 + 0 filltri(xneu(x,y),yneu(x,y)-h,xneu(x+1,y),yneu(x+1,y)-h,xneu(x,y+1),yneu(x,y+1)-h,r,g,b,r,g,b) filltri(xneu(x+1,y+1),yneu(x+1,y+1)-h,xneu(x+1,y),yneu(x+1,y)-h,xneu(x,y+1),yneu(x,y+1)-h,r,g,b,r,g,b) filltri(xneu(x,y),yneu(x,y),xneu(x,y),yneu(x,y)-h,xneu(x,y+1),yneu(x,y+1),r*0.8,g*0.8,b*0.8,r*0.8,g*0.8,b*0.8) filltri(xneu(x,y+1),yneu(x,y+1)-h,xneu(x,y),yneu(x,y)-h,xneu(x,y+1),yneu(x,y+1),r*0.8,g*0.8,b*0.8,r*0.8,g*0.8,b*0.8) filltri(xneu(x,y+1),yneu(x,y+1),xneu(x,y+1),yneu(x,y+1)-h,xneu(x+1,y+1),yneu(x+1,y+1),r*0.6,g*0.6,b*0.6,r*0.6,g*0.6,b*0.6) filltri(xneu(x,y+1),yneu(x,y+1)-h,xneu(x+1,y+1),yneu(x+1,y+1),xneu(x+1,y+1),yneu(x+1,y+1)-h,r*0.6,g*0.6,b*0.6,r*0.6,g*0.6,b*0.6) Color 126,146,141 Text (x-1)*100+50, (y-1)*26+100, Int(h+23) Text (x-1)*100+50, (y-1)*26+180, r Text (x-1)*100+50, (y-1)*26+260, g Text (x-1)*100+50, (y-1)*26+340, b Text 350, 100, "H" Text 350, 180, "R" Text 350, 260, "G" Text 350, 340, "B" Next Next If KeyDown(1) Then End Flip Cls Wend ;--- Function xneu(x,y) Return (x*2+y*2)*20+originx End Function ;--- Function yneu(x,y) Return (y*2-x*2)/2*20+originy End Function ;--- Function filltri(x1,y1,x2,y2,x3,y3,r,g,b,borderr,borderg,borderb) For oft = 0 To 1 If x1 > x2 Then p=x2 x2=x1 x1=p q=y2 y2=y1 y1=q End If If x1 > x3 Then p=x3 x3=x1 x1=p q=y3 y3=y1 y1=q End If If x2 > x3 Then p=x3 x3=x2 x2=p q=y3 y3=y2 y2=q End If Next Color r,g,b For bx1# = x1 To x2 m13# = (Float(y3-y1)/(x3-x1)) n13# = -m13*x1+y1 by1# = m13*bx1+n13 m12# = (Float(y2-y1)/(x2-x1)) n12# = -m12*x1+y1 by2# = m12*bx1+n12 If by2-by1 > 0 Then Rect bx1,by1,1,by2-by1 If by2-by1 < 0 Then Rect bx1,by2,1,by1-by2 Next For bx2 = x2 To x3 m13# = (Float(y3-y1)/(x3-x1)) n13# = -m13*x3+y3 by3# = m13*bx2+n13 m23# = (Float(y3-y2)/(x3-x2)) n23# = -m23*x2+y2 by4# = m23*bx2+n23 If by4-by3 > 0 Then Rect bx2,by3,1,by4-by3 If by4-by3 < 0 Then Rect bx2,by4,1,by3-by4 Next Color borderr,borderg,borderb Line x1,y1,x2,y2 Line x1,y1,x3,y3 Line x2,y2,x3,y3 End Function |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
- Zuletzt bearbeitet von Triton am So, Dez 02, 2012 17:33, insgesamt 5-mal bearbeitet
OJay |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sehr geil, auch wenn langsam...aber da ist noch genug optimierungspotential ![]() wir sollten wirklich mal ein doom2d machen ![]() |
||
![]() |
Bms |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja korrekt is des krass!!!! einfach nur geil. genial. leider hab ich nur 6 FPS ![]() <edit> ohne debugger und text(außer fps-text) 20 fps mehr!!! |
||
Reblonce (Jump + Run + Shoot - Game; 20 Levels): Download |
- Zuletzt bearbeitet von Bms am Sa, Okt 09, 2004 12:59, insgesamt einmal bearbeitet
x.Force |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ist wirklich geil (30-34 FPS) | ||
AMD Athlon XP 2000+ | 1024mb DDR-Ram | Asus Radeon 9600XT | BENQ FP757 17°Zoll TFT Was kümmert mich mein Geschwätz von gestern? (Konrad Adenauer) -.- |
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenns schneller laufen soll, kann man z.B a=a+5 statt a+3 schreiben.
Sind zwar nicht mehr fps, aber die balken bewegen sich schneller ![]() |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Boar,geil... ![]() Das sieht ja genauso aus wie in Doom.... Dachte mir zuerst,"ach als wenn das jetzt gut aussieht....",aber ich hab mich getäuscht,sieht echt wie in Doom aus.Nagut bis auf diese Transparents... ![]() |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
![]() |
jungle |
![]() Antworten mit Zitat ![]() |
---|---|---|
sehr sehr nice!
@x.force wie athlon xp 2000+ und ~34fps ? ![]() bei mir ~16fps auf einem xp 2600+ ![]() |
||
In der Realität ist die Wirklichkeit ganz anders.
| P3 550Mhz | P90Mhz | AMD 1Ghz | XP 2600@3200Mhz l P2 400Mhz | Dual XP 2000Mhz | |
![]() |
Lord_Vader |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das mit den FPS liegt wie bei meiner benchmark NUR an den vielen sachen die verändert werden. Macht mal nen timer rein von 50 oder 75 millisekunden für den update der balken...
Desweiteren sind es die rects ![]() Edit: ACH gut natürlich ![]() ![]() Edit2: 18-25 FPS ![]() |
||
Combine |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
24 fps
Wow sehr gut ![]() |
||
Hot-BitSieger des B2D Retro Wettbewerb / Aug 04 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hoi.
Fein gemacht. Und auch recht schnell bei mir. 50 FPS. Ich würde sagen: Hut ab ! Aber ich hab leider keinen ![]() Toni |
||
... ..... .i.. ...
*** Sieger des BB-Gameboy-Contest 2004 Sieger des Blitzbaster 2D-Minigolf-Contest 2005 *** |
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jaja, schleim dich ruhig ein Hot-Bit ![]() Scherz - aber an dieser Stelle auch von mir: Sehr gut. *THUMBS UP* |
||
~ Hey Ho Let's Go ~ |
Hot-BitSieger des B2D Retro Wettbewerb / Aug 04 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hoi.
Sehr witzig ! Habe mir aber gedacht, daß sowas in der Art kommt... tztztz Toni |
||
... ..... .i.. ...
*** Sieger des BB-Gameboy-Contest 2004 Sieger des Blitzbaster 2D-Minigolf-Contest 2005 *** |
Nox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mh, also am Speed kann man definitiv was machen. ![]() Läuft bei mir ohne Debugmode und im Fullscreen mit 128 Pixel breiten Quads noch sehr flüssig (Athlon XP2400+, GF2 ![]() Momentan fällt mir ein, dass das Zeichnen bei mir absolut hirnrissig ist...und zwar wird pro Höhe das Image gezeichnet, was bei mehreren Quads total die Performance beeinflusst. Da ist auf jeden Fall noch was machbar und da liegt auch die größte Bremse. Spielt ein wenig mit folgenden Werten rum: Const QUAD_WIDTH% = 128 (Breite eines Quads) Const QUAD_COUNT% = 2 (Anzahl + 1) Const MOVE_AMOUNT% = 5 (Bewegung pro Frame) Code: [AUSKLAPPEN] Const QUAD_WIDTH% = 128 Const QUAD_HEIGHT% = QUAD_WIDTH% / 2 Const QUAD_HH% = QUAD_HEIGHT% / 2 Const QUAD_COLOR% = $00000100 Const QUAD_COUNT% = 2 Const OFFX% = 400 Const OFFY% = 300 Const MOVE_AMOUNT% = 5 Dim quads%(QUAD_COUNT%, QUAD_COUNT%) Graphics(800, 600, 16, 1) SetBuffer(BackBuffer()) SeedRnd(MilliSecs()) mainfont% = LoadFont("Tahoma", 16, 1) isoquad% = BuildIsoQuad%(QUAD_WIDTH%, QUAD_HEIGHT%, QUAD_COLOR%) For y% = 0 To QUAD_COUNT% For x% = 0 To QUAD_COUNT% quads%(x%, y%) = Rand(0, 255) Next Next While Not KeyHit(1) Cls For y% = 0 To QUAD_COUNT% For x% = 0 To QUAD_COUNT% quads%(x%, y%) = (quads%(x%, y%) + MOVE_AMOUNT%) Mod 255 px% = Sin(quads(x%, y%)) * 255 dx% = OFFX% + x% * (QUAD_HEIGHT%) - y% * (QUAD_HEIGHT%) dy% = OFFY% + x% * (QUAD_HH%) + y% * (QUAD_HH%) For h% = 0 To px% DrawImage isoquad%, dx%, dy% - h%, px% Next Next Next Flip 1 Wend Function BuildIsoQuad%(width%, height%, col%) image% = CreateImage(width%, height%, 256) Local halfw# = Float(width% / 2) Local halfh# = Float(height% / 2) Local startx# = halfw# Local stepx# = Float(width%) / Float(height%) For frame% = 0 To 255 LockBuffer(ImageBuffer(image%, frame%)) framecol% = col% * frame% For y% = 0 To height% - 1 If (y% <= halfh#) Then startx# = halfw# - (y% * stepx#) If (y% > halfh#) Then startx# = y% Mod halfh# * stepx# endx# = Float(width%) - startx# - 1.0 For x# = startx# To endx# If (x# > endx#-2.0 And y% => halfh#) Then bf% = frame% - 10 If (bf% < 0) Then bf% = 0 finalcol% = col% * bf% Else finalcol% = framecol% EndIf WritePixelFast x#, y%, finalcol%, ImageBuffer(image%, frame%) Next Next UnlockBuffer(ImageBuffer(image%, frame%)) Next Return image% End Function |
||
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() War ja nur Spaß Hot-Bit ![]() ![]() @Nox: Jo, läuft gut. ![]() |
||
~ Hey Ho Let's Go ~ |
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist aber nicht so optisch perfektioniert wie meins (welches ja noch viele Text und paar andere Zeichenbefehle drin hat) ![]() Hab jetzt auch ne bischen optimierte Version reineditiert. |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
![]() |
Kernle 32DLL |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bin wirklich begeistert !
Hab zwar nie Doom³ gespielt,aber das sieht einfach so schon mega hammer geil aus ! Was man alles mit BB machen kann ![]() |
||
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog] Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89 Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009 |
![]() |
Suco-XBetreff: ....... |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, habe das ganze mal aus Fun Bmax tauglich gemacht.
Kriege 425 fps. Code: [AUSKLAPPEN] Graphics 800,600,32 SeedRnd MilliSecs() Global originx = 370 Global originy = 400 Global loops:Int = 0 time1 = MilliSecs() bglSetSwapInterval(0) While Not KeyDown(1) loops = loops+1 If MilliSecs() - time1 > 1000 fps = loops loops = 0 time1 = MilliSecs() EndIf a = a + 3 If a > 360 a=0 EndIf SetColor 100,123,157 DrawRect 0,0,800,600 SetColor 40,50,65 DrawRect 10,10,790,520 SetColor 70,86,112 DrawRect 400,100,340,400 SetColor 190,200,215 DrawRect 400,100,340,400 SetColor 75,108,118 DrawRect 0,540,800,10 DrawRect 690,550,200,40 filltri(650,550,690,550,690,590,75,108,118,75,108,118) SetColor 168,171,181 DrawText "F L U C T U A T I O N",50,50 DrawText fps+" FPS",685,550 SetColor 68,71,90 DrawText "S C I E N C E S T A T I O N - S C A N",20,550 SetColor Abs(Sin(a*5)*127+128),Abs(Sin(a*5)*100+100),Abs(Sin(a*5)*32+32) DrawText "R E C O R D I N G",50,450 SetColor 78,81,91 DrawText "D A T A S T R E A M",50,480 For Local x:Int = 3 To 1 Step -1 For Local y:Int = 1 To 3 Step 1 h# = Abs(Sin(a+(x-2*y)*50)*100+100) 'h”he der Balken r=h/2+155 g=h*0.8 b=h*0.8 rgb=255*$1000000 + r*$10000 + 0*$100 + 0 filltri(xneu(x,y),yneu(x,y)-h,xneu(x+1,y),yneu(x+1,y)-h,xneu(x,y+1),yneu(x,y+1)-h,r,g,b,r,g,b) filltri(xneu(x+1,y+1),yneu(x+1,y+1)-h,xneu(x+1,y),yneu(x+1,y)-h,xneu(x,y+1),yneu(x,y+1)-h,r,g,b,r,g,b) filltri(xneu(x,y),yneu(x,y),xneu(x,y),yneu(x,y)-h,xneu(x,y+1),yneu(x,y+1),r*0.8,g*0.8,b*0.8,r*0.8,g*0.8,b*0.8) filltri(xneu(x,y+1),yneu(x,y+1)-h,xneu(x,y),yneu(x,y)-h,xneu(x,y+1),yneu(x,y+1),r*0.8,g*0.8,b*0.8,r*0.8,g*0.8,b*0.8) filltri(xneu(x,y+1),yneu(x,y+1),xneu(x,y+1),yneu(x,y+1)-h,xneu(x+1,y+1),yneu(x+1,y+1),r*0.6,g*0.6,b*0.6,r*0.6,g*0.6,b*0.6) filltri(xneu(x,y+1),yneu(x,y+1)-h,xneu(x+1,y+1),yneu(x+1,y+1),xneu(x+1,y+1),yneu(x+1,y+1)-h,r*0.6,g*0.6,b*0.6,r*0.6,g*0.6,b*0.6) SetColor 126,146,141 DrawText Int(h+23),(x-1)*100+50, (y-1)*26+100 DrawText r,(x-1)*100+50, (y-1)*26+180 DrawText g,(x-1)*100+50, (y-1)*26+260 DrawText b,(x-1)*100+50, (y-1)*26+340 DrawText "H",350, 100 DrawText "R",350, 180 DrawText "G",350, 260 DrawText "B",350, 340 Next Next If KeyDown(1) Then End Flip FlushMem() Cls Wend '--- Function xneu(x,y) Return (x*2+y*2)*20+originx End Function '--- Function yneu(x,y) Return (y*2-x*2)/2*20+originy End Function '--- Function filltri(x1,y1,x2,y2,x3,y3,r,g,b,borderr,borderg,borderb) For oft = 0 To 1 If x1 > x2 Then p=x2 x2=x1 x1=p q=y2 y2=y1 y1=q End If If x1 > x3 Then p=x3 x3=x1 x1=p q=y3 y3=y1 y1=q End If If x2 > x3 Then p=x3 x3=x2 x2=p q=y3 y3=y2 y2=q End If Next SetColor r,g,b For Local bx1:Float = x1 To x2 m13# = (Float(y3-y1)/(x3-x1)) n13# = -m13*x1+y1 by1# = m13*bx1+n13 m12# = (Float(y2-y1)/(x2-x1)) n12# = -m12*x1+y1 by2# = m12*bx1+n12 If by2-by1 > 0 DrawRect bx1,by1,1,by2-by1 EndIf If by2-by1 < 0 DrawRect bx1,by2,1,by1-by2 EndIf Next For Local bx2:Float = x2 To x3 m13# = (Float(y3-y1)/(x3-x1)) n13# = -m13*x3+y3 by3# = m13*bx2+n13 m23# = (Float(y3-y2)/(x3-x2)) n23# = -m23*x2+y2 by4# = m23*bx2+n23 If by4-by3 > 0 DrawRect bx2,by3,1,by4-by3 EndIf If by4-by3 < 0 DrawRect bx2,by4,1,by3-by4 EndIf Next SetColor borderr,borderg,borderb DrawLine x1,y1,x2,y2 DrawLine x1,y1,x3,y3 DrawLine x2,y2,x3,y3 End Function Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
OJay |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
bmax ist keine kunst. das nutzt ja 3D ![]() |
||
.Yukito. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wieso ist das keine kunst? atm sieht das stark nach 2d aus (aber bmax nutzt eben kein directdraw, was eben das ganze schneller macht) sieht aufjedenfall nett aus ![]() |
||
AMD 2000+, 512MB DDR, ATI Radeon 9000, 80 GB HDD, DX9.0, C4D 8.0, Adobe Photoshop 7.0 |
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Triton
Ein klasse Effekt hat mich schwer beindruckt dass du sowas einfach mal "nachzucoden". |
||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group