Too much!!
Übersicht

![]() |
IguanBetreff: Too much!! |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo!
Ich stehe wieder mal vor einem riesen Problem! ich bin ja dabei, einen Horizontal Shooter zu proggen; die kollision Schüsse/Gegner kontrolliere ich etwa so: Code: [AUSKLAPPEN] Durchlauf = 0 For Gegner = Each GegnerWerte Gosub GegnerZeichnen If ImagesCollide(Gegner\Bild, Gegner\X#, Gegner\Y#, Gegner\Anim, Rship, RshipX, RshipY, 0) Then Gosub RshipTod Durchlauf = Durchlauf + 1 For Schuss = Each SchussWerte If Durchlauf = 1 Then Gosub SchuesseZeichnen If ImagesCollide(Gegner\Bild, Gegner\X#, Gegner\Y#, Gegner\Anim, Schuss\Bild, Schuss\X#, Schuss\Y#, Schuss\Anim) Then Gosub GegnerGetroffen next next ;Wenn keine Gegner vorhanden waren (Durchlauf = 0), dennoch Schüsse bewegen und zeichnen If Durchlauf = 0 Then For Schuss = Each SchussWerte Gosub SchuesseZeichnen Next End If nun soweit so gut... das funktioniert alles... jetzt habe ich aber einen Editor programmiert, mit dem man die vorbeiscrollende Landschaft editieren kann. Dabei werden die daten in ein Type gespeichert (X, Y, BildNr). In diesem Editor gibt es kein Raster- man kann die bilder frei platzieren. Beim Abspeichern werden Die Bilder im Type der X-Koordinate nach sortiert und in ein TXT file geschrieben. (Sortieren desshalb, damit ich nachher nicht immer das ganze Type abackern muss, um nur einen Bildschirm zu zeichnen) Im Space Shooter selbst, wird dann während dem scrollen, laufend vom TXT file gelesen (Nur aktueller Bildschirm), und die benötigten Bilder mit ihren Koordinaten wieder in ein Type geschieben. Wenn ich nun jeden Schuss, der auf dem Bildschirm zu sehen ist, zuerst mit allen Gegnern nach Kollisionen abfragen muss, und anschliessend jeden Schuss, mit jedem Bildchen der Scroll-Map-Bildausschnittes, dann wird das ein bisschen viel. Das Game wird dann enorm langsam! wie mach ich das jetzt am besten? Währe es vielleicht besser, gar kein Editor zu benutzen, und stattdessen einfach grosse Bilder zu laden? Oder wie könnte man dieses problem am besten lösen, damit so mindestens 70 Schüsse und 50 Gegner auf dem Bildschirm möglich währen? Dabei sollte noch eine grosse Map vorbei scrollen (für die man so ca. 3 Min braucht, um sie zu durchqueren, bei der Geschw. 1 Pixel pro Durchlauf). Die Schüsse sollten dann noch gelöscht werden, wenn sie mit der Map kollidieren. bin echt verzweifelt.. ![]() danke für eure Hilfe! Iguan |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich glaub ich würd erstmal alle werte der text datei irgendwo speichern...z.b:
Code: [AUSKLAPPEN] lesen=readline("lesen.tcxt") repeat counter=counter+1 until EoF(lesen) dim array(counter) for i=0 to counter array(i)=readline(lesen) next nun musst du im hauptcode nur noch den abschnitt aus dem array laden, welcher grad benötigt wird! |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Und beim Austesten der Kollisionen empfehle ich Dir:
- dann ImagesCollide |
||
![]() |
Iguan |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ AVA: Hi, habe mal kurz den BattleBlock angeschaut! Gefällt mir!!
![]() Wie hast du das mit dem verzerrendem Titelbild gemacht? SCALEIMAGE ist ja enorm langsam! Hast du da mit BlitzBasic 3D (kenne BB3D nicht) gearbeitet, und irgendwie ein 3d Sprite genommen? kann man mit BB3D schneller und besser Bilder drehen, skalieren und zeichnen? und vielleicht auch noch transparent(schnell) darstellen? Wenn ja, könnte ich ja meine Scroll-Map so machen..!? Gibt es in BB3D sonst noch brauchbare Grafikbefehle für einen netten 2D horizontal shooter ![]() Grüsse Iguan |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Bei Battleblocks war ich nur für's Grafikdesign verantwortlich, der Code ist von c64. Geschrieben ist es in Bmax, aber mit etwas Aufwand kannst Du solche Effekte auch in B3D umsetzen. Die müsstest Du Dir dort dann allerdings erstmal selbst programmieren oder Dir irgendwo die passenden Funktionen für zusammen suchen. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group