normale stehenbleib kollision
Übersicht

![]() |
mas93Betreff: normale stehenbleib kollision |
![]() Antworten mit Zitat ![]() |
---|---|---|
Graphics 229, 178, 32
Global x_back = 0 Global y_back = 0 Global players_x = 100 Global players_y = 200 SetBuffer BackBuffer() ;Laden/Masken players = LoadImage("7/player1.PNG") MaskImage players,0,0,255 stuhl1 = LoadImage("7/stuhl.PNG") MaskImage stuhl1, 0, 0, 255 stuhl2 = LoadImage("7/stuhl2.PNG") MaskImage stuhl2, 0, 0, 255 schulbuch = LoadImage("7/buch offen.PNG") MaskImage schulbuch, 0, 0, 255 marsboden = LoadImage("7/marsboden.PNG") MaskImage marsboden, 0, 0, 255 tisch = LoadImage("7/tisch.PNG") MaskImage tisch, 0, 0, 255 tischgross = LoadImage("7/tisch gross.PNG") MaskImage tischgross, 0, 0, 255 metallboden = LoadImage ("7/metallboden.PNG") laptop = LoadImage ("7/laptop.PNG") MaskImage laptop,0,0,255 fussmatte = LoadImage ("7/fussmatte.PNG") pult = LoadImage ("7/pult.PNG") MaskImage pult,0,0,255 schuleinnen = LoadImage ("7/schuleinnen.PNG") MaskImage schuleinnen,0,0,255 x=109 y=155 Repeat If KeyDown(200) Then y=y-1 ;Oben If KeyDown(208) Then y=y+1 ;Unten If KeyDown(203) Then x=x-1 ;Links If KeyDown(205) Then x=x+1 ;Rechts ;Anzeigen TileBlock metallboden DrawImage schuleinnen,0,0 DrawImage fussmatte,92,160 DrawImage pult,90,33 DrawImage tisch,30,65 DrawImage tisch,61,65 DrawImage tisch,92,65 DrawImage tisch,123,65 DrawImage tisch,154,65 DrawImage tisch,185,65 DrawImage tisch,30,91 DrawImage tisch,61,91 DrawImage tisch,92,91 DrawImage tisch,123,91 DrawImage tisch,154,91 DrawImage tisch,185,91 DrawImage tisch,30,117 DrawImage tisch,61,117 DrawImage tisch,92,117 DrawImage tisch,123,117 DrawImage tisch,154,117 DrawImage tisch,185,117 If x < 0 Then x = 0 If y < 0 Then y = 0 If x > GraphicsWidth()-ImageWidth(players) Then x = GraphicsWidth()-ImageWidth(players) If y > GraphicsHeight()-ImageHeight(players) Then y = GraphicsHeight()-ImageHeight(players) DrawImage players,x,y If ImagesCollide(players,x,y,0,pult,90,33,0) Then kollision() Flip Cls Until KeyHit(1) End Function kollision() ;Laden/Masken players = LoadImage("7/player1.PNG") MaskImage players,0,0,255 stuhl1 = LoadImage("7/stuhl.PNG") MaskImage stuhl1, 0, 0, 255 stuhl2 = LoadImage("7/stuhl2.PNG") MaskImage stuhl2, 0, 0, 255 schulbuch = LoadImage("7/buch offen.PNG") MaskImage schulbuch, 0, 0, 255 marsboden = LoadImage("7/marsboden.PNG") MaskImage marsboden, 0, 0, 255 tisch = LoadImage("7/tisch.PNG") MaskImage tisch, 0, 0, 255 tischgross = LoadImage("7/tisch gross.PNG") MaskImage tischgross, 0, 0, 255 metallboden = LoadImage ("7/metallboden.PNG") laptop = LoadImage ("7/laptop.PNG") MaskImage laptop,0,0,255 fussmatte = LoadImage ("7/fussmatte.PNG") pult = LoadImage ("7/pult.PNG") MaskImage pult,0,0,255 schuleinnen = LoadImage ("7/schuleinnen.PNG") MaskImage schuleinnen,0,0,255 If ImagesCollide(players,x,y,0,pult,90,33,0) Then Repeat ;so lange die werte zurück gehen, die man erst bei der funktion "tasten()" gedrückt hat... players_x = players_x -x_back players_y =players_y -y_back ;wenn sich die vierecke noch berühren, bleibt "weiter" bei null If ImagesCollide(players,x,y,0,pult,90,33,0) = False Then weiter = 1 Until weiter = 1 EndIf End Function was ist in diesem Code bei der funktion kollision() falsch? wenn ich über das Pult laufe bleibe Ich nicht davor stehen sonder laufe langsam über es. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
tut mir leid, kann deinen Code nicht lesen
Könntest du ihn akzeptabel formatieren und mit [ code] [ /code] umschleissen (ohne den leerschlag nach [). Danke vielmal ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics 229, 178, 32
Global x_back = 0 Global y_back = 0 Global players_x = 100 Global players_y = 200 SetBuffer BackBuffer() ;Laden/Masken players = LoadImage("7/player1.PNG") MaskImage players,0,0,255 stuhl1 = LoadImage("7/stuhl.PNG") MaskImage stuhl1, 0, 0, 255 stuhl2 = LoadImage("7/stuhl2.PNG") MaskImage stuhl2, 0, 0, 255 schulbuch = LoadImage("7/buch offen.PNG") MaskImage schulbuch, 0, 0, 255 marsboden = LoadImage("7/marsboden.PNG") MaskImage marsboden, 0, 0, 255 tisch = LoadImage("7/tisch.PNG") MaskImage tisch, 0, 0, 255 tischgross = LoadImage("7/tisch gross.PNG") MaskImage tischgross, 0, 0, 255 metallboden = LoadImage ("7/metallboden.PNG") laptop = LoadImage ("7/laptop.PNG") MaskImage laptop,0,0,255 fussmatte = LoadImage ("7/fussmatte.PNG") pult = LoadImage ("7/pult.PNG") MaskImage pult,0,0,255 schuleinnen = LoadImage ("7/schuleinnen.PNG") MaskImage schuleinnen,0,0,255 x=109 y=155 Repeat If KeyDown(200) Then y=y-1 ;Oben If KeyDown(208) Then y=y+1 ;Unten If KeyDown(203) Then x=x-1 ;Links If KeyDown(205) Then x=x+1 ;Rechts ;Anzeigen TileBlock metallboden DrawImage schuleinnen,0,0 DrawImage fussmatte,92,160 DrawImage pult,90,33 DrawImage tisch,30,65 DrawImage tisch,61,65 DrawImage tisch,92,65 DrawImage tisch,123,65 DrawImage tisch,154,65 DrawImage tisch,185,65 DrawImage tisch,30,91 DrawImage tisch,61,91 DrawImage tisch,92,91 DrawImage tisch,123,91 DrawImage tisch,154,91 DrawImage tisch,185,91 DrawImage tisch,30,117 DrawImage tisch,61,117 DrawImage tisch,92,117 DrawImage tisch,123,117 DrawImage tisch,154,117 DrawImage tisch,185,117 If x < 0 Then x = 0 If y < 0 Then y = 0 If x > GraphicsWidth()-ImageWidth(players) Then x = GraphicsWidth()-ImageWidth(players) If y > GraphicsHeight()-ImageHeight(players) Then y = GraphicsHeight()-ImageHeight(players) DrawImage players,x,y If ImagesCollide(players,x,y,0,pult,90,33,0) Then kollision() Flip Cls Until KeyHit(1) End Function kollision() ;Laden/Masken players = LoadImage("7/player1.PNG") MaskImage players,0,0,255 stuhl1 = LoadImage("7/stuhl.PNG") MaskImage stuhl1, 0, 0, 255 stuhl2 = LoadImage("7/stuhl2.PNG") MaskImage stuhl2, 0, 0, 255 schulbuch = LoadImage("7/buch offen.PNG") MaskImage schulbuch, 0, 0, 255 marsboden = LoadImage("7/marsboden.PNG") MaskImage marsboden, 0, 0, 255 tisch = LoadImage("7/tisch.PNG") MaskImage tisch, 0, 0, 255 tischgross = LoadImage("7/tisch gross.PNG") MaskImage tischgross, 0, 0, 255 metallboden = LoadImage ("7/metallboden.PNG") laptop = LoadImage ("7/laptop.PNG") MaskImage laptop,0,0,255 fussmatte = LoadImage ("7/fussmatte.PNG") pult = LoadImage ("7/pult.PNG") MaskImage pult,0,0,255 schuleinnen = LoadImage ("7/schuleinnen.PNG") MaskImage schuleinnen,0,0,255 If ImagesCollide(players,x,y,0,pult,90,33,0) Then Repeat ;so lange die werte zurück gehen, die man erst bei der funktion "tasten()" gedrückt hat... players_x = players_x -x_back players_y =players_y -y_back ;wenn sich die vierecke noch berühren, bleibt "weiter" bei null If ImagesCollide(players,x,y,0,pult,90,33,0) = False Then weiter = 1 Until weiter = 1 EndIf End Function |
||
![]() |
PowerProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dein Code ist immer noch nicht lesbar! Vielleicht solltest du Einrückungen einbauen und ein paar mehr Kommentare! Außerdem würde mich interessieren, was der Code denn tun soll.
Und in diesem Forum gibt es eine Funktion, um deine Beiträge zu editieren. Dann musst du, weil du Code-Klammern vergessen hast, nicht einen neuen Beitrag posten! Mfg PowerProgrammer |
||
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter! |
c64 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
In einer Function Images laden ist nicht unbedingt Optimal !
( EDIT: Es sei denn es ist eine Direkte Lade Function, die nur für das einmalige laden oder Neu Laden von Mediafiles dient !) Denn bei jedem Aufruf der Function Kollision werden deine Images wieder neu Geladen. Was evtl. der Grund sein könnte warum es dann langsamer wird. Dennoch eine Saubere Formatierung würde der Übersichtlichkeit nachhaltig gut tun ! ![]() |
||
Betreten verboten! Kinder haften für ihre Eltern! |
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dieses x_back und y_back sind so weit ich sehe immer 0, wozu sind die dann da? Und Grafiken solltest Du am Anfang laden und nicht immer wieder zwischen durch, weil das überhaupt keinen Sinn macht, sie sind solange im Speicher bist Du sie manuell löscht. | ||
![]() |
Schranz0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und mal ein Tip von mir:
Schau dir mal die befehle an: Dim DrawimageRect Wär für deinen Fall wohl nicht schlecht, wenn ich deinen wirren Code betrachte |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group