Collision detection, maar niet lekker.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Softwareontwikkelaar Cleopatra

Functieomschrijving Voor de gemeente Amsterdam zijn wij op zoek naar een softwareontwikkelaar Cleopatra. De directie Verkeer en Openbare ruimte van de gemeente Amsterdam beschikt over een softwareapplicatie, "Cleopatra", waarmee geautomatiseerde handhaving plaatsvindt (op basis van kentekenherkenning) van bepaalde gebieden waarin toegangseisen worden gesteld aan het verkeer. Voorbeelden ervan zijn de milieuzones, de zone zwaar verkeer, handhaving van brom- en snorfietser op het fietspad en autoluwe gebieden. Voor de doorontwikkeling en uitbreiding ervan zijn gespecialiseerde softwareontwikkelaars nodig die helpen bij het programmeren van de handhavingsmodules voor nieuwe gebieden en het verbeteren en bijwerken van de bestaande onderdelen van de softwareapplicatie. Functie

Bekijk vacature »

Java Front-end Developer

Dit ga je doen Ontwikkelen van nieuwe functionaliteiten in Java met tools als Springboot, MS SQL Server (T-SQL) en JavaScript; Het onderhouden van de (web-)applicaties binnen een complexe omgeving; Werken aan de migratie van een monolithisch systeem naar een architectuur gebaseerd op Kubernetes; Code reviews met collega's en actieve kennisuitdelingsessies voeren; Het uitvoeren van unit- en systeemtests Experimenteren met nieuwe tools en technieken. Hier ga je werken Binnen deze organisatie kom je te werken op de afdeling die gegevens verzamelt vanuit het hele land. Denk hierbij aan vertrouwelijke persoonsgegevens. Het team verwerkt al deze data met als doel het waarborgen

Bekijk vacature »

Embedded Software Developer

Functie omschrijving Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Voor een mooi softwarebedrijf in omgeving Gouda zijn wij op zoek naar een Embedded Software developer. Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij enthousiast en een echte team player? Lees dan snel verder en laat wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot aantal creatieve en ambitieuze ontwikkelaars. Ze

Bekijk vacature »

Developer Full Stack

Functie omschrijving Developer gezocht! Ben jij een enthousiaste developer die graag wil bijdragen aan ontwikkelingen binnen een mooie organisatie? Solliciteer dan snel. Wij zijn op zoek naar een Full Stack Developer uit de regio Nijkerk die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van een SaaS applicatie. Je moet beschikken over beheersing van zowel de Nederlandse als Engelse taal aangezien je samen met de klant gaat werken. Bedrijfsprofiel Je komt te werken binnen een echt familiebedrijf dat al sinds 1925 actief is binnen de FMCG branche. Het bedrijf heeft 40 medewerkers en er heerst een platte communicatiestructuur waarbij

Bekijk vacature »

.NET Developer Senior

Dit ga je doen Het ontwikkelen van backend applicaties in C#; Het maken van vele koppelingen met andere ERP-applicaties zoals JD Edwards en SAP; Je bent (mede) verantwoordelijk voor het opstellen van technisch ontwerpen voor de te ontwikkelen software oplossingen; Je bent gemiddeld 90% van je tijd inhouse oplossingen aan het ontwikkelen en testen. De overige 10% van je tijd ben je bij klanten op locatie om oplossingen te implementeren, klanten te begeleiden en de software verder te innoveren; Naast het zelfstandig ontwikkelen van software oplossingen ben je ook bezig met het waarborgen van je contacten bij de klant, het

Bekijk vacature »

Machine Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Machine Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Machine Software Developer ben je verantwoordelijk voor: - Je ontwerpt, ontwikkelt en debugt software voor machinebesturingssystemen en complexe landbouwmachines; - Je stelt gebruikersinterfaces op (cabinedisplays); - Op termijn ga je softwareprojecten leiden voor specifieke machines; - Inclusief planning, documentatie en validatie; - Om specificaties te verifiëren

Bekijk vacature »

Developer Low-code

Dit ga je doen Low-code ontwikkeling van software voor landelijk bekende organisaties; Opleveren van mooie eindproducten, middels de Agile methodiek; Samenwerken in een team van 10 collega's; Direct contact met de eindklant over de gewenste oplossingen. Hier ga je werken Als Developer kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet discreet en veilig verwerkt worden. De processen die hierbij horen worden door het IT team vormgegeven. De

Bekijk vacature »

Software programmeur

Functieomschrijving Voor een uitdagende werkgever in regio Breda zijn wij op zoek naar een Full Stack C#.NET programmeur. Je bent verantwoordelijk voor het ontwikkelen van apps, webapplicaties en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere developers en engineers om de sensoren in machines te scannen en vervolgens de data om te zetten in management informatie voor de klanten. Taken en verantwoordelijkheden: Je gaat aan de slag met de volgende technologieën en frameworks: C#, JS frameworks, HTML, TypeScript, SQL & C++, CSS. Geen ervaring met één van deze technologieën is dan ook geen enkel probleem! Deze werkgever biedt

Bekijk vacature »

Medior/Senior Python developer (Django)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en werken ze met pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Er is een kwaliteitsfocus en dan biedt ruimte om verbeteringen echt door te voeren binnen de gehele

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Als PHP developer (Symfony) bijdragen aan betere z

Functie Als Medior/Senior PHP developer wordt er een mate van zelfstandigheid verwacht, maar ook dat je goed in een team kunt opereren waar kennis wordt gedeeld en er bijvoorbeeld codereviews plaatsvinden. Kwaliteit staat voorop, mede hierom werken ze bijvoorbeeld zonder echte deadlines in hun sprints. De SaaS-applicatie wordt volledig ontwikkeld in PHP en Symfony. De module bestaat uit een stuk informatie verrijking en intelligentie wat resulteert in een medische check. De logica wordt daarom in de code geïntrigeerd. Je bent onder andere bezig met complexe databases waar meer dan 80.000 medicijnen op verschillende niveaus in staan, die maandelijks worden geactualiseerd.

Bekijk vacature »

Junior Back end developer PHP, Symfony

Functie Wij hebben onlangs onze eerste collega’s aangenomen, waardoor ons development team momenteel uit 4 personen bestaat. We bouwen onze software op basis van een PHP-framework (wat op zichzelf een Symfony framework is). Qua ontwikkeling focussen wij ons op 3 focus velden; – API-ontwikkeling/ Component Creatie – Implementatie – Framework ontwikkeling; het toevoegen van nieuwe functionaliteit of interne microservices Onze senior software engineer focust zich momenteel op de laatste twee punten, maar wij komen handen te kort op het eerste veld. Daarom zijn wij op zoek naar een enthousiaste junior software engineer die graag de kneepjes van het vak wil

Bekijk vacature »

.NET developer

Functie The position we have for you As a .NET developer you will work for one of our customers active in the High Tech Industry. Our customers are mainly located in the Eindhoven area. We are very selective when it comes to the projects we accept and therefore only focus on innovative and complex projects. Because our customers are mainly specialized in machine construction, you often work close to the machines. Our team currently consists of Embedded engineers, IOT developers and Cloud engineers. We mainly work on Microsoft projects where WPF, UWP, .NET Core and Microsoft Azure are used. Eisen

Bekijk vacature »

Low-Code Expert/Developer: Power Platform Speciali

Bedrijfsomschrijving Als Low-Code Expert/Developer bij ons innovatieve bedrijf, neem je een cruciale rol op je in de creatie, ondersteuning en implementatie van diverse oplossingen met behulp van het veelzijdige Power Platform. Dit platform omvat Power Apps, Power BI, Power Automate, Power Virtual Agent en Azure Logic Apps. Het Power Platform biedt je de mogelijkheid om klanten te voorzien van naadloze integraties door op maat gemaakte oplossingen te creëren die compatibel zijn met (bijna) alle bestaande software-infrastructuren. Dankzij het uitgebreide scala aan toepassingen, krijg je de kans om als architect en projectleider van je eigen oplossing te fungeren. Dompel jezelf onder

Bekijk vacature »

Software Developer

Functie omschrijving Veel begeleiding en de kans om je verder te ontwikkelen als software developer. Dat kunnen wij jou bieden bij deelname aan deze leuke traineeship. Je krijgt een mentor toegewezen die jou alle kneepjes van het vak leert. Heb jij al wat ervaring als software developer? Daar worden wij heel blij van! Lees snel verder! Bedrijfsprofiel Als software developer neem je deel aan een trainings programma in de omgeving van Haarlem waar je persoonlijk wordt begeleidt, zodat je alle kneepjes van het vak leert. Aan de hand van jouw kennis en ervaring krijg je een persoonlijk opleidingstraject. Je gaat

Bekijk vacature »
Jan Kila

Jan Kila

10/07/2022 13:19:23
Quote Anchor link
Ik zit wat te klooien met collision detection; en dat werkt maar ik ben er niet gelukkig mee.

In mouseMove() roep ik de code aan voor het tekenen van de vormen: drawShapes().
Zoals de code nu is werkt het goed maar al die if statements zitten me niet lekker en de vraag is kan dat anders; beter natuurlijk.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  
  // this will remove all drawings from entire canvas
  ctx.clearRect(3, 3, cvsWidth, cvsHeight);
  for(let shape of shapes) {
    ctx.fillStyle = shape.color;

    // if (!edgeCollision(shape, cvs)) {
    //   ctx.clearRect(3, 3, cvsWidth, cvsHeight);
    //   ctx.fillRect(shape.x, shape.y, shape.width, shape.height);
    // }

    if (shape.x < 15) { shape.x = 15; }
    if ((shape.x + shape.width) > (cvs.width - 15)) {
      shape.x = cvs.width - shape.width - 15;
    }
    if (shape.y < 15) { shape.y = 15; }
    if ((shape.y + shape.height) > (cvs.height - 15)) {
      shape.y = cvs.height - shape.height - 15;
    }
    ctx.fillRect(shape.x, shape.y, shape.width, shape.height);  
  }
}
drawShapes();


Gebruik ik een functie om de rand te detecteren:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
edgeCollision = (shape, cvs) => {
  let lefCol = (shape.x < 15);
  let rigCol = ((shape.x + shape.width) > (cvs.width - 15));
  let topCol = (shape.y < 15);
  let botCol =  ((shape.y + shape.height) > (cvs.height - 15));
  return (lefCol || rigCol || topCol || botCol);
}

en zet ik die op de plaats die nu is uitgecommentarieerd ( en haal de if'jes en de fillRect() weg )
dan werkt het maar heel krom: een van vormen verdwijnt en ik heb geen idee hoe dat kan komen.

Zet ik de regel met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
  
ctx.clearRect(3, 3, cvsWidth, cvsHeight);

helemaal aan het begin, zoals in deze code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
drawShapes = () => {
  // this will remove all drawings from entire canvas
  ctx.clearRect(3, 3, cvsWidth, cvsHeight);
  for(let shape of shapes) {
    ctx.fillStyle = shape.color;
    if (!edgeCollision(shape, cvs)) {
       ctx.fillRect(shape.x, shape.y, shape.width, shape.height);
     }
  }
}
drawShapes();

Dan werkt het prima totdat ik een rand detecteer; dan verdwijnt de vorm.
Dat is logisch omdat ik vóór het tekenen het canvas leeg maak.
Vandaar dat ik dít probeer:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
drawShapes = () => {
  for(let shape of shapes) {
    ctx.fillStyle = shape.color;
    if (!edgeCollision(shape, cvs)) {
      ctx.clearRect(3, 3, cvsWidth, cvsHeight);
      ctx.fillRect(shape.x, shape.y, shape.width, shape.height);
    }
  }
}
drawShapes();


En dan snap ik niet waarom de andere vorm van het canvas verdwijnt.

Nou, moeilijk verhaal; ik vertrouw erop dat iemand begrijpt waar ik het over heb.

Lang verhaal samengevat:
Ik wil van al die if statements af; kan dat anders terwijl het wel goed blijft werken?
 
PHP hulp

PHP hulp

19/04/2024 15:29:02
 
Ozzie PHP

Ozzie PHP

10/07/2022 15:23:23
Quote Anchor link
Ik ben hier zelf niet in thuis. Het betreft zo te zien een nogal specifiek probleem. Het lijkt me daarom handig als je een voorbeeld plaatst, bijv. via https://codepen.io/pen/ of https://jsfiddle.net/. Dat maakt het waarschijnlijk wat makkelijker voor andere forumleden om je te helpen.
 
Jan Kila

Jan Kila

10/07/2022 16:28:48
 
Ad Fundum

Ad Fundum

12/07/2022 11:21:50
Quote Anchor link
Tweedimensionale botsdetectie is standaard, er zijn meerdere oplossingen voor:
- https://developer.mozilla.org/en-US/docs/Games/Techniques/2D_collision_detection
- https://stackoverflow.com/questions/2440377/javascript-collision-detection

Als het goed is hoef je alleen nog een uitwerking te kiezen die voor jou goed werkt.
Gewijzigd op 12/07/2022 11:22:38 door Ad Fundum
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.