2D RPG Engine Kollisionsabfrage
Übersicht

DDPhoenixBetreff: 2D RPG Engine Kollisionsabfrage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
Ich bin erst neu in Blitzbasic und hab mir jetz mal das kostenlose BlitzBasic2d runtergeladen und ein wenig gebastelt ^^ Also nun hab ich ein Problem da ich ein RPG machen will hab ich mal ne vorversion(mit testgrafiken) von ner kleinen 2D RPG Engine gebaut gut nun klappt die kollisionsabfrage nicht so ganz also sie klappt zwar aber wenn man sich vorstellt über einem is ein blockendes teil und sobald das bild vom char nur 1 pixel links übers tile hinaus ist blockt es nichtmehr. Ich denke es liegt daran das ich 32*32 Pixel tiles genommen hab und die Player x und y Position in pixel angegeben ist weil man sich flüssig bewegen kann also hab ich die player x und player y Position für die kollissionsabfrage durhc 32 geteilt. Daran wird es liegen aber ich hab keine Idee wie man es anders machen könnte Hier der Code:Code: [AUSKLAPPEN] Graphics 640,480,16,1 SetBuffer BackBuffer() Global blocktiles$ blocktiles="3" Dim map(20,20) Const oben =200 Const unten =208 Const links =203 Const rechts =205 tiles=LoadAnimImage("tileset.bmp",32,32,0,5) mapfile=ReadFile("new1.nw") char=LoadImage("char.bmp") Global player_xpos Global player_ypos For y=0 To 20 For x=0 To 20 map(x,y)=ReadLine(mapfile) Next Next CloseFile mapfile Repeat Cls If KeyDown(oben) moveup() End If If KeyDown(unten) movedown() End If If KeyDown(links) moveleft() End If If KeyDown(rechts) moveright() End If For y=0 To 20 For x=0 To 20 DrawImage(tiles,x*32,y*32,map(x,y)) Next Next DrawImage(char,player_xpos,player_ypos) Flip Until KeyDown(1) FreeImage tiles FreeImage char End Function moveup() If player_ypos>0 Then If Instr(blocktiles$,map(player_xpos/32,player_ypos/32),1)<1 Then player_ypos=player_ypos-2 End If End If End Function Function movedown() If player_ypos<(32*20) Then player_ypos=player_ypos+2 End If End Function Function moveleft() If player_xpos>0 Then player_xpos=player_xpos-2 End If End Function Function moveright() If player_xpos<(32*20) Then player_xpos=player_xpos+2 End If End Function Ahya und nochwas da ich noch Anfaänger bin und ich was in meinem Code wirklich ziemlich umständlich gemacht hab und das einfacher und übersichtlicher und vielleicht besser geht sagt mirs bitte ![]() So nun noch die Grafiken: Tileset:http://de.geocities.com/tobibygraal/tileset.bmp Char:http://de.geocities.com/tobibygraal/char.bmp |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das hat jetzt zwar nichts mit dem Code zu tun, aber wo hast du denn BlitzBasic2D kostenlos her??? Oder ist es nur die Demo??? | ||
DDPhoenix |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich meintedie Demo weil die ya eigentlich fast keine einschränkungen hat | ||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
Doch: Man kann keine EXE kompilieren!!
Außerdem kann ich mir die Graphiken nicht ansehen!! Da steht immer, nichts gefunden!!! |
||
![]() |
Hip Teen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jetzt geht es, vorher hatte geocities anscheinend ein Problem | ||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir kommt folgendes:
Code: [AUSKLAPPEN] Yahoo! -------------------------------------------------------------------------------- Diese Seite ist nicht verfügbar. Leider kann diese Seite momentan nicht angezeigt werden. Versuchen Sie es bitte später noch einmal oder suchen Sie nach weiteren GeoCities-Seiten, die Sie interessieren. Einige hilfreiche Links..... Yahoo! GeoCities - unser Homepage-Veröffentlichungscenter Yahoo! - der Ausgangspunkt für ganz Yahoo! Yahoo! GeoCities durchsuchen -------------------------------------------------------------------------------- Copyright © 2000 Yahoo! Inc. Alle Rechte vorbehalten. |
||
![]() |
ViciouS |
![]() Antworten mit Zitat ![]() |
---|---|---|
rechte mousetaste speichern unter | ||
Skaten ist scheisse...
Bilanz: 3 Knochenbrüche in 4 Jahren... und es werden mehr ![]() |
![]() |
ViciouS |
![]() Antworten mit Zitat ![]() |
---|---|---|
aso
kriegen wir noch die map datei?? das macht gleub ich keiner gerne selbst.. von hand |
||
Skaten ist scheisse...
Bilanz: 3 Knochenbrüche in 4 Jahren... und es werden mehr ![]() |
DDPhoenix |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ehm ya die Map Datei ^^ alsoo mal gucken*such* Ach daaa ![]() ich hab ne .txt draus gemacht weil man bei geocities da sonst nich uppen kann hier der link: http://de.geocities.com/tobibygraal/new1.txt und ya es leigt daran das die position des spielers durch 32 geteilt wird und so das nur bei der kollision das feld links neben dem blockendem feld abgefragt wird :-/ wie könnt man das anders machen achya ich hab kollision nur gemacht wenn man von unten gegen das blaue feld läuft |
||
DDPhoenix |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So habs schon selbst gelöst einfach alle blocktiles in nem array gespeichert und abgefragt ob die viecher mitn char collidieren | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group