Maus Prüfen bei Raute
Übersicht

SchnuffBetreff: Maus Prüfen bei Raute |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich habe ein Image geladen:
![]() (für ein Spiel, ähnlich Wie Anno) und möchte jetz Prüfen ob die Maus über der Mitleren Raute ist (hier in weiß) ![]() wie Mache ich dass jetzt am Besten? |
||
![]() |
Hagbard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was ist für dich die mittlere Raute? Oder meinst du die Raute in der Mitte des Bildes?
Du könntest das machen, indem du das Spielfeld ohne die Rauten zeichnest und die dann später darüberzeichnen. Dabei wäre es, glaube ich, wichtig, dass du immer nur das zeichnest was der Spieler gerade sieht, damit nicht zuviel Last anfällt. mfg |
||
- Zuletzt bearbeitet von Hagbard am Sa, Apr 17, 2010 20:40, insgesamt einmal bearbeitet
![]() |
theotheoderich |
![]() Antworten mit Zitat ![]() |
---|---|---|
Guckst Du hier, das ist die Lösung für all Deine Probleme ![]() http://www.djs4life.de/Iso-Tut/Teil1.htm |
||
Gruß
TheoTheoderich -- The box label said, "Requires Windows XP or better.", so I bought an Amiga Computer. |
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke, aber die Maus Abrage Funktioniert dort auch nicht Korekt ![]() |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
öhm sry wenn ich das jetzt vollkomen falsch interpretiere aber warum nicht so?
Code: [AUSKLAPPEN] raute=loadimage("raute.bmp") maskimage raute,0,0,0 ;oder denk dir sonst irgendne farbe aus die du ausblenden lässt hauptschleife blabla if imagescollide(maus,mousex(),mousey(),0,raute,rautex,rautey,0) then kA endif |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
*sry, falscher gedankengang, wenn möglich bitte löschen* | ||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Schnuff, hier mal eine Gedankenstütze wie man es machen kann... Natürlich kann die Abfrage auf ein Tileset noch optimiert werden.Code: [AUSKLAPPEN] Graphics 400,200,0,2
SetBuffer FrontBuffer() While Not KeyHit(1) mx=MouseX() my=MouseY() If ((mx+100)/2+my+150)>300 Then If ((mx+200)/2+my+150)<550 Then If ((mx+100)/2-my+150)>100 Then If ((mx+200)/2-my+150)<350 Then Plot mx,my End If End If End If End If Wend End |
||
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich verstehe nicht ganz ![]() könntest du den Code bitte Dukomentiern? |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
kopier dir den code doch einfach in dein BB und teste es ich wette dann kommst du von selbst drauf... | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
Doni |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wenn du die weiße Raute meinst is es doch ganz einfach,einfach imagescollide,dann musst du hablt noch deinen Mauszeiger als Immage machen,was aber nicht schwer is! | ||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
psst...hab ich auch schon geschrieben...man wieso bemerkt mich eigentlich nie einer! | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
also ich hab das mal bisschen anders gemacht....hat bei mir super schnell geklaappt
also wenn man die dinger zeichnet...dannn...ach was , schau dir das mal selbst an: http://kryan.gpages.de/ISO.zip zumindest habe ich es dort so gemacht: Code: [AUSKLAPPEN] For y=1 To maxy
For x=1 To maxx xpos=scx-(x*64)+(y*64) ypos=scy+(x*32)+(y*32)-Map(x,y,1)*32 RGB=ReadPixel(mx,my) If InScreen(xpos+scx,ypos+scy,scx-sscx,scy-sscy) Then If mx>xpos And my>ypos+cory And mx<xpos+128 And my<ypos+128 And ((RGB Shr 16) And $FF)=0 And ((RGB Shr 8) And $FF)=0 And (RGB And $FF)=0 Then marform=Map(x,y,0) marx=xpos marx2=x mary=ypos mary2=y mardraw=1 End If DrawImage ISOTile(Map(x,y,2),Map(x,y,0)),xpos,ypos End If Next Next edit: achja, das war damals die zeit, als ich noch nicht den imagescollide befehl kannte ist empfehlenswerter wahrscheinlich nur so geht es auch schnell ^^ |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem liegt doch daran das ausserhalb der Raute die gleiche Farbe ist! (obere Bild)
darum kannst du nicht (imagescollide/imageRectoverlab) nehmen, da es keine Maskcolor gibt! einfache Lösung ist es ein zweites Image zu laden (untere Bild, gleiche Größe,2-farbig) Nun kannst du das grüne malen und geprüft wird mit dem Pseudo Image, da bei dem Bild eine Maskcolor ist die nicht berücksichigt wird! Ob diese Lösung bei dir möglich ist liegt am Rest deines Programms! |
||
[BB2D | BB3D | BB+]
|
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kryans Code versuche ich im moment noch zu verstehen ![]() @hectic das Problem ist, ich weiß nicht wo ich deine Prüfraute einfügen sollte ![]() PS:@5k41, du wirst schon bemerkt ![]() |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] xpos=scx-(x*64)+(y*64)
ypos=scy+(x*32)+(y*32)-Map(x,y,1)*32 also da wird die x-position und die y-position berechnet also von normaler 2d-perspektive in iso-perspektive umgerechnet ^^ um alles nachfolgende zu verstehen musst du in die beiden for-schleifen waitkey einbauen |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie gesagt man könnte einfach das bild von einer raute in schwarz weiss nehmen und unter das bild der normalen zeichenen...
Code: [AUSKLAPPEN] kollision=loadimage("schwarzweissraute.bmp") farbe=loadimage("farbe.bmp") maskimage kollision,0,0,0 repeat drawimage kollision drawimage farbe if imagescollide(kollision,x,y,0,spieler,x,y,0) then kA endif so ungefähr... |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
weiß nich, ob das die perfekte lösung ist ![]() naja, bestimmt hast du dir schon meinen kleinen editor angeschaut die einzelnen schwarz-weiß formen hab ich im ordner "Form" und mit der Funktion LoadISOTiles macht man aus den formen hübsche bilder ![]() |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich wollt auch nur eine einfache schnell zu verstehende und vielleicht ein biscchen langsame lösung schreiben ich mein hey wir sind hier immer noch in der beginners corner und für den beginn reicht das^^ | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hab ja nich gleich gesagt, dass das schlecht ist ^^
is sogar einfacher zu verstehen ![]() aber ich bin trotzdem fanatischer anhänger meiner lösung ![]() |
||
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@5k41
für eine Kollision muss man die Schartzwieß Raute garnicht zeichnen ![]() aber ich glaube ich schaff das irgntwie @Kryan dein Editor Stottert und die Maus hakt am Rand aber das mcht ja nichts ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group