Hab ein logisches Problem[erledigt]
Übersicht

![]() |
LordArtusBetreff: Hab ein logisches Problem[erledigt] |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
wie schon einige mitbekommen haben , bin ich am DEFENDER dran. Alles klappt eigentlich nicht schlecht , bloss habe ein Problem mit dem Grenzübergang der Map. Ich weiss es nicht , ob ich schon müde bin oder ich bin einfach zu blöd für sowas. Ich versuche es so gut wie möglich zu erklären: Bsp. GX=1280 ' horizontale Auflösung GY=1024 ' vertikale Auflösung MapGrösse 10000,GY so , auf der ganzen Map bewegen sich Objekte , sobald die Objekte den horizontalen Anfang der Map erreichen (MapXpos=0) , erscheinen die automatisch am Ende der Map (MapXpos=10000) und genauso umgekehrt je nachdem in welche Richtung die fliegen (sozusagen 10000=0 und umgekehrt) , mit meinem Raumschiff kann ich genau das gleiche machen. Das Problem ist , wenn ich mit dem Raumschiff in die Nähe der Grenze(unsichtbar) komme , sehe wie andere Objekte in der Grenze verschwinden (die sind natürlich da , bloss habe das Prob mit der Anzeige der Grenze). Hoffe kann mir jemand helfen , ein Bsp.Code wäre super. MfG LordArtus p.s. Wenns jemand nicht verstehten sollte , kann ich es noch viel genauer erklären. Edit: Habs gelöst ![]() Alles horizontal: mapx=Position der Anzeige (innerhalb der Map) x=Position von Objekt MAPXSIZE=selbsterklärend GX=horizontale Auflösung Code: [AUSKLAPPEN] Method Draw(mapx:Int) SetColor 255,255,255 If x<GX And mapx>MAPXSIZE-GX DrawOval x+MAPXSIZE-mapx,y,10,10 Else DrawOval x-mapx,y,10,10 EndIf EndMethod |
||
- Zuletzt bearbeitet von LordArtus am Do, Sep 13, 2007 14:04, insgesamt einmal bearbeitet
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die IF-Abfragen kannst du eigentlich weglassen, da Blitz schon intern überprüft, ob du ausserhallb des Bildschirm zeichnest. Also ist es ohne IF sogar schneller:
Code: [AUSKLAPPEN] Function Draw(x,y) DrawOval x,y,10,10 DrawOval x+mapx,y,10,10 DrawOval x-mapx,y,10,10 end function Das ist wohl die einfachste methode ^^ gruß, Smily0412 |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
LordArtus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
hmmm , sowas ist mir ganz neu ![]() MfG LordArtus Edit : Habs getestet und dein Code funktioniert nicht (zumindest bei mir), mein Code sieht jetzt so aus , ist etwas schneller wie mein erster , vorallem bei vielen Objekten macht sich der Geschwindigkeitsvorteil bemerkbar. Code: [AUSKLAPPEN] Method Draw(mapx:Int) ' ToDo Überprüfen , kleiner Sprung beim Grenzübergang SetColor 255,255,255 If Abs(x-mapx)<GX Or Abs(x-mapx)>MAPXSIZE-GX If x<GX And mapx>MAPXSIZE-GX DrawOval x+MAPXSIZE-mapx,y,10,10 Else DrawOval x-mapx,y,10,10 EndIf EndIf EndMethod Bei meinem Spiel bin noch immer bei über 5000FPS , bei ziemlich vielen Objekten , und das Konstrukt ist schon fast fertig ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group