Tile Engine Frage
Übersicht

![]() |
kogBetreff: Tile Engine Frage |
![]() Antworten mit Zitat ![]() |
---|---|---|
Guten Tag wieder einmal ^^
Ich hätte da eine Frage, wie macht man es das man nicht im 32px Schritt läuft sondern im 1px schritt? Hier ist mein code: Code: [AUSKLAPPEN] For player.player=Each player
If player\id=1 Then For item.item=Each item If item\x=player\x And item\y=player\y Then collect(player\id, player\x, player\y, item\item) EndIf Next Exit End If Next For x=0 To 14 For y=0 To 11 map(x,y)=2 Next Next For x=1 To 13 For y=1 To 10 map(x,y)=1 Next Next For x=0 To 14 For y=0 To 11 DrawImage gfx_map,x*32,y*32,map(x,y) Next Next For x=1 To 13 For y=1 To 10 If fire(x,y)>0 Then If fire(x,y)=1 Then DrawImage gfx_map,x*32,y*32,6 ElseIf fire(x,y)=2 Then DrawImage gfx_map,x*32,y*32,7 ElseIf fire(x,y)=3 Then DrawImage gfx_map,x*32,y*32,8 EndIf EndIf Next Next For item.item=Each item DrawImage gfx_item,item\x*32,item\y*32,item\item Next For bomb.bomb=Each bomb Text bomb\x*32,bomb\y*32-25,ms-bomb\bombtime DrawImage gfx_item,bomb\x*32,bomb\y*32,5 If ms-bomb\bombtime>bomb\bombtimer Then For bx=-player\fire To player\fire del_item(player\id,bomb\x+bx,bomb\y) If bomb\x+bx>=0 And bomb\x+bx<=14*32 Then If map(bomb\x+bx,bomb\y)<>4 Then If bx=0 Then fire(bomb\x+bx,bomb\y)=3 Else fire(bomb\x+bx,bomb\y)=2 EndIf EndIf EndIf Next For by=-player\fire To player\fire del_item(player\id,bomb\x,bomb\y+by) If bomb\y+by>=0 And bomb\y+by<=11*32 Then If map(bomb\x,bomb\y+by)<>4 Then If by=0 Then fire(bomb\x,bomb\y+by)=3 Else fire(bomb\x,bomb\y+by)=1 EndIf EndIf EndIf Next Delete bomb EndIf Next For player.player=Each player If player\killed=0 Then DrawImage gfx_playerkopf,player\x*32,player\y*32-10 DrawImage gfx_player,player\x*32,player\y*32 Else DrawImage gfx_vehicle,450,player\y*32 EndIf Next Code: [AUSKLAPPEN] Function move(id, typ=0, send=1)
If e_pause Or con Then Return 0 Local ph=0 For player.player=Each player If player\id=id Then ph=1 Exit EndIf Next If Not ph Then Return 0 Select typ Case 1 If player\killed=0 Then If map(player\x,player\y+1)<>2 And map(player\x,player\y+1)<>4 Then If fire(player\x,player\y+1)=0 And player\killed=0 Then player\y=player\y+player\speed Else kill(player\id) EndIf EndIf Else If player\y<10 Then player\y=player\y+1 EndIf EndIf Case 2 If player\killed=0 Then If map(player\x,player\y-1)<>2 And map(player\x,player\y-1)<>4 Then If fire(player\x,player\y-1)=0 And player\killed=0 Then player\y=player\y-player\speed Else kill(player\id) EndIf EndIf Else If player\y>1 Then player\y=player\y-1 EndIf EndIf Case 3 If map(player\x-1,player\y)<>2 And map(player\x-1,player\y)<>4 Then If fire(player\x-1,player\y)=0 And player\killed=0 Then player\x=player\x-player\speed Else kill(player\id) EndIf EndIf Case 4 If map(player\x+1,player\y)<>2 And map(player\x+1,player\y)<>4 Then If fire(player\x+1,player\y)=0 And player\killed=0 Then player\x=player\x+player\speed Else kill(player\id) EndIf EndIf End Select End Function player\speed ist gleich 1 momentan |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
also du kannst es erstmal mit floats versuchen
in der type-beschreibung hinter x und y und speed ein # machen und player\speed auf 1/32 setzen falls das keine gewünschten ergebnisse liefert wieder hier reinschreiben ![]() |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tut mir leid aber wie meinst du das 1/32 setzen? | ||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
1 geteilt durch 32
wenn du willst kannst du es mit nem taschenrechner ausrechnen und dort das ergebnis eingeben einfacher ist aber Code: [AUSKLAPPEN] 1/32
|
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm tut mir leid aber es geht nicht
ich denke ich muss eine neue Tile engine proggen, kennt jemand eine, die sowas schon Kann? Open Source? |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
was n das für n schwachsinn??
Wenn dann musst DU es selbst programmieren ne andere möglichkeit: du speicherst immer player\x=173 also halt die pixel und nicht tiles bei der kollisionsprüfung rechnest du dann player\x geteilt durch 32... selbiges mit y machen!! |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Kryan: WAS?
@Kog: Kuck Dir dies hier mal an. Es ist nicht perfekt, aber versuch es zu verstehen wie es funktioniert und schreib dann Dein eigenes Scrolling. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich fände es nett wenn Du Deine Wortwahl etwas sorgfältiger triffst, Kryan. Du hast letzterdings den Hang dazu latent aggressiv und beleidigend zu sein.
Nimm Dich bitte ein wenig zurück, ja ? |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sry aber ich kann damit nichts richtiges anfangen, ich werde kein scrolling brauchen | ||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
kog hat Folgendes geschrieben: Sry aber ich kann damit nichts richtiges anfangen, ich werde kein scrolling brauchen
Äh... und wie willst du dann den BildLauf hinbekommen?? (Ausser du arbeitest wie ich mit sprites -> (Mein Projekt), da könnte man theoritisch noch die Camera bewegen, aber selbst ich use Scrolling! |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
naja hast du dann einen vorschlag wie ich den Player da einbauen soll?
Das ist momentan noch mein einziges problem |
||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jop!
Mal ihn einfach immer bei GraphicsWidth()/2-(PlayerImageBreite/2),Graphicsheight()-100 Natürlich als letztes zeichen ![]() |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group