Jump'n'run
Übersicht

schalliBetreff: Jump'n'run |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich weiß, diese Frage wurde schon oft gestellt, aber bei mir funktionieren alle Lösungen nicht.
Code: [AUSKLAPPEN] mx = MouseX()
my = MouseY() SetFont f4 Text 40,yplus-30, "ESC: Beenden, F1: Zurück zum Hauptmenü" Viewport xplus,yplus,24*tsize,18*tsize For xxx = start_1 To start_1+23 For yyy = 0 To 17 DrawBlock tiles(map(xxx,yyy)),xxx*tsize+xplus-(start_1*tsize),yyy*tsize+yplus ; Kollision :-( Next Next For xxx = start_1 To start_1+23 For yyy = 0 To 17 For Objekt.TObjekt = Each TObjekt If Objekt\x = xxx And Objekt\y = yyy Then DrawImage obje(Objekt\id),xxx*tsize+xplus-(start_1*tsize),yyy*tsize+yplus Next Next Next If links=0 And KeyDown(203) Then fx = fx - 5 If rechts=0 And KeyDown(205) Then fx = fx + 5 If oben=0 And unten>0 And KeyHit(57) Then Jump = 1 If jump=1 Then speed_y# = speed_y# - 0.8 : jump = 0 EndIf If unten=0 Then speed_y# = speed_y# + 0.3 Else speed_y# = 0 DrawImage figur,fx,fy Viewport 0,0,800,600 fx = fx + speed_x# fy = fy + speed_y# If KeyDown(59) Then mode=0 Ich will die Werte oben,unten,rechts,links mit dem Wert des entsprechenden Tiles füllen. Das funktionierte aber bei den Lösungen, die ich bisher ausprobiert hab, nicht so richtig. |
||
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Viewport???!!!
Is das nich 3D?????!!! ![]() lg |
||
WIP: Vorx.Engine |
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Viewport![]() Nein ist es nicht!!11!!!111einz @topic werde nicht ganz schlau aus deiner Erläuterung |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
schalli |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also, ich hab eine Figur und will von der die Kollision prüfen.
Jetzt will ich ich wissen welche "TileID" die Tiles oben, unten, usw. haben. Wenn diese ID nicht 0 ist, dann ist das Tile fest. Meine Frage: Wie kann ich erst mal die Position auf der Map von dem benachbarten Tiles herausfinden? Die TileID ist dann ja einfach: map(xxx,yyy). Oder: Ist eine andere Methode besser? (Das glaube ich nämlich.) Und: Wie mache die Kollisionen bei den Objekten? Anmerkung: Das ist der Teil in dem Code von meinem ersten Beitrag für die Kollision: Code: [AUSKLAPPEN] For xxx = start_1 To start_1+23
For yyy = 0 To 17 DrawBlock tiles(map(xxx,yyy)),xxx*tsize+xplus-(start_1*tsize),yyy*tsize+yplus ; Kollision :-( Next Next Hier der Teil mit den Objekten: Code: [AUSKLAPPEN] For xxx = start_1 To start_1+23
For yyy = 0 To 17 For Objekt.TObjekt = Each TObjekt If Objekt\x = xxx And Objekt\y = yyy Then DrawImage obje(Objekt\id),xxx*tsize+xplus-(start_1*tsize),yyy*tsize+yplus Next Next Next |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Benachbarte Tiles:
Code: [AUSKLAPPEN] Rechts = map(xxx + 1, yyy)
Unten = map(xxx, yyy + 1) Objekt auf Tileposition X, Y: Code: [AUSKLAPPEN] For Objekt.TObjekt = Each TObjekt
If Objekt\x = X And Objekt\y = Y Then Exit Next ;* Objekt enthält nun das Objekt an der Position oder NULL |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
schalli |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab mich richtig mies ausgedrückt.
Ich habe eine Figur (Image figur) mit position fx,fy und größe 40x60. Es wurde mit MaskImage bearbeitet. (-> ImagesCollide?) Von dieser Figur will ich die Kollision zu A. Tiles B. Objekten prüfen und ich hab keine Ahnung wie das geht. Ich hab mein Problem aber echt schlecht beschrieben. ![]() ich hoffe, jetzt bin ich verständlich. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Imagescollide![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
schalli |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, ich hab mir jetzt was nettes gemacht (so wie Xeres gesagt hat)
Code: [AUSKLAPPEN] If map(xxx,yyy)>0 Then
tx = xxx*tsize+xplus-(start_1*tsize) : ty = yyy*tsize+yplus If fx+30=tx Then If fy>ty-60 And fy<ty+20 Then rechts = 1 EndIf EndIf If fx-20=tx Then If fy>ty-60 And fy<ty+20 Then links = 1 EndIf EndIf If fy+60=ty Then If fx>tx-30 And fx<tx+20 Then unten=1 EndIf EndIf If fy=ty+20 Then If fx>tx-30 And fx<tx+20 Then oben=1 EndIf EndIf EndIf |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group