figur auf bitmap bewegen
Übersicht

![]() |
ProggerOrkBetreff: figur auf bitmap bewegen |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich versuche gerade eine Figur auf einer Bitmap zu bewegen sprich Hab eine Bitmap wo ein Berg druff is und darauf möchte ich das die Figur sich bewegt. Soweit so gut..
Bisher hab ich es so: Code: if imagescollide.....
else y = y + 1 end if Die Figur fällt immer ein bisschen runter.. Aber sie soll den Berg auch wieder hoch steigen können.. ok .. dann hab ich mal so probiert: Code: if imagescollide.....
y = y - 1 else y = y + 1 end if Aber jetzt zuckt die Figur immer.. Hat da vlt irgeneiner eine gescheite Lösung für? |
||
![]() |
ProggerOrk |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok formulieren wir das ganze ma bissl besser.. Ich habe jetzt Beispiel so eine Landschaft, wie bei Worms.. Aber wie mache ich das der "Wurm" nur eine bestimmte Steigung steigen kann und wie ich ihn überhaupt wieder steige lasse.. Hoffentlich versteht das wer-.-
bYe |
||
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
rechne die aktuelle höhe des Berges zur Y Koordiante deines Players dazu | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schonmal an ImageRectCollide gedacht, wegen dem "einsinken"? Also den Berg als Image und ein kleines Rechteck gleich unterhalb der Spielfigur. Und dann so in etwa:Code: If Not ImageRectCollide(...)
Nicht gerade das schnellste, aber das einzige was mir gerade dazu einfällt. So sollte er den Berg hoch und runterkraxeln ohne zu zittern fallen EndIf If ImageRectCollide(...) steigen EndIf ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
ProggerOrk |
![]() Antworten mit Zitat ![]() |
---|---|---|
ah ok habs hinbekommen^^ aber wie macht man es das er bestimmte steigungen net hoch gehen kann? hmm dann muesste ich an jeder seite noch ma ne kollisionsfrage machen aber das wäre auch schlecht..hmm.. | ||
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast ja bestimmt,wenn der spieler steigt,eine x und y geschwindigkeit.
wenn dann halt die y geschwindigkeit über sin(deine gradzahl ab wann der spieler nicht mehr die steigung hoch kann) dann ist fallen = true |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
azureuz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
irgendwie bekomme ich das nciht hin. hier mal mein teil vom code:
Code: Graphics 500,200,24,2
SetBuffer BackBuffer() AppTitle "Sandstorm by azureuz" ;Variabeln werden geladen... Global map=LoadImage("map1.jpg") Global panzer=LoadAnimImage("panzer2.bmp",30,17,0,3) MaskImage panzer,255,0,255 fntverdana=LoadFont("Verdana",12,False,False,False) Global x=130 Global y=130 Global map_schwarz=LoadImage("map_schwarz.bmp") MaskImage map_schwarz,255,255,255 ....hierr ist auch noch code.... ;Bilder setzen DrawImage map,10,10 DrawImage panzer,x,y,frmpanzer DrawImage map_schwarz,10,114 If ImageRectCollide(panzer,x,y,0,150,150) y+1 End If das mit dem "if image..." ist so oder so falsch...nur ich hab echt ka wie das gehen soll. |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Diese Zeile wird der Compiller so nicht fressen:Code: If ImageRectCollide(panzer,x,y,0,150,150) Schau Dir den Befehl (besonders die erforderlichen Parameter) in der Onlinehilfe nochmal genauer an ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
azureuz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jo, aber genau der befehl ist in der onlinehilfe so kompli. | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: If ImageRectCollide(panzer,x,y,0,x,y+ImageHeight(panzer),ImageWidth(panzer),1) Das ImageWidth(panzer) bzw. ImageHeight(panzer) ersetzt Du noch durch die Größe des Bildes und schon ist er gar nicht mehr so kompliziert ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
azureuz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
aber wie geht das dann weiter? es ist ja ne if-anfrage,oder? | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sei mir nicht böse, aber Dir fehlt ganz einfach Erfahrung. Wenn Du noch mit solchen Problemen zu kämpfen hast, dann ist Sandstorm einfach eine Nummer zu groß für Dich. Sammle Erfahrung mit kleinen Projekten, denen Du auch gewachsen bist und das ganze stellt bald schon kein Hinderniss mehr dar ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
azureuz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das einzigste hindernis ist für mich die collision...das wars. wenn ich ein anderes projekt mache, wo ich auch die collision brauche, dann häng ich wieder hier. :/
und von alleine krieg ich bestimmt nicht heraus wie die collision funzt. der panzer soll ja einfach weiterfahren und halt nur hoch und runter gehen. btw....ja, natürlich fehlt mir erfahrung und ich bin dir ja auch nicht böse. ich brauch halt nur ein beispiel oder so.. |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: y=y+1
If ImageRectCollide(panzer,x,y,0,x,y+ImageHeight(panzer),ImageWidth(panzer),1) y=y-1 endif |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: If ImageRectCollide(panzer,x,y,0,x,y+ImageHeight(panzer),ImageWidth(panzer),1)
...wenn Panzer und jetzige Position kollidieren ... ... dann tue was im Falle einer Kollision passieren soll. Niemand ausser Dir kann wissen wie die genauen Folgen der Kolli aussehen sollen. Wenn es ja ums "Einsinken" ins Gelände geht, wäre die adäquate reaktion die y-Koord zu vermindern. |
||
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 |
azureuz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hm. stell dir vor hubsi, das hab ich sogar geschrieben! ![]() aber ich hatte da nicht das 'y=y-1' -.- nungut, mein code sieht nun so aus: Code: y=y+1
If ImageRectCollide(panzer,x,y,0,x,y+57(map_schwarz),184(map_schwarz),1) y=y-1 EndIf jetzt kommt folgender fehler: "Expecting ')'" Es sind doch alle ")" gesetzt? Ich hab doch nur die Imageheight und imageweight mit meinen Werten geändert?! |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: y=y+1
Mist! Hab vorhin nicht richtig aufgepasst If ImageRectCollide(map,0,0,0,x,y+57,184,1) y=y-1 EndIf ![]() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
azureuz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sau ![]() naja, macht ja nichts...du hilfst mir ja ![]() das heißt jetzt, das 'map' die map ist? wodrauf sich der panzer bewegen soll,richtig? nochmal zu7m mitschreiben. ich will das mein panzer auf der map(ist atm ja nur ne grafik) fährt. mein panzer ist 17px hoch und 30px breit. meine map ist 480px breit und 57px hoch. |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: y=y+1
map ist das Handle des Mapbildes
If ImageRectCollide(map,mapx,mapy,0,panzerx,panzery+17,30,1) y=y-1 EndIf mapx bzw. mapy sind die Koords wo Du sie hinzeichnest 0 der Frame der Map (wird wohl nur einer sein) panzerx bzw. panzery die Koords des Panzers So sollte es dann schon funzen, denke ich ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
azureuz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
so, funzt!
habs mal mit einem text probiert der dann aufzeigen soll! nun aber noch ein prob. ^^ wenn ich ein bild, bei einer bestimmten farbe transparent mache, sieht er das doch nicht mit als collide,oder? trotzdem..danke! |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group