guten tag
Übersicht

BobbleboyBetreff: guten tag |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
frohe wheinachten!
seit einigen tagen bastel ich mit einem freund an einem zombie shooter in 2d. ich habe viel durch euch gelernt und würde mich nun sehr freuen wenn ihr vielleicht eine blick über den bisherigen code wirft, da ich die vermutung habe, das sich einige fehler verstecken, die mir noch nicht bekannt sind. die cpu auslastung ist bei mir (dua core) etwa 60%. ich frage mich nun ob das viel oder wenig ist... die map.bmp ist eine art labyrinth (zum testen schnell mit paint gemalt). bob2.bmp ist etwa 20*20 pixel groß. hier kommt der code: Code: [AUSKLAPPEN] AppTitle = "2d shooter"
;___________Einstellungen grax= 1000 gray= 700 timer = CreateTimer(60) Graphics grax,gray,0,2 SetBuffer BackBuffer() ;___________bilder und sounds laden bild1 = LoadImage ("bob2.bmp") map = LoadImage ("map.bmp") MidHandle map ;___________bild drehen Dim menschturn(72) TFormFilter 0 x#=100 y#=100 For Winkel# = 0 To 72 menschturn(Winkel#)=LoadImage("bob2.bmp") MidHandle menschturn(Winkel#) RotateImage menschturn(Winkel#),Winkel#*5 MaskImage menschturn(Winkel#),0,0,0 DrawImage menschturn(winkel#) , 100 , 100 ;Delay 100 Flip Print"loading images" Next ;Dim zombieturn(36) ;TFormFilter 0 ;x#=100 ;y#=100 ;For Winkel# = 0 To 36 ; zombieturn(Winkel#)=LoadImage("zombiebob.bmp") ; MidHandle zombieturn(Winkel#) ; RotateImage zombieturn(Winkel#),Winkel#*10 ; MaskImage zombieturn(Winkel#),255,0,255 ; DrawImage zombieturn(winkel#) , 100 , 100 ;Delay 100 ;___________beim hauptmenu anfangen Gosub singleplayer Gosub hauptmenu ;___________Hauptmenu .hauptmenu While Not KeyDown(1) ClsColor 100,230,200 Color 1,1,1 Cls Locate 0.5*grax , 0.3*gray Print "-H A U P T M E N Ü-" Print"-drücke Enter um den singleplayer zu starten" Print "-drücke ESC um zu beenden-" Flip If KeyHit(28) Gosub singleplayer End If Delay 10 Wend End ;___________singleplayer .singleplayer a.player=New player a\x = 0 a\y = 110 a\xalt = a\x a\yalt = a\y a\bild = bild1 While Not KeyDown(1) Gosub kollision mapx = grax - a\x mapy = gray - a\y ClsColor 1,10,100 Cls DrawImage map, mapx, mapy Gosub shoot Gosub movement Gosub sicht Gosub gegner Color 230,100,50 Print "drücke p um zum hauptmenü zu gelangen" Flip WaitTimer timer Wend Gosub hauptmenu ;___________Klassen Type player Field name$ Field x Field y Field xalt Field yalt Field bild Field s# End Type Type shell Field x Field y Field dam Field Coulor End Type Type gegner Field x Field y Field bild Field s# End Type ;___________Movement .movement a\xalt =xa a\yalt =ya xa = a\x ya = a\y a\s = 2 If KeyDown(200) Or KeyDown(17) If KeyDown(203) Or KeyDown(30) a\s=a\s/Sqr(2) Print a\s End If If KeyDown(208) Or KeyDown(31) If KeyDown(205) Or KeyDown(32) a\s=a\s/Sqr(2) Print a\s End If If KeyDown(200) Or KeyDown(17) If KeyDown(205) Or KeyDown(32) a\s=a\s/Sqr(2) Print a\s End If If KeyDown(208) Or KeyDown(31) If KeyDown(203) Or KeyDown(30) a\s=a\s/Sqr(2) Print a\s End If If KeyDown(200) Or KeyDown(17);nach oben a\y=a\y-a\s End If If KeyDown(208) Or KeyDown(31);nach unten a\y=a\y+a\s End If If KeyDown(203) Or KeyDown(30);nach links a\x=a\x-a\s End If If KeyDown(205) Or KeyDown(32);nach rechts a\x=a\x+a\s End If Return ;___________sicht .sicht Winkel1 = ATan2(MouseY() - gray/2, MouseX() - grax/2) w#=winkel1/5 If w <0 w=72+w End If Locate 1,1 Print w DrawImage menschturn(w) ,grax/2,gray/2 rb = 20 rh = 20 rx = grax/2-rb/2 ry = gray/2-rh/2 Rect rx,ry,rb,rh,0 Return ;___________shoot .shoot If MouseHit(1) Line grax/2 , gray/2 ,MouseX(),MouseY() End If ;___________gegner .gegner Return ;___________Kollision .kollision If ImageRectCollide(map, mapx, mapy, Rect, rx,ry,rb,rh) a\x = a\xalt a\y = a\yalt End If Return |
||
mDave |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Flip 0
Sonst bringt der Timer nichts. Hallo. Ansonsten noch einrücken, der Übersicht halber. Eventuell noch die Variablen umbenennen, damit man von dem Namen schon auf deren Funktion schließen kann. Und warum zur Hölle ist deine Auflösung 1000*700? Mach da bitte 1024*768 raus ![]() |
||
- Zuletzt bearbeitet von mDave am Fr, Dez 25, 2009 14:52, insgesamt 2-mal bearbeitet
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und Code-Tags statt Zitat nehmen. | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
Bobbleboy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das mit dem einrücken hat nicht so recht funktioniert, aber im code selbst ist es eingerückt.
das mit flip 0 teste ich mal edit: OMG ogasm face -> ![]() von 60% auf 8 % .... flip 0 rockt |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Bobbleboy,
1. Das ist eine viel zu hohe Auslastung für ein so simples Programm. 2. Sie kommt daher, dass du nach Flip ![]() 3. Rücke mit Tabulatoren ein, damit man einen besseren Überblick hat. 4. Gosub ![]() ![]() 5. Da du Gosub ![]() ![]() ![]() 6. Schaue die bei Gelegenheit Funktionen an. (Function ![]() 7. Nutze einen der 2 Codetags anstatt der Zitatbox. ("Code"/"BB"-Button) Sonst fällt mir erst einmal nichts weiteres auf. mfG mpmxyz P.S.: Noch viel Spaß mit BlitzBasic! Edit: Ich bin heute mal wieder lahm... |
||
Bobbleboy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mpmxyz hat Folgendes geschrieben: Hallo Bobbleboy,
1. Das ist eine viel zu hohe Auslastung für ein so simples Programm. 2. Sie kommt daher, dass du nach Flip ![]() 3. Rücke mit Tabulatoren ein, damit man einen besseren Überblick hat. 4. Gosub ![]() ![]() 5. Da du Gosub ![]() ![]() ![]() 6. Schaue die bei Gelegenheit Funktionen an. (Function ![]() 7. Nutze einen der 2 Codetags anstatt der Zitatbox. ("Code"/"BB"-Button) Sonst fällt mir erst einmal nichts weiteres auf. mfG mpmxyz P.S.: Noch viel Spaß mit BlitzBasic! Edit: Ich bin heute mal wieder lahm... goto habe ich gar nicht benutzt das mit dem einrücen ist beim kopieren ins forum passiert, der code an sich ist eingerückt flip 0 habe ich ja schon getestet und bn überwältigt, auch wenn man das fehlende v-sync sieht... |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zum Goto: Ich habe auch nichts anderes behauptet. Teilweise nutzt du auch Return.
Aber beim Menü und beim Hauptteil des Spieles sehe ich keines. Stattdessen gehst du mit einem Gosub zurück. In dem Fall macht das Gosub nichts anderes als Goto. Zu den anderen Sachen: Ich war etwas langsam gewesen... Übrigens, du musst nicht den ganzen vorherigen Beitrag zitieren: das durchschnittliche BBP-Mitglied sollte sich nämlich an den Inhalt des vorherigen Beitrags erinnern können. ![]() mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
das man das fehlende VSync sieht ist klar. Da muss du mit CreateTimer ![]() Beispiel Code: BlitzBasic: [AUSKLAPPEN] Graphics 1024,786,32,2 Mfg, count-doku |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Er hat einen Timer. | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Nicdel,
woher weißt du das? Er sagt, dass das fehlende VSync auffällt also wird es flimmern ![]() Oder hab ich was übersehen? EDIT: Tut mir leid, habs überlesen. ![]() |
||
- Zuletzt bearbeitet von count-doku am Fr, Dez 25, 2009 15:51, insgesamt einmal bearbeitet
Bobbleboy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
5te zeile im code | ||
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
warum hast du ein delay im menü? Afaik macht der das programm unnötig langsam etc. ↲
Ansonsten: guck dir funktionen an und verzichte auf goto bzw. Gosub.↲↲ Lg m0rgenstern. |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und gleich die erste Zeile ist falsch. Zur korrekten Anwendung siehe: AppTitle![]() |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
ein no-go ist auch Delay.
Warum benutzt du denn Delay beim Vorberechnen der Bilder ? ![]() Wenn du Delay wegmachst, wird dein Spiel viel schneller geladen. Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
Bobbleboy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
M0rgenstern hat Folgendes geschrieben: warum hast du ein delay im menü? Afaik macht der das programm unnötig langsam etc. ↲
Ansonsten: guck dir funktionen an und verzichte auf goto bzw. Gosub.↲↲ Lg m0rgenstern. wieso eigentlich? schließlich wird das programm dadurch ja nicht allzu übersichtlicher. ändern wurde es ja nicht allzu viel, abgesehen von jeweils 2wörtern pro sub... die delays habe ich mitlerweile vernichtet und stat dessen timer eingebaut. das hauptmenu abe ich nur überbrückt, um schnell ein paar tests durchzuführen. und ja das hauptmenü soll noch verbesert werden, ein freund wollte die grafiken übernehmen und desshalb habe ich erstmal nichts daran gemacht. was ich jetzt noch gerne wissen würde, wäre ob es möglich ist mit relativ wenig codearbeit das spiel multiplayerfähig zu machen? wäre es realistisch sowas in den wheinachts ferien hinzubekommen? |
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
kommt drauf an . was es für ein Spiel ist und wie viel Zeit du da rein investieren willst.
Außerdem kommt es stark drauf an, ob du dynamisch programmiert hast oder bspw. immer Statische Arrays benutzt hast. Die Netzwerkbefehle sind alle nicht schwer zu verstehen ![]() Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
Bobbleboy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
gibt es weitere tutorials abgesehen von "robs bb kurs?" zum thema tcp? | ||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich wüsste von keinem Tutorial.
Eigentlich ist das nichts weiter als OpenTcpStream ![]() WriteByte ![]() WriteString ![]() etc. auslesen kannst du das dann mit ReadByte ![]() ReadString ![]() etc schau am besten noch in der Hilfe nach. |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Damit kommt man schon sehr weit:
http://blitzbasic.com/codearcs...?code=2263 http://blitzbasic.com/codearcs...?code=2261 MFG |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group