Mole Munch – Dev log 3

Denna veckan har jag fortsatt att jobba på vattnet. Mellan förra bloggposten och denna så har vi i gruppen fått ett fungerande vattenflöde, men vattenflödet skapades på spelarens position och hade ingen kollision. Det första jag gjorde var att skapa kollision mellan trädgårdsmästaren och hålenblog3.1 på ovansidan. På bilden till höger kan man se hur hålen på ovansidan ser ut, ett av hålen är tomt och ett är fyllt med vatten som trädgårdsmästaren har fyllt på. Detta är det slutgiltiga resultatet. För att komma till detta resultatet så skapade jag kollision mellan trädgårdsmästaren och ett tomt hål, då byttes bilden till ett vattenfullt hål. Jag fixade också så att om vattnet kolliderade med ett tomt hål på undersidan så byttes spriten på ovansidan till ett vattenfyllt hål. Detta ifall spelaren skulle ha två hål som var länkade via tunnlar på undersidan.

Spelaren har ingen kollision med hålen på ovansidan, dem är bara där för att demonstrera att det är vatten i tunnlarna i underjorden. Däremot ska vattnet i tunnlarna ha kollision med spelaren. Detta var ett av de stora problemen jag hade den här veckan. För att gå igenom hur kollisionen med vattnet fungerade så måste jag först gå igenom hur vattnet fungerar. I kort så skapas en pixel på trädgårdsmästarens position när trädgårdsmästaren och hålet kolliderar. Denna pixel skapar sedan flera pixlar runt sig själv, då får vi en effekt av att de blåa pixlarna flyter i tunnlarna. Om ni vill läsa mer om hur vattnet fungerar så kan ni läsa om det här https://bergjens.wordpress.com/2015/02/26/update-3-on-project-mole-munch/.

När man ska skapa kollision mellan spelaren och vattnet så uppstår ett problem. Eftersom att vattnet inte är ett objekt utan bara är pixlar så går det inte att kolla på vattnets kollisionsbox. Istället kan vi använda oss av en teknik då vi kollar färgen på en bild. Det första som behövdes göra för att kunna använda denna tekniken var att skapa en bild av vattnets sprite. Detta var lätt att göra genom SFML’s funktioner. När detta var gjort så kunde vi använda den bilden för att kolla positioner och RGB värden. För att veta vattnets position så kollade vi vart på bilden som RGB värdet var det samma som vattnet. Till exempel om vattnets RGB var 128, 128, 255, så kunde vi kollade var på bilden som en pixel har det exakta RGB värdet. Sedan kollade vi positionen på spelaren och jämförde med positionen på bilden av vattnet. Om det var exakt samma position så fick vi resultatet sant och då kallades kollision. Just nu händer inget när de kolliderar, men vi ska lägga till en animation som spelar upp när mullvaden dör.

Såhär ser vattnet ut när man gräver i tunnlarna.

blog3

About Axel Vesterlund

2014  Programming